Alexa.Discoveryインターフェース 3
Alexa.Discovery
インターフェースには、ユーザーのデバイスアカウントに関連付けられたエンドポイントの識別に使用するメッセージが含まれます。スマートホームスキルに関連付けられたエンドポイントをAlexaが検出できるように、検出ディレクティブに応答します。また、ユーザーアカウントに関連付けられたエンドポイントの追加、更新、削除を行うイベントをプロアクティブに送信します。
検出の概要については、Alexa検出についてを参照してください。
インターフェースの制限事項
検出インターフェースには、ユーザーごとに以下の制限があります。
- エンドポイントの最大数 — 300
- 各エンドポイントの機能の最大数 — 100
AddOrUpdateReport
イベントの最大ペイロードサイズ — 256キロバイト(KB)
発話
Alexa.Discoveryインターフェースではプリビルド音声対話モデルを使用します。以下に、ユーザーの発話の例を示します。
اليكسا، اكتشف أجهزتي
Alexa, ontdek mijn apparaten.
Alexa, discover my smart home devices.
Alexa, finde meine smarten Geräte.
Alexa, découvre mes appareils.
Alexa, मेरे उपकरण खोजें.
Alexa, scopri miei dispositivi.
アレクサ、デバイスを検出して
Alexa, descubra meus dispositivos.
Alexa, descubre mis dispositivos.
ディレクティブとイベント
Discoverディレクティブ
Discover
ディレクティブをサポートすると、ユーザーはアカウントに関連付けられたスマートデバイスを探すことができます。ユーザーはAlexaにデバイスを探すように頼むか、またはAlexaアプリを開いてデバイスを検出を選択することができます。
Discoverディレクティブの例
次の例は、Alexaがスキルに送信するDiscover
ディレクティブを示しています。
{
"directive": {
"header": {
"namespace": "Alexa.Discovery",
"name": "Discover",
"messageId": "一意の識別子、バージョン4 UUIDが望ましい",
"payloadVersion": "3"
},
"payload": {
"scope": {
"type": "BearerToken",
"token": "OAuth2.0ベアラートークン"
}
}
}
}
Discoverディレクティブペイロードの詳細
フィールド | 説明 | 型 |
---|---|---|
scope |
リクエストの認可と識別情報を提供します。アクセストークンを使用してシステムでユーザーを識別します。 | Scopeオブジェクト |
Discoverの応答
Discover
ディレクティブを正しく処理したら、Discover.Response
を使用して応答します。応答では、ユーザーのデバイス制御クラウドのアカウントに関連付けられているすべてのエンドポイントと、各デバイスに対してスキルがサポートする機能を返します。Alexaが一意のデバイスを識別できるよう、AdditionalAttributes
オブジェクトを含め、できるだけ多くのフィールドを設定してください。Amazonでは、少なくともモデルとメーカーを含めることを推奨しています。
出力可能な各プロパティをretrievable = true
に設定し、スキルがサポートするAlexaインターフェースをproactivelyReported = true
に設定します。また、displayCategories
プロパティをデバイスに最適なカテゴリーに設定してください。
検出応答の例
以下は、Alexa.PowerController
インターフェースとAlexa.BrightnessController
インターフェースをサポートする1つの照明に対するDiscover.Response
メッセージの例です。ほかの機能での検出応答の例を確認するには、各インターフェースのドキュメントを参照するか、その他の検出応答の例を参照してください。デバイスで正常性に関する問題(接続の切断など)が発生した場合にAlexaがユーザーに通知できるように、必ずAlexa.EndpointHealth
をサポート対象の機能のリストに含めてください。また、すべてのエンドポイントにAlexa
インターフェースを含める必要もあります。
{
"event": {
"header": {
"namespace": "Alexa.Discovery",
"name": "Discover.Response",
"payloadVersion": "3",
"messageId": "一意の識別子、バージョン4 UUIDが望ましい"
},
"payload": {
"endpoints": [{
"endpointId": "エンドポイントの一意のID",
"manufacturerName": "サンプルメーカー",
"description": "サンプルメーカーのスマート照明",
"friendlyName": "リビングの照明",
"additionalAttributes": {
"manufacturer": "サンプルメーカー",
"model": "サンプルモデル",
"serialNumber": "デバイスのシリアル番号",
"firmwareVersion": "デバイスのファームウェアバージョン",
"softwareVersion": "デバイスのソフトウェアバージョン",
"customIdentifier": "デバイスの任意のカスタム識別子"
},
"displayCategories": ["LIGHT"],
"cookie": {},
"capabilities": [{
"type": "AlexaInterface",
"interface": "Alexa.PowerController",
"version": "3",
"properties": {
"supported": [{
"name": "powerState"
}],
"proactivelyReported": true,
"retrievable": true
}
},
{
"type": "AlexaInterface",
"interface": "Alexa.BrightnessController",
"version": "3",
"properties": {
"supported": [{
"name": "brightness"
}],
"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"
}
],
"connections": [
{
"type": "TCP_IP",
"macAddress": "00:11:22:AA:BB:33:44:55"
},
{
"type": "MATTER",
"macAddress": "00:11:22:AA:BB:33:44:55",
"macNetworkInterface": "WIFI",
"matterVendorId": "MatterベンダーID",
"matterProductId": "Matter製品ID",
"matterDiscriminator": "longDiscriminator"
}
]
}]
}
}
}
検出応答のペイロード
フィールド | 説明 | 型 | 必須 |
---|---|---|---|
endpoints |
ユーザーのアカウントに関連付けられているデバイスと、各デバイスに対してスキルがサポートする機能を表します。ユーザーのアカウントに関連付けられたデバイスがない場合、このプロパティには空の配列が返されます。endpoints フィールドにはサイズ制限が適用されます。 |
Endpoint オブジェクトの配列 |
◯ |
Discoverディレクティブのエラー処理
Discover
ディレクティブを正しく処理できなかった場合は、Alexa.ErrorResponse
イベントを使用して応答します。次のエラータイプのうち、適切なものを使用します: BRIDGE_UNREACHABLE
、EXPIRED_AUTHORIZATION_CREDENTIAL
、INSUFFICIENT_PERMISSIONS
、INTERNAL_ERROR
、INVALID_AUTHORIZATION_CREDENTIAL
。
AddOrUpdateReportイベント
ユーザーが新しいエンドポイントをアカウントに追加する場合や、シーン名の変更など既存のエンドポイントに変更を加える場合、AddOrUpdateReport
イベントをプロアクティブに送信します。AddOrUpdateReport
イベントをAlexaイベントゲートウェイに送信します。ユーザーアカウントに関連付けられたすべてのエンドポイントか、新規または更新されたエンドポイントのみを含めることができます。スキルの実装内容に応じて選択できます。
AddOrUpdateReportイベントの例
POST /v3/events HTTP/1.1
Host: api.amazonalexa.com
Authorization: Bearer access-token-from-Amazon
Content-Type: application/json
{
"event": {
"header": {
"namespace": "Alexa.Discovery",
"name": "AddOrUpdateReport",
"payloadVersion": "3",
"messageId": "一意の識別子、バージョン4 UUIDが望ましい"
},
"payload": {
"endpoints": [{
"endpointId": "エンドポイントの一意のID",
"manufacturerName": "サンプルメーカー",
"description": "サンプルメーカーのスマート照明",
"friendlyName": "キッチンの照明",
"additionalAttributes": {
"manufacturer": "サンプルメーカー",
"model": "サンプルモデル",
"serialNumber": "デバイスのシリアル番号",
"firmwareVersion": "デバイスのファームウェアバージョン",
"softwareVersion": "デバイスのソフトウェアバージョン",
"customIdentifier": "デバイスの任意のカスタム識別子"
},
"displayCategories": ["LIGHT"],
"cookie": {},
"capabilities": [{
"type": "AlexaInterface",
"interface": "Alexa.PowerController",
"version": "3",
"properties": {
"supported": [{
"name": "powerState"
}],
"proactivelyReported": true,
"retrievable": true
}
},
{
"type": "AlexaInterface",
"interface": "Alexa.BrightnessController",
"version": "3",
"properties": {
"supported": [{
"name": "brightness"
}],
"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"
}
],
"connections": [{
"type": "BLUETOOTH_MESH",
"deviceUuid": "90b6eeb8cb58c9a7887d4797543bbe8a"
}]
}],
"scope": {
"type": "BearerToken",
"token": "access-token-from-Amazon"
}
}
}
}
AddOrUpdateReportイベントのペイロード
フィールド | 説明 | 型 | 必須 |
---|---|---|---|
endpoints |
ユーザーのアカウントに関連付けられているデバイスと、それに対してスキルがサポートする機能を表します。ユーザーのアカウントに関連付けられたデバイスがない場合、このプロパティには空の配列が返されます。endpoints 配列にはサイズ制限が適用されます。 |
Endpoint オブジェクトの配列 |
◯ |
scope |
Alexaに対してユーザーを識別するベアラートークンを含みます。 | Scope オブジェクト |
◯ |
DeleteReportイベント
ユーザーがアカウントからエンドポイントを削除する場合、DeleteReport
イベントをプロアクティブに送信します。DeleteReport
メッセージをAlexaイベントゲートウェイに送信します。
DeleteReportイベントの例
POST /v3/events HTTP/1.1
Host: api.amazonalexa.com
Authorization: Bearer access-token-from-Amazon
Content-Type: application/json
{
"event": {
"header": {
"namespace": "Alexa.Discovery",
"name": "DeleteReport",
"messageId": "一意の識別子、バージョン4 UUIDが望ましい",
"payloadVersion": "3"
},
"payload": {
"endpoints": [
{
"endpointId": "エンドポイントID 1"
},
{
"endpointId": "エンドポイントID 2"
}
],
"scope": {
"type": "BearerToken",
"token": "OAuth2.0ベアラートークン"
}
}
}
}
DeleteReportイベントのペイロード
フィールド | 説明 | 型 | 必須 |
---|---|---|---|
endpoints |
ユーザーアカウントから削除するエンドポイントです。Discover.Reponse イベントまたはAddOrUpdateReport イベントで定義されている有効なendpointId を使用します。 |
文字列の配列 | ◯ |
scope |
Alexaに対してユーザーを識別するベアラートークンを含みます。 | Scope オブジェクト |
◯ |
表示カテゴリー
検出応答で表示カテゴリーを指定すると、エンドポイントがAlexaアプリの正しいカテゴリーに、正しいアイコンで表示され、ユーザーは簡単にデバイスを見つけてモニタリングできるようになります。displayCategories
プロパティをデバイスに最適なカテゴリーに設定してください。
値 | 説明 |
---|---|
ACTIVITY_TRIGGER |
特定の状態に設定されたデバイスの組み合わせです。状態変化が特定の順序で起こる場合は、シーンのアクティビティトリガーを使用します。たとえば、「Netflixを観る」というシーンの場合、まずテレビの電源をオンにしてから、入力をHDMI1に設定します。 |
AIR_CONDITIONER |
室内空間の空気を冷却するデバイスです。 |
AIR_FRESHENER |
室内空間で心地よい香りを放出し、不快な臭いを消臭するデバイスです。 |
AIR_PURIFIER |
室内空間の空気の質を向上させるデバイスです。 |
AIR_QUALITY_MONITOR |
室内空間の空気の質を測定するデバイスです。 |
ALEXA_VOICE_ENABLED |
Alexa搭載デバイスです。 |
AUTO_ACCESSORY |
車載カメラなど、自動車内のスマートデバイスです。 |
BLUETOOTH_SPEAKER |
Bluetooth経由でオーディオソースに接続するスピーカーです。 |
CAMERA |
ビデオまたは写真機能を持つセキュリティデバイスです。 |
CHRISTMAS_TREE |
クリスマスの装飾です。多くの場合、ライトが付いています。 |
COFFEE_MAKER |
コーヒーを淹れるデバイスです。 |
COMPUTER |
デスクトップコンピューターなど、モバイル以外のコンピューターです。 |
CONTACT_SENSOR |
2面間の接点で発生した変化を検出してレポートするエンドポイントです。 |
DISHWASHER |
食器を洗う家電機器です。 |
DOOR |
建物、部屋、クローゼット、食器棚、車両の出入口となるエンドポイントです。 |
DOORBELL |
スマートドアベルです。 |
DRYER |
濡れた衣類を乾燥させる家電機器です。 |
EXTERIOR_BLIND |
建物の窓の外側に取り付けられたブラインドやシェードなどです。 |
FAN |
冷却や換気を行うデバイスです。 |
GAME_CONSOLE |
Microsoft XboxやNintendo Switchなどのビデオゲーム機です。 |
GARAGE_DOOR |
車両をガレージに入れるためのエンドポイントです。ガレージドアの開閉を行うには、Alexa.ModeController インターフェースを実装する必要があります。 |
HEADPHONES |
音声を直接耳に伝えるウェアラブルデバイスです。 |
HUB |
スマートホームハブです。 |
INTERIOR_BLIND |
建物の窓の内側に取り付けられたブラインドやシェードなどです。 |
LAPTOP |
ノートパソコンなどのモバイルコンピューターです。 |
LIGHT |
光源または照明器具です。 |
MICROWAVE |
電子レンジ調理器です。 |
MOBILE_PHONE |
携帯電話です。 |
MOTION_SENSOR |
ある範囲で発生した動きを検出してレポートするエンドポイントです。 |
MUSIC_SYSTEM |
ネットワーク接続型の音楽システムです。 |
NETWORK_HARDWARE |
ネットワークルーターです。 |
OTHER |
ほかのカテゴリーのいずれにも当てはまらないエンドポイントです。 |
OVEN |
オーブン調理器です。 |
PHONE |
固定電話やIP電話など、携帯電話以外の電話です。 |
PRINTER |
印刷用のデバイスです。 |
REMOTE |
リモートスイッチやスマートボタンなど、ステートレスイベントをサポートするデバイスです。 |
ROUTER |
ネットワークルーターです。 |
SCENE_TRIGGER |
特定の状態に設定されたデバイスの組み合わせです。状態変化の順序が重要でないシーンの場合はシーントリガーを使用します。たとえば、「就寝」というシーンの場合、照明を消し、サーモスタットの設定温度を下げますが、その順序は問いません。 |
SCREEN |
プロジェクタースクリーンです。 |
SECURITY_PANEL |
セキュリティパネルです。 |
SECURITY_SYSTEM |
セキュリティシステムです。 |
SLOW_COOKER |
カウンターに置いて低温で調理するための電気調理器です。多くの場合、調理鍋のような形をしています。 |
SMARTLOCK |
ロックをかけるエンドポイントです。 |
SMARTPLUG |
既存の電源コンセントに差し込むモジュールです。このモジュールにデバイスを接続します。たとえば、ユーザーはスマートプラグを電源コンセントに差し込み、照明をスマートプラグに接続することができます。スマートプラグでさまざまなデバイスを制御できます。 |
SPEAKER |
スピーカーまたはスピーカーシステムです。 |
STREAMING_DEVICE |
Apple TV、Chromecast、Rokuなどのストリーミングデバイスです。 |
SWITCH |
電気システムに直接配線されたスイッチです。スイッチでさまざまなデバイスを制御できます。 |
TABLET |
タブレットコンピューターです。 |
TEMPERATURE_SENSOR |
温度をレポートするエンドポイントです。温度の制御は行いません。エンドポイントの温度データは、Alexaアプリでは表示されません。エンドポイントで温度の管理も行う場合、代わりにTHERMOSTATを使用します。 |
THERMOSTAT |
温度、スタンドアロンのエアコン、直接温度制御が可能なヒーターを制御するエンドポイントです。温度を検知しても制御は行わないエンドポイントの場合、代わりにTEMPERATURE_SENSORを使用します。 |
TV |
テレビです。 |
VACUUM_CLEANER |
掃除機です。 |
VEHICLE |
自動車です。 |
WASHER |
衣類を洗濯する家電機器です。 |
WATER_HEATER |
水を加熱するデバイスです。多くの場合、大型のタンクが使われています。 |
WEARABLE |
Apple Watch、Fitbit、Samsung Gearなど、ネットワーク接続型のウェアラブルデバイスです。 |
関連トピック
最終更新日: 2024 年 12 月 02 日