Alexa.EndpointHealthインターフェース3.1
AlexaスキルにAlexa.EndpointHealth
インターフェースを実装すると、検出されたデバイスの健全性をAlexaにレポートできます。Wi-Fiパスワード変更による接続エラーなど、デバイスに問題が発生すると、Alexaがユーザーにデバイスのエクスペリエンス低下を知らせることができるよう、理由をレポートします。
Alexa.EndpointHealth
インターフェースは、デバイスに機能を提供するほかのインターフェースと一緒に実装します。たとえば、デバイスがサーモスタットの場合は、ユーザーがサーモスタットを制御できるようにAlexa.ThermostatController
を実装し、サーモスタットが温度を感知してレポートできるようにAlexa.TemperatureSensor
を実装し、スキルがサーモスタットの接続ステータスをレポートできるようにAlexa.EndpointHealth
を実装します。
Alexa.EndpointHealth
を実装することをお勧めします。Alexa.EndpointHealth
の実装は任意ですが、次の場合は例外となります。- モーションセンサーや温度センサーなど、センサーデバイスには
Alexa.EndpointHealth
を実装する必要があります。- Works with Alexa認定を取得する予定がある場合は、
Alexa.EndpointHealth
を実装する必要があります。Alexa.EndpointHealth
インターフェースがサポートする言語については、Alexaインターフェースとサポートしている言語の一覧を参照してください。メッセージプロパティの定義については、Alexaインターフェースのメッセージとプロパティを参照してください。
発話
Alexa.EndpointHealth
インターフェースにはユーザー発話はありません。代わりに、ユーザーがデバイスを制御しようとすると、Alexaがデバイスの健全性についての情報で応答します。たとえば、スキルがプラグにアクセスできないことをレポートしてユーザーがプラグをオンにしようとするとき、Alexaは「プラグが応答していません。ネットワーク接続と電源を確認してください。」と応答します。
出力可能なプロパティ
Alexa.EndpointHealth
インターフェースには、以下の出力可能プロパティが含まれます。
Connectivityプロパティ
Connectivity
プロパティは、デバイスの接続ステータスを表します。Connectivity
は必須プロパティです。
UNREACHABLE
とレポートすると、Alexaはデバイス制御リクエストに対して以下の例のような応答を返します。接続エラーのreason
は、応答に含まれていません。
device name isn't responding.Please check its network connection and power supply.
device name isn't responding.
device name مَا يَسْتَجِيب. يَالِيت تتأكد من اتصاله بالشبكة ومصدر طاقته
device name مَا يَسْتَجِيب
device name ne répond pas.Veuillez vérifier sa connexion réseau et son alimentation.
device name ne répond pas.
device name antwortet nicht.Bitte überprüfe die Netzwerkverbindung und Stromversorgung des Geräts.
device name reagiert gerade nicht.
device name से कनेक्शन नहीं हो पा रहा है. कृपया उसका नेटवर्क कनेक्शन और पावर सप्लाई ठीक से देख लें
device name से कनेक्शन नहीं हो पा रहा
device name non risponde.Verifica connessione di rete e alimentazione.
Il dispositivo device name non risponde.
デバイス名から応答がありません。ネットワークの接続と、電源を確認してください。
デバイス名から応答がありません。
apparaat naam reageert niet.Controleer de netwerkverbinding en stroomvoorziening.
apparaat naam reageert niet.
device name não está respondendo.Verifique a sua conexão de rede e fonte de alimentação.
device name não está respondendo.
device name no responde.Revisa la conexión de red y el suministro de alimentación del dispositivo.
device name no responde.
以下は、アクセスできないデバイスの例です。
{
"name": "connectivity",
"value": {
"value": "UNREACHABLE",
"reason": "WIFI_BAD_PASSWORD"
}
}
connectivity
プロパティは、次のフィールドを含むオブジェクトです。
フィールド | 説明 | 型 |
---|---|---|
value |
デバイスの接続ステータスです。 有効な値は OK 、UNREACHABLE です。 |
文字列 |
reason |
(任意)デバイスにアクセスできない場合、このプロパティにエラーの理由が入ります。 有効な値については、接続の理由値を参照してください。 |
文字列 |
接続の理由値
以下の表は、接続エラーの各reason
について、有効な値、説明、考えられる解決策をまとめたものです。
値 | 説明 |
---|---|
WIFI_BAD_PASSWORD |
Wi-Fiのパスワードが誤っているためデバイスを接続できませんでした。 |
WIFI_AP_NOT_FOUND |
デバイスがWi-Fiアクセスポイントを見つけられません。デバイスは、ルーターから遠すぎるか、ベビーモニター、電子レンジなどの電子機器といった干渉を起こす別のデバイスと近すぎる可能性があります。 |
WIFI_ROUTER_UNREACHABLE |
デバイスは、ルーターにデータを送信できないか、ルーターからデータを受信できません。インターネットがダウンしているか、ルーターの再起動が必要な可能性があります。 |
WIFI_AP_CHANNEL_QUALITY_LOW |
デバイスはアクセスポイントに接続できますが、チャネルの品質は低いです。 |
INTERNET_UNREACHABLE |
デバイスはアクセスポイントに接続できますが、インターネットアクセスがありません。ルーターまたはデバイスの再起動が必要、またはインターネットがダウンしている可能性があります。 |
CAPTIVE_PORTAL_CHECK_FAILED |
デバイスはキャプティブポータルに接続しようとしています。インターフェースはキャプティブポータルをサポートしていません。空港やホテルではキャプティブポータルネットワークがよく使用されています。これらのネットワークは、接続する前にユーザーに特定の利用条件への同意を求めます。ユーザーは別のネットワークを選択する必要があります。 |
UNKNOWN |
接続エラーの理由は不明です。 |
検出
Alexa.EndpointHealth
インターフェースをサポートするエンドポイントは、Alexa.Discovery
の標準検出メカニズムを使用して表します。
Alexaからスキルに状態レポートリクエストが送信されたときにレポートするすべてのプロパティについて、そのretrievable
をtrue
に設定します。変更レポートでAlexaにプロアクティブにレポートするプロパティについては、そのproactivelyReported
をtrue
に設定します。Alexa.EndpointHealth
を実装するときは、サポートするプロパティのretrievable
をtrue
に設定し、proactivelyReported
をtrue
に設定します。
検出応答の例
以下は、Alexa.EndpointHealth
インターフェースとAlexa.LockController
インターフェースをサポートするエンドポイントのDiscover.Response
メッセージの例です。
{
"event": {
"header": {
"namespace": "Alexa.Discovery",
"name": "Discover.Response",
"payloadVersion": "3",
"messageId": "一意の識別子、バージョン4 UUIDが望ましい"
},
"payload": {
"endpoints": [{
"endpointId": "エンドポイントの一意のID",
"manufacturerName": "サンプルメーカー",
"description": "Alexaアプリに表示される説明",
"friendlyName": "Alexaアプリに表示されるデバイス名(例:玄関ドアなど)",
"displayCategories": ["SMARTLOCK"],
"additionalAttributes": {
"manufacturer": "サンプルメーカー",
"model": "サンプルモデル",
"serialNumber": "デバイスのシリアル番号",
"firmwareVersion": "デバイスのファームウェアバージョン",
"softwareVersion": "デバイスのソフトウェアバージョン",
"customIdentifier": "デバイスのカスタム識別子"
},
"cookie": {},
"capabilities": [{
"type": "AlexaInterface",
"interface": "Alexa.LockController",
"version": "3",
"properties": {
"supported": [{
"name": "lockState"
}],
"proactivelyReported": true,
"retrievable": true
}
},
{
"type": "AlexaInterface",
"interface": "Alexa.EndpointHealth",
"version": "3.1",
"properties": {
"supported": [{
"name": "connectivity"
}
],
"proactivelyReported": true,
"retrievable": true
}
},
{
"type": "AlexaInterface",
"interface": "Alexa",
"version": "3"
}
]
}]
}
}
}
ディレクティブ
Alexa.EndpointHealth
インターフェース自体はディレクティブを定義しません。Alexa.EndpointHealth
を実装する場合は、ほかのインターフェースで定義されたディレクティブへの応答にconnectivityプロパティを含める必要があります。
ディレクティブ応答イベントの例
次の例では、デバイスはAlexa.PowerController
インターフェースとAlexa.EndpointHealth
インターフェースをサポートし、Alexa.Response
をAlexa.PowerController.TurnOn
ディレクティブに送信します。
状態レポート
Alexaはエンドポイントの状態についての情報をリクエストするために、Alexa.ReportState
ディレクティブを送信します。AlexaがAlexa.ReportState
ディレクティブを送信したら、それに対する応答としてAlexa.StateReport
イベントを送信します。応答には、contextオブジェクトのすべてのretrievableプロパティの現在の状態を含めます。retrievableプロパティは検出応答で特定します。状態レポートの詳細については、状態および変更レポートについてを参照してください。
Alexa.EndpointHealth
を実装する場合、Alexa.StateReport
にconnectivity
プロパティを含めます。
StateReport応答の例
以下は、Alexa.EndpointHealth
インターフェース、Alexa.ThermostatController
インターフェース、Alexa.TemperatureSensor
インターフェースをサポートするエンドポイントのAlexa.StateReport
の例です。
変更レポート
エンドポイントの状態の変化をプロアクティブに出力するには、Alexa.ChangeReport
イベントを送信します。プロアクティブにレポートするプロパティは検出応答で指定します。変更レポートの詳細については、状態および変更レポートについてを参照してください。
Alexa.EndpointHealth
を実装する場合、Alexa.ChangeReport
にconnectivity
プロパティを含めます。connectivity
プロパティの値が変更された場合は、これをペイロードフィールドに含めます。connectivity
プロパティの値が変更されていない場合は、これをコンテキストフィールドに含めます。
connectivity
がOK
からUNREACHABLE
に変化した場合、またはUNREACHABLE
からOK
に変化した場合、3秒以内に更新されたAlexa.EndpointHealth
のconnectivity
プロパティの値とともにChangeReport
を送信します。デバイスがアクセス不能とレポートする場合は、スキルがサポートするほかのすべての出力可能プロパティの最後に確認できた状態を含めます。変化しなかったデバイス健全性のレポート
以下は、Alexa.EndpointHealth
インターフェースとAlexa.LockController
インターフェースをサポートするエンドポイントのAlexa.ChangeReport
の例です。この変更レポートでは、lockState
プロパティの値のみが変更されました。
変化したデバイス健全性のレポート
以下は、Alexa.EndpointHealth
インターフェースとAlexa.LockController
インターフェースをサポートするエンドポイントのAlexa.ChangeReport
の例です。変更レポートでは、connectivity
プロパティの値が変更されました。
関連トピック
最終更新日: 2024 年 12 月 06 日