状態および変更レポートについて
スマートホームデバイスを操作するAlexaスキルを作成するときは、状態レポートと変更レポートのサポートを追加します。Alexaは、音声応答、Alexaアプリ、画面付きのAlexa搭載デバイスのいずれかでデバイスの状態をユーザーに知らせます。たとえば、ユーザーはAlexaアプリでスマートプラグのリストを表示して、どのプラグがオンかオフかを確認できます。Amazon Echo Hubでは、Alexaに接続されたスマートデバイスの状態をユーザーが簡単に確認できます。デバイスの状態を可視化することで、信頼できる正確な状態レポートが可能になり、ユーザーエクスペリエンスが向上します。
Alexaに状態をレポートする方法は3つあります。
- Alexaが
Alexa.ReportState
ディレクティブを使って状態をリクエストします。たとえば、ユーザーがAlexaアプリを開いてキッチンの照明がついているかどうかを確認するとします。すべてのプロパティ値のスナップショットを含むAlexa.StateReport
を返して応答します。 - プロアクティブに
Alexa.ChangeReport
イベントを送信して1つ以上のプロパティが変更されたことを知らせます。イベントには、その他すべてのプロパティ値のスナップショットを含めることもできます。たとえば、ユーザーが手動で照明をつけたとします。イベントでは、電源がオンであることだけでなく、照明の明るさについてレポートすることもできます。 - ディレクティブの
Alexa.Response
ですべてのプロパティの状態をプロアクティブに送信します。たとえば、TurnOn
ディレクティブにすべてのプロパティ値のスナップショットを含めることができます。
状態および変更レポートのサポートを指定する
デバイスの検出中に、スキルでサポートするAlexaインターフェースを指定します。各インターフェースには、デバイスに適用できるプロパティのセットを含めます。これらのレポート可能なプロパティについて、検出応答で以下のパラメーターを使用して、状態レポートと変更レポートのサポートを指定します。
-
retrievable - retrievableプロパティは状態レポートを制御します。インターフェースに
retrievable = true
を設定した場合、Alexaは、そのインターフェースのレポート可能プロパティの現在の状態をスキルに照会できます。AlexaがAlexa.ReportState
ディレクティブをスキルに送信すると、スキルはAlexa.StateReport
で応答し、その応答に各インターフェースのすべてのレポート可能プロパティの状態を含めます。retrievable
をfalse
に設定した場合は、ユーザーがデバイスの状態をたずねても、Alexaが正確な表示や応答を返すことはできません。 -
proactivelyReported - proactivelyReportedプロパティは変更レポートを制御します。インターフェースに
proactivelyReported = true
を設定した場合、スキルは、そのインターフェースのレポート可能プロパティのいずれかに変更があるたびに(手動で変更された場合など)、Alexa.ChangeReport
イベントをAlexaに送信します。Alexa.ChangeReport
には、変更のないプロパティの状態も含めます。状態の変化がAlexaからのディレクティブによるものの場合は、ディレクティブへの応答と変更レポートイベントの両方を送信します。proactivelyReported
をfalse
に設定した場合、Alexaは、デバイスの現在の状態をAlexaアプリまたは画面付きのAlexa搭載デバイス(Amazon Echo Hubなど)に表示することはできません。 -
nonControllable - ユーザーが変更できないエンドポイントプロパティをモデル化するには、インターフェースに
nonControllable
=true
を設定します。たとえば、洗濯機が自動で洗い、すすぎ、脱水に移行する場合、洗浄サイクルの変更を許可せずに、現在の洗浄サイクルをユーザーにレポートできます。trueに設定すると、Alexaは状態を変更しません。デフォルト値はfalse
です。
検出応答の例
以下は、Alexa.Cooking
インターフェース、Alexa.Cooking.TemperatureSensor
インターフェース、Alexa.Cooking.TemperatureController
インターフェース、Alexa.EndpointHealth
インターフェースをサポートするオーブンのDiscover.Response
メッセージの例です(Alexa.Cookingインターフェースは日本未対応です)。各インターフェースには、取得可能でプロアクティブにレポートされるプロパティが含まれています。その他の検出応答例については、Alexaスキルでサポートする各インターフェースのドキュメントを参照してください。
{
"event": {
"header": {
"namespace": "Alexa.Discovery",
"name": "Discover.Response",
"payloadVersion": "3",
"messageId": "一意の識別子、バージョン4 UUIDが望ましい"
},
"payload": {
"endpoints": [
{
"endpointId": "エンドポイントの一意のID",
"manufacturerName": "スマートクッキングデバイスカンパニー",
"description": "XYZブランドのオーブン",
"friendlyName": "オーブン",
"displayCategories": ["OVEN"],
"additionalAttributes": {
"manufacturer" : "スマートクッキングデバイスカンパニー",
"model" : "サンプルモデル",
"serialNumber": "U11112233456",
"firmwareVersion" : "1.24.2546",
"softwareVersion": "1.036",
"customIdentifier": "サンプルカスタムID"
},
"cookie": {},
"capabilities": [
{
"type": "AlexaInterface",
"interface": "Alexa.Cooking",
"version": "3",
"properties": {
"supported": [
{
"name": "cookingMode"
},
{
"name": "foodItem"
},
{
"name": "cookingTimeInterval"
}
],
"proactivelyReported": true,
"retrievable": true
},
"configuration": {
"supportedCookingModes": ["REHEAT", "DEFROST", "OFF"]
}
},
{
"type": "AlexaInterface",
"interface": "Alexa.Cooking.TemperatureSensor",
"version": "3",
"properties": {
"supported": [
{
"name": "cookingTemperature"
}
],
"proactivelyReported": false,
"retrievable": true
}
},
{
"type": "AlexaInterface",
"interface": "Alexa.Cooking.TemperatureController",
"version": "3",
"properties": {
"supported": [
{
"name": "targetCookingTemperature"
},
{
"name": "preheatTimeInterval"
}
],
"proactivelyReported": true,
"retrievable": true
},
"configuration": {
"supportsRemoteStart": false,
"supportedCookingModes": ["BAKE", "ROAST"]
}
},
{
"type": "AlexaInterface",
"interface": "Alexa.EndpointHealth",
"version": "3.1",
"properties": {
"supported": [{
"name": "connectivity"
}
],
"proactivelyReported": true,
"retrievable": true
}
},
{
"type": "AlexaInterface",
"interface": "Alexa",
"version": "3"
}
]
}
]
}
}
}
StateReportで状態をレポートする
AlexaがAlexa.ReportState
ディレクティブを送信してエンドポイントの状態をリクエストすると、スキルは Alexa.StateReport
応答を送信します。この応答には、取得可能なすべてのプロパティについて現在の状態を含めます。
たとえば、ユーザーがAlexaアプリで自宅の別の階にある照明の状態をチェックしたとします。Alexaは、その照明へのAlexa.ReportState
ディレクティブを送信します。スキルは、その照明の取得可能なすべてのプロパティの状態を含む応答を送信し、アプリがその状態をユーザーにレポートします。
Alexa.StateReport
応答に以下の情報を指定します。
context
オブジェクトのすべてのretrievableプロパティの状態をレポートします。endpoint
オブジェクトには、必ずレポートするエンドポイントを指定します。payload
に空のオブジェクトを設定します。- 必ず
Alexa.ReportState
リクエストからの値を設定したcorrelationToken
を含めてください。
状態レポートのプロパティについて詳しくは、Alexa.StateReportインターフェースを参照してください。
スキルのLambda関数から、同期的にAlexa.StateReport
応答を送信できます。8秒以内に返信してください。
スキルがエンドポイントを定期的にポーリングする場合、応答ではキャッシュされたプロパティ値を送信できます。エンドポイントに到達できなくても、すべてのプロパティ値がキャッシュされている場合は、すべてのプロパティ値を含むAlexa.StateReport
を返します。ただし、Alexa.EndpointHealth
のconnectivityプロパティの値はUNREACHABLE
と指定してください。エンドポイントに到達できないためプロパティの状態を残らずレポートすることができず、値のキャッシュもない場合は、タイプがBRIDGE_UNREACHABLE
またはENDPOINT_UNREACHABLE
のAlexa.ErrorResponse
を送信する必要があります。
ReportStateディレクティブの例
次の例は、Alexaがスキルに送信するAlexa.ReportState
ディレクティブを示しています。
{
"directive": {
"header": {
"namespace": "Alexa",
"name": "ReportState",
"messageId": "一意のバージョン4 UUID",
"correlationToken": "opaque相関トークン",
"payloadVersion": "3"
},
"endpoint": {
"scope": {
"type": "BearerToken",
"token": "OAuth2.0ベアラートークン"
},
"endpointId": "エンドポイントID",
"cookie": {}
},
"payload": {}
}
}
StateReport応答の例
以下は、スキルがAlexaに送信するAlexa.StateReport
応答の例です。その他のAlexa.StateReport
の例については、Alexaスキルでサポートする各インターフェースのドキュメントを参照してください。
{
"event": {
"header": {
"namespace": "Alexa",
"name": "StateReport",
"messageId": "一意の識別子、バージョン4 UUIDが望ましい",
"correlationToken": "リクエストに一致するopaque相関トークン",
"payloadVersion": "3"
},
"endpoint": {
"endpointId": "エンドポイントID",
"cookie": {}
},
"payload": {}
},
"context": {
"properties": [
{
"namespace": "Alexa.ThermostatController",
"name": "targetSetpoint",
"value": {
"value": 25.0,
"scale": "CELSIUS"
},
"timeOfSample": "2023-07-03T10:20:50.52Z",
"uncertaintyInMilliseconds": 6000
},
{
"namespace": "Alexa.ThermostatController",
"name": "thermostatMode",
"value": "HEAT",
"timeOfSample": "2023-07-03T10:20:50.52Z",
"uncertaintyInMilliseconds": 6000
},
{
"namespace": "Alexa.EndpointHealth",
"name": "connectivity",
"value": {
"value": "OK"
},
"timeOfSample": "2023-07-05T12:00:00.02Z",
"uncertaintyInMilliseconds": 0
}
]
}
}
ChangeReportで状態をレポートする
エンドポイントの状態が何らかの理由で変化した場合、スキルはその変化をAlexa.ChangeReport
イベントでAlexaにレポートします。その後、Alexaはユーザーにステータスの変更を提供できます。変更レポートでは、変化のあったプロパティの状態をpayload
オブジェクトに指定します。たとえば、ユーザーが照明を手動で点灯した場合は、Alexa.PowerControllerインターフェースのpowerState
プロパティの値がON
に変更になったことを示す変更レポートイベントを送信します。
検出時にインターフェースのプロパティをproactivelyReported
として指定した場合、そのプロパティ値が変更されたときはAlexaにAlexa.ChangeReport
イベントを送信する必要があります。状態の変化がAlexaからのディレクティブによるものの場合は、ディレクティブへの応答と変更レポートイベントの両方を送信します。Alexaでは、デバイスの状態の変更から3秒以内にChangeReportが送信されるものと想定しています。詳細については、ディレクティブの応答で状態をレポートするを参照してください。
Alexa.ChangeReport
イベントを、非同期的にAlexaイベントゲートウェイに送信します。
Alexa.ChangeReport
イベントを送信するには、Alexaイベントゲートウェイにイベントを送信する権限をリクエストし、ユーザーごとに認証トークンを取得します。イベントメッセージのscope
にトークンを含めます。詳細については、Alexaイベントゲートウェイへのアクセス権限のリクエストとAlexa.Authorization
インターフェースを参照してください。Alexa.ChangeReport
イベントに以下の情報を指定します。
- プロパティ値が変更された理由を説明する
cause
オブジェクトを含めます。 Alexa.ChangeReport
のpayload
を使用して、新しいプロパティ値と、その変更の理由を提供します。payload
には、少なくとも1つのプロパティを含める必要があります。- エンドポイントでプロパティの状態が変更された時刻を表す
timeOfSample
を含めます。これはAlexa.ChangeReport
イベントの送信時刻とは異なります。
- エンドポイントでプロパティの状態が変更された時刻を表す
- 変更されなかったエンドポイントの残りすべてのプロパティの状態をレポートするには、
Alexa.ChangeReport
のcontext
を使用します。これらのプロパティとその値をproperties
配列に列挙します。- ここでは、プロパティごとに、そのプロパティで最後にレポートされた変更の時刻を
timeOfSample
としてレポートします。
- ここでは、プロパティごとに、そのプロパティで最後にレポートされた変更の時刻を
- 複数のプロパティが変更された場合は、1つのプロパティをペイロードに含む変更レポートイベントを複数送信できます。または、複数のプロパティ値をペイロードに含む1つの変更レポートイベントを送信することもできます。
endpoint
オブジェクトで変更レポートのエンドポイントを識別します。endpoint.scope
オブジェクトにアクセストークンを含めます。correlationToken
を含めないでください。
変更レポートのプロパティについて詳しくは、Alexa.ChangeReportインターフェースを参照してください。
ChangeReportイベントの例
以下は、Alexa.PowerController
インターフェース、Alexa.BrightnessController
インターフェース、Alexa.EndpointHealth
インターフェースを実装した1つのエンドポイントに関するAlexa.ChangeReport
イベントの例です。このイベントは、デバイスの物理的な操作によってエンドポイントのbrightness
値が85パーセントに変わったことをレポートしています。このイベントでは新しいbrightness
値をpayload
に指定しているほか、値が変わらなかったことから、Alexa.PowerController
プロパティとAlexa.EndpointHealth
プロパティをcontext
オブジェクトに指定しています。その他のAlexa.ChangeReport
の例については、Alexaスキルでサポートする各インターフェースのドキュメントを参照してください。
{
"event": {
"header": {
"namespace": "Alexa",
"name": "ChangeReport",
"messageId": "一意の識別子、バージョン4 UUIDが望ましい",
"payloadVersion": "3"
},
"endpoint": {
"scope": {
"type": "BearerToken",
"token": "access-token-from-Amazon"
},
"endpointId": "エンドポイントID",
"cookie": {
"path": "path/for/this/endpoint"
}
},
"payload": {
"change": {
"cause": {
"type": "PHYSICAL_INTERACTION"
},
"properties": [
{
"namespace": "Alexa.BrightnessController",
"name": "brightness",
"value": 85,
"timeOfSample": "2023-07-05T12:08:00.02Z",
"uncertaintyInMilliseconds": 0
}
]
}
}
},
"context": {
"properties": [
{
"namespace": "Alexa.PowerController",
"name": "powerState",
"value": "ON",
"timeOfSample": "2023-07-03T10:20:50.52Z",
"uncertaintyInMilliseconds": 60000
},
{
"namespace": "Alexa.EndpointHealth",
"name": "connectivity",
"value": {
"value": "OK"
},
"timeOfSample": "2023-07-05T12:00:00.02Z",
"uncertaintyInMilliseconds": 0
}
]
}
}
ディレクティブの応答で状態をレポートする
Alexaがプロパティの状態を変化させるディレクティブを送信し、スキルがそのディレクティブを正常に処理した場合、Alexa.Response
を送信します。応答では、変化のあったプロパティの状態をcontext
オブジェクトに指定します。たとえば、AlexaがAlexa.PowerController.TurnOn
ディレクティブを送信すると、context
オブジェクトに新しい値ON
を指定したpowerState
プロパティを含む応答イベントを送信します。
Alexa.Response
に以下の情報を指定します。
context
オブジェクトに、変更されたプロパティを含む取得可能なすべてのプロパティの状態をレポートします。注: Amazonでは、変化のなかったプロパティも含めてすべてのプロパティの状態を指定することをお勧めします。endpoint
オブジェクトで応答のエンドポイントを識別します。- ディレクティブのリクエストの値を設定した
correlationToken
を含めます。 - 応答を非同期的に送信する場合は、エンドポイントの
endpoint.scope
オブジェクトにアクセストークンを含める必要があります。
応答イベントは、スキルのLambda関数から同期的に、またはAlexaイベントゲートウェイに非同期的に送信できます。応答のプロパティの詳細については、応答イベントを参照してください。
ディレクティブの例
以下は、Alexaがスキルに送信するディレクティブの例です。
{
"directive": {
"header": {
"namespace": "Alexa.PercentageController",
"name": "AdjustPercentage",
"messageId": "一意のバージョン4 UUID",
"correlationToken": "opaque相関トークン",
"payloadVersion": "3"
},
"endpoint": {
"scope": {
"type": "BearerToken",
"token": "OAuth2.0ベアラートークン"
},
"endpointId": "エンドポイントID",
"cookie": {}
},
"payload": {
"percentageDelta": -20
}
}
}
状態を含むディレクティブの応答の例
以下は、スキルがAlexaに送信する非同期応答の例です。この例には、context
オブジェクトの状態プロパティが含まれています。
{
"event": {
"header": {
"namespace": "Alexa",
"name": "Response",
"messageId": "一意の識別子、バージョン4 UUIDが望ましい",
"correlationToken": "リクエストに一致するopaque相関トークン",
"payloadVersion": "3"
},
"endpoint": {
"scope": {
"type": "BearerToken",
"token": "OAuth2.0ベアラートークン"
},
"endpointId": "エンドポイントID"
},
"payload": {}
},
"context": {
"properties": [
{
"namespace": "Alexa.BrightnessController",
"name": "brightness",
"value": 75,
"timeOfSample": "2023-07-01T12:01:00.02Z",
"uncertaintyInMilliseconds": 1000
},
{
"namespace": "Alexa.EndpointHealth",
"name": "connectivity",
"value": {
"value": "OK"
},
"timeOfSample": "2023-07-05T12:00:00.02Z",
"uncertaintyInMilliseconds": 0
}
]
}
}
取得可能ではないプロパティのディレクティブ応答の例
スキルは、取得可能ではないプロパティを持つエンドポイントへのディレクティブを正常に処理した後、context
にプロパティを含まない応答を送信する必要があります。
以下は、TurnOn
ディレクティブが正常に処理されたことをAlexaに知らせる同期的なAlexa.Response
イベントの例です。イベントのcontext
の空のproperties
配列により、変更後のプロパティの状態が判明していないことを示しています。
{
"event": {
"header": {
"namespace": "Alexa",
"name": "Response",
"messageId": "一意の識別子、バージョン4 UUIDが望ましい",
"correlationToken": "リクエストに一致するopaque相関トークン",
"payloadVersion": "3"
},
"endpoint": {
"endpointId": "エンドポイントID"
},
"payload": {}
},
"context": {
"properties": []
}
}
状態レポートに関するベストプラクティス
Alexaとデバイスアプリで一貫した正確なデバイスの状態がユーザーに通知されるようにするには、状態レポートに関するベストプラクティスに従ってください。レポートフローの詳細については、状態レポートの例を参照してください。
- 検出応答では、スキルがサポートしているインターフェースごとに、レポート可能なプロパティを
retrievable = true
およびproactivelyReported = true
としてマークします。 - 制御ディレクティブに応答するときは、
Alexa.Response
イベントのコンテキストで、Alexa.EndpointHealth.connectivity
プロパティを含むすべての機能プロパティの状態を常にレポートします。 - Alexaからのディレクティブによって状態の変更が発生した場合など、何らかの理由でいずれかのレポート可能なプロパティの状態が変更されたときは、
Alexa.ChangeReport
イベントを送信して、デバイスの状態をプロアクティブにAlexaにレポートします。- 変更されたプロパティについてのみ
timeOfSample
を更新します。その他のプロパティでは、プロパティが最後に変更された時刻を表すtimeOfSample
をレポートします。同じtimeOfSample
値をすべてのプロパティに設定しないでください。
- 変更されたプロパティについてのみ
- 状態の変更から3秒以内に、新しいプロパティ値を含む
Alexa.ChangeReport
を送信します。Alexa.ChangeReport
には、connectivity
プロパティの現在値も含める必要があります。 Alexa.ChangeReport
イベントがHTTPエラー503、429、401のいずれかで失敗した場合、またはメッセージがタイムアウトした場合は、少なくともあと2回、それぞれ15秒以内の間隔でAlexa.ChangeReport
の再送信を試みます。- 状態のレポートでは、必ず同じデータ型と尺度を使用します。たとえば、
StateReport
で整数をレポートした場合は、Alexa.ChangeReport
で浮動小数点数をレポートしないでください。または、Alexa.Response
で華氏温度をレポートした場合は、Alexa.ChangeReport
で摂氏温度をレポートしないでください。このような誤りがあると、Alexaから送信されるReportState
メッセージが多くなり、スキルへのトラフィックが増加します。 - スキルからの
Alexa.StateReport
応答とデバイス制御クラウドからのAlexa.ChangeReport
との間で、競合状態が発生することがあります。Alexaですべてのプロパティの状態が正しく表示されるようにするには、デバイスでプロパティ値が変更されたときにのみtimeOfSample
値を更新します。たとえば、色を変更できる新しい照明があるとします。この照明では、次のようにtimeOfSample
をレポートします。- 午前8時0分、ユーザーが照明をつけます。
powerState=ON
、timeOfSample=2024-09-05T08:00:00Z
をレポートします。 - 午後12時0分、ユーザーはAlexaに照明を青くするように指示します。
color(HSB)=Blue
、timeOfSample=2024-09-05T12:00:00Z
と、powerState=ON
、timeOfSample=2024-09-05T08:00:00Z
をレポートします。 - 午後8時0分、ユーザーが照明を消します。
powerState=OFF
、timeOfSample=2024-09-05T20:00:00Z
と、color(HSB)=Blue
、timeOfSample=2024-09-05T12:00:00Z
をレポートします。 - 午後9時0分、ユーザーが照明をつけます。
powerState=ON
、timeOfSample=2024-09-05T21:00:00Z
と、color(HSB)=Blue
、timeOfSample=2024-09-05T12:00:00Z
をレポートします。
- 午前8時0分、ユーザーが照明をつけます。
状態レポートの例
以下では特定のデバイスタイプの状態レポートの例を示しますが、これらの例はほとんどのデバイスタイプに適用されます。
スマートロックの例
次の例は、ユーザーによるスマートロックの操作を示しています。このデバイスでは、ロックの状態とエンドポイントの健全性の各機能がレポートされます。
シナリオの流れ | 対話タイプ | スキル/デバイス制御クラウドのメッセージ | よくある間違い |
---|---|---|---|
ユーザーが新しいスマートロックを入手します。 |
Alexaアプリでのデバイスの追加。 |
スキルは
|
スキルが、すべての機能のすべてのレポート可能プロパティを |
ユーザーがロックを解錠します。 |
物理的な操作またはデバイスとアプリの対話。 |
デバイス制御クラウドは、変更されたプロパティと変更のないプロパティを含む
|
|
ユーザーがAmazon Echo Hubでロックのデバイスの状態を確認します。 |
Alexaのポーリング。 |
スキルは
|
状態レポートは前回の変更レポートと一致する必要があります。一致しない場合、差異を解消する必要があります。不一致の問題をモニタリングするには、Alexa開発者コンソールで正確率メトリクスを確認します。 |
ユーザーがロックを施錠しますが、ロックが機能しません。 |
音声対話。 |
スキルは
デバイス制御クラウドは
|
スキルのディレクティブ応答に、すべてのレポート可能プロパティが含まれていない。 |
ユーザーがロックの不具合を直します。 |
物理的な操作またはデバイスとアプリの対話。 |
デバイス制御クラウドは
|
ブリッジまたはデバイスがオフラインのときに、ユーザーがロックの不具合を解消しても、デバイス制御クラウドが最新の状態の変更レポートをすぐに送信しない。 |
ユーザーがAmazon Echo Hubでデバイスの状態を確認します。 |
Alexaのポーリング。 |
スキルは
|
状態レポートは前回の変更レポートと一致する必要があります。一致しない場合、差異を解消する必要があります。不一致の問題をモニタリングするには、Alexa開発者コンソールで正確率メトリクスを確認します。 |
カラー電球の例
次の例は、ユーザーによる電球の操作を示しています。このデバイスでは、電源の状態、色、明るさ、色温度、エンドポイントの健全性の各機能がレポートされます。
シナリオの流れ | 対話タイプ | スキル/デバイス制御クラウドのメッセージ | よくある間違い |
---|---|---|---|
ユーザーが新しい電球を入手します。 |
Alexaアプリでのデバイスの追加。 |
スキルは
|
スキルが、すべての機能のすべてのレポート可能プロパティを |
ブリッジ(必要な場合)と照明が正常な状態のときに、ユーザーがライトの明るさを50%に設定します。 |
物理的な操作またはデバイスとアプリの対話。 |
デバイス制御クラウドは、変更されたプロパティと変更のないプロパティを含む
|
|
ブリッジと照明が正常な状態のときに、ユーザーが照明を消します。 |
音声対話。 |
スキルは
デバイス制御クラウドは
|
スキルのディレクティブ応答に、すべてのレポート可能プロパティが含まれていない。 |
ユーザーがAmazon Echo Hubで照明のデバイスの状態を確認します。 |
Alexaのポーリング。 |
スキルは
|
状態レポートは前回の変更レポートと一致する必要があります。一致しない場合、差異を解消する必要があります。不一致の問題をモニタリングするには、Alexa開発者コンソールで正確率メトリクスを確認します。 |
ブリッジまたは照明が正常な状態ではありません。 |
物理的な操作またはデバイスとアプリの対話。 |
デバイス制御クラウドは
|
ブリッジまたはデバイスがオフラインになったときに、デバイス制御クラウドがAlexaに変更をレポートしない。 |
ブリッジが正常な状態でないときに、ユーザーが照明をつけます。 |
音声対話。 |
スキルは
|
ブリッジまたはデバイスがオフラインのときに、スキルが適切なエラーコードを送信しない。 |
ブリッジと照明が再び正常な状態になります。 |
物理的な操作またはデバイスとアプリの対話。 |
デバイス制御クラウドは
|
ブリッジまたはデバイスがオンラインに戻っても、デバイス制御クラウドが変更レポートを送信してAlexaに通知しない。 |
ユーザーが照明をつけます。 |
音声対話。 |
スキルは
デバイス制御クラウドは
|
スキルのディレクティブ応答に、すべてのレポート可能プロパティが含まれていない。 |
照明が正常な状態ではありません。 |
物理的な操作またはデバイスとアプリの対話。 |
デバイス制御クラウドは
|
ブリッジまたはデバイスがオフラインになったときに、デバイス制御クラウドがAlexaに変更をレポートしない。 |
照明に到達できない状態のときに、ユーザーが照明を消します。 |
音声対話。 |
スキルは次の
|
デバイスがオフラインのときに、スキルが適切なエラーコードを送信しない。 |
ブリッジと照明が再び正常な状態になります。 |
物理的な操作またはデバイスとアプリの対話。 |
デバイス制御クラウドは
|
ブリッジまたはデバイスがオンラインに戻っても、デバイス制御クラウドが変更レポートを送信してAlexaに通知しない。 |
ユーザーが照明をつけます。 |
音声対話。 |
スキルは
デバイス制御クラウドは
|
スキルのディレクティブ応答に、すべてのレポート可能プロパティが含まれていない。 |
ユーザーが照明の色をマゼンタ(HSB: 277.0/0.8619/0.9373)に設定します。 |
音声対話。 |
スキルは
デバイス制御クラウドは
|
スキルはディレクティブに応答するが、デバイス制御クラウドがAlexaに変更をレポートしない。 |
ユーザーが照明の明るさを75%に設定します。 |
物理的な操作またはデバイスとアプリの対話。 |
デバイス制御クラウドは
|
スキルのディレクティブ応答に、すべてのレポート可能プロパティが含まれていない。 |
ユーザーがAmazon Echo Hubでデバイスの状態を確認します。 |
Alexaのポーリング。 |
スキルは
|
状態レポートは前回の変更レポートと一致する必要があります。一致しない場合、差異を解消する必要があります。不一致の問題をモニタリングするには、Alexa開発者コンソールで正確率メトリクスを確認します。 |
サンプルコード
次のサンプルコードでは、変更レポートをAlexaイベントゲートウェイに送信するようにスマートホームスキルを設定する方法を示しています。
関連トピック
最終更新日: 2024 年 12 月 17 日