その他の検出応答の例



その他の検出応答の例

Alexa.Discoveryインターフェースには、ユーザーのデバイスアカウントに関連付けられたエンドポイントの特定に使用するメッセージが含まれます。Discover.Responseイベントを送信すると、スマートホームスキルに関連付けられたデバイスやシーンをユーザーが検出できるようになります。詳細については、Alexa.Discoveryを参照してください。

ここでは、Discover.Responseイベントの例をいくつか示します。ほかの機能での検出応答の例を確認するには、各インターフェースのドキュメントを参照してください。

Alexaスキルでさまざまなインターフェースを組み合わせる方法の詳細については、スマートホームスキル用のデバイステンプレートを参照してください。

パン、チルト、ズームをサポートするカメラの例

以下は、玄関のカメラや子ども部屋のカメラといったセキュリティカメラを制御するAlexaスキルでDiscover.Responseイベントを使った例です。この例のカメラは、Alexaデバイスとカメラの間の通信にAlexa.RTCSessionControllerインターフェースをサポートしています。この例では、カメラが物理的に左右にパンしたり、上下にチルトしたり、ズームイン/ズームアウトしたりできます。スキルには、パン、チルト、ズームをサポートするAlexa.RangeControllerインターフェースを実装しています。

カメラはどのようなパン、チルト、ズームの機能もサポートできます。パンとチルトには、カメラの実視野(FOV)のパーセンテージとして範囲を指定します。たとえば、カメラが90度の水平FOVを持ち、合計360度回転できる場合、可動範囲は400%となります。合計サポート範囲は0~400や-200~200などのように定義できます。この例では、パンの範囲が-200~200として定義され、0は中央を表します。チルトの範囲は-50~50で、ズーム範囲は0~200です。

クリップボードにコピーされました。

{
  "event":{
    "header":{
      "namespace": "Alexa.Discovery",
      "name": "Discover.Response",
      "payloadVersion": "3",
      "messageId": "<メッセージID>"
    },
    "payload": {
      "endpoints": [
        {
          "endpointId": "<エンドポイントの一意のID>",
          "manufacturerName": "<エンドポイントのメーカー名>",
          "description": "<Alexaアプリに表示される説明>",
          "friendlyName": "玄関のカメラ",
          "displayCategories": ["CAMERA"],
          "cookie": {},
          "capabilities": [
            {
              "type": "AlexaInterface",
              "interface": "Alexa.RTCSessionController",
              "version": "3.1",
              "configuration": {
                "isFullDuplexAudioSupported": true
              }
            },
            {
              "type": "AlexaInterface",
              "interface": "Alexa.MediaMetadata",
              "version": "3",
              "proactivelyReported": true
            },
            {
              "type": "AlexaInterface",
              "interface": "Alexa.RangeController",
              "version": "3",
              "instance": "Camera.Pan",
              "capabilityResources": {
                "friendlyNames": [
                  {
                    "@type": "text",
                    "value": {
                      "text": "カメラのパン",
                      "locale": "ja-JP"
                    }
                  },
                  {
                    "@type": "text",
                    "value": {
                      "text": "カメラの回転",
                      "locale": "ja-JP"
                    }
                  },
                  {
                    "@type": "text",
                    "value": {
                      "text": "回転",
                      "locale": "ja-JP"
                    }
                  }
                ]
              },
              "properties": {
                "supported": [
                  {
                    "name": "rangeValue"
                  }
                ],
                "retrievable": true,
                "proactivelyReported": true
              },
              "configuration": {
                "supportedRange": {
                  "minimumValue": -200,
                  "maximumValue": 200,
                  "precision": 1
                },
                "presets": [
                  {
                    "rangeValue": -200,
                    "presetResources": {
                      "friendlyNames": [
                        {
                          "@type": "text",
                          "value": {
                            "text": "一番左",
                            "locale": "ja-JP"
                          }
                        }
                      ]
                    }
                  },
                  {
                    "rangeValue": 0,
                    "presetResources": {
                      "friendlyNames": [
                        {
                          "@type": "text",
                          "value": {
                            "text": "中央",
                            "locale": "ja-JP"
                          }
                        }
                      ]
                    }
                  },
                  {
                    "rangeValue": 200,
                    "presetResources": {
                      "friendlyNames": [
                        {
                          "@type": "text",
                          "value": {
                            "text": "一番右",
                            "locale": "ja-JP"
                          }
                        }
                      ]
                    }
                  }
                ]
              }
            },
            {
              "type": "AlexaInterface",
              "interface": "Alexa.RangeController",
              "version": "3",
              "instance": "Camera.Tilt",
              "capabilityResources": {
                "friendlyNames": [
                  {
                    "@type": "text",
                    "value": {
                      "text": "カメラのチルト",
                      "locale": "ja-JP"
                    }
                  },
                  {
                    "@type": "text",
                    "value": {
                      "text": "チルト",
                      "locale": "ja-JP"
                    }
                  }
                ]
              },
              "properties": {
                "supported": [
                  {
                    "name": "rangeValue"
                  }
                ],
                "retrievable": true,
                "proactivelyReported": true
              },
              "configuration": {
                "supportedRange": {
                  "minimumValue": -50,
                  "maximumValue": 50,
                  "precision": 1
                },
                "presets": [
                  {
                    "rangeValue": -50,
                    "presetResources": {
                      "friendlyNames": [
                        {
                          "@type": "text",
                          "value": {
                            "text": "下",
                            "locale": "ja-JP"
                          }
                        }
                      ]
                    }
                  },
                  {
                    "rangeValue": 0,
                    "presetResources": {
                      "friendlyNames": [
                        {
                          "@type": "text",
                          "value": {
                            "text": "中央",
                            "locale": "ja-JP"
                          }
                        }
                      ]
                    }
                  },
                  {
                    "rangeValue": 50,
                    "presetResources": {
                      "friendlyNames": [
                        {
                          "@type": "text",
                          "value": {
                            "text": "上",
                            "locale": "ja-JP"
                          }
                        }
                      ]
                    }
                  }
                ]
              }
            },
            {
              "type": "AlexaInterface",
              "interface": "Alexa.RangeController",
              "version": "3",
              "instance": "Camera.Zoom",
              "capabilityResources": {
                "friendlyNames": [
                  {
                    "@type": "text",
                    "value": {
                      "text": "カメラのズーム",
                      "locale": "ja-JP"
                    }
                  },
                  {
                    "@type": "text",
                    "value": {
                      "text": "ズーム",
                      "locale": "ja-JP"
                    }
                  }
                ]
              },
              "properties": {
                "supported": [
                  {
                    "name": "rangeValue"
                  }
                ],
                "retrievable": true,
                "proactivelyReported": true
              },
              "configuration": {
                "supportedRange": {
                  "minimumValue": 0,
                  "maximumValue": 200,
                  "precision": 50
                },
                "presets": [
                  {
                    "rangeValue": 0,
                    "presetResources": {
                      "friendlyNames": [
                        {
                          "@type": "text",
                          "value": {
                            "text": "ズームアウト",
                            "locale": "ja-JP"
                          }
                        },
                        {
                          "@type": "asset",
                          "value": {
                            "assetId": "Alexa.Value.Minimum"
                          }
                        }
                      ]
                    }
                  },
                  {
                    "rangeValue": 200,
                    "presetResources": {
                      "friendlyNames": [
                        {
                          "@type": "text",
                          "value": {
                            "text": "ズームイン",
                            "locale": "ja-JP"
                          }
                        },
                        {
                          "@type": "asset",
                          "value": {
                            "assetId": "Alexa.Value.Maximum"
                          }
                        }
                      ]
                    }
                  }
                ]
              }
            },
            {
              "type": "AlexaInterface",
              "interface": "Alexa.EndpointHealth",
              "version": "3",
              "properties": {
                "supported": [
                  {
                    "name": "connectivity"
                  }
                ],
                "proactivelyReported": true,
                "retrievable": true
              }
            },
            {
              "type": "AlexaInterface",
              "interface": "Alexa",
              "version": "3"
            }
          ]
        }
      ]
    }
  }
}

エンターテイメントデバイスの例

以下は、エンターテイメントデバイスを制御するAlexaスキルでのDiscover.Responseイベントの例です。

クリップボードにコピーされました。

{
  "event":{
    "header":{
      "namespace": "Alexa.Discovery",
      "name": "Discover.Response",
      "payloadVersion": "3",
      "messageId": "<メッセージID>"
    },
    "payload": {
      "endpoints": [
        {
          "endpointId": "<エンドポイントの一意のID>",
          "friendlyName": "エンターテイメントシステム",
          "description": "サンプルメーカーのブランド名",
          "manufacturerName": "サンプルメーカー",
          "displayCategories": [
            "TV"
          ],
          "cookie": {},
          "capabilities": [
            {
              "type": "AlexaInterface",
              "interface": "Alexa.PowerController",
              "version": "3",
              "properties": {
                "supported": [
                  {
                    "name": "powerState"
                  }
                ],
                "proactivelyReported": true,
                "retrievable": true
              }
            },
            {
              "type": "AlexaInterface",
              "interface": "Alexa.ChannelController",
              "version": "3",
              "properties": {
                "supported": [
                  {
                    "name": "channel"
                  }
                ],
                "proactivelyReported": true,
                "retrievable": true
              }
            },
            {
              "type": "AlexaInterface",
              "interface": "Alexa.InputController",
              "version": "3",
              "properties": {
                "supported": [
                  {
                    "name": "input"
                  }
                ],
                "proactivelyReported": true,
                "retrievable": true
              },
              "inputs": [
                {
                  "name": "HDMI1"
                },
                {
                  "name": "HDMI2"
                }
              ]
            },
            {
              "type": "AlexaInterface",
              "interface": "Alexa.PlaybackController",
              "version": "3",
              "properties": {},
              "supportedOperations": [
                "Play",
                "Pause",
                "Stop"
              ]
            },
            {
              "type": "AlexaInterface",
              "interface": "Alexa.Speaker",
              "version": "3",
              "properties": {
                "supported": [
                  {
                    "name": "volume"
                  },
                  {
                    "name": "muted"
                  }
                ],
                "proactivelyReported": true,
                "retrievable": true
              }
            },
            {
              "type": "AlexaInterface",
              "interface": "Alexa.EndpointHealth",
              "version": "3",
              "properties": {
                "supported": [
                  {
                    "name": "connectivity"
                  }
                ],
                "proactivelyReported": true,
                "retrievable": true
              }
            },
            {
              "type": "AlexaInterface",
              "interface": "Alexa",
              "version": "3"
            }
          ]
        }
      ]
    }
  }
}

暖炉の例

以下は、暖炉を制御するAlexaスキルでのDiscover.Responseイベントの例です。この暖炉は、次のインターフェースを使用します。

  • PowerControllerで暖炉のオン/オフを切り替えます。
  • ColorControllerで炎の色を変更します。
  • RangeControllerで、オンになっているバーナーの数を変更します。
  • ModeControllerで、キャンプファイヤー、キャンドル、氷の炎の各モードを提供します。

この例は、Pythonでスマートホーム仮想暖炉スキルを構築するチュートリアルの一部です。詳細については、GitHubのSkill Sample: Smart Home Fireplaceを参照してください。

この例では、ユーザーがより自由な言葉でAlexaに話しかけられるように、フレンドリー名を指定します。詳細については、フレンドリー名のリソースとアセットを参照してください。

クリップボードにコピーされました。

{
  "event": {
    "header": {
      "namespace": "Alexa.Discovery",
      "name": "Discover.Response",
      "payloadVersion": "3",
      "messageId": "<メッセージID>"
    },
    "payload": {
      "endpoints": [
        {
          "endpointId": "<エンドポイントの一意のID>",
          "friendlyName": "リビングの暖炉",
          "description": "サンプルメーカーの暖炉",
          "manufacturerName": "Sample Manufacturer",
          "displayCategories": ["OTHER"],
          "cookie": {},
          "capabilities": [
            {
              "type": "AlexaInterface",
              "interface": "Alexa.PowerController",
              "version": "3",
              "properties": {
                "supported": [
                  {
                    "name": "powerState"
                  }
                ],
                "proactivelyReported": true,
                "retrievable": true
              }
            },
            {
              "type": "AlexaInterface",
              "interface": "Alexa.ColorController",
              "version": "3",
              "properties": {
                "supported": [
                  {
                    "name": "color"
                  }
                ],
                "proactivelyReported": true,
                "retrievable": true
              }
            },
            {
              "type": "AlexaInterface",
              "interface": "Alexa.RangeController",
              "instance": "Fireplace.Burners",
              "version": "3",
              "properties": {
                "supported": [
                  {
                    "name": "rangeValue"
                  }
                ],
                "proactivelyReported": true,
                "retrievable": true,
                "nonControllable": false
              },
              "capabilityResources": {
                "friendlyNames": [
                  {
                    "@type": "asset",
                    "value": {
                      "assetId": "Alexa.Setting.Preset"
                    }
                  }
                ]
              },
              "configuration": {
                "supportedRange": {
                  "minimumValue": 1,
                  "maximumValue": 3,
                  "precision": 1
                },
                "presets": [
                  {
                    "rangeValue": 1,
                    "presetResources": {
                      "friendlyNames": [
                        {
                          "@type": "asset",
                          "value": {
                            "assetId": "Alexa.Value.Low"
                          }
                        },
                        {
                          "@type": "asset",
                          "value": {
                            "assetId": "Alexa.Value.Minimum"
                          }
                        },
                        {
                          "@type": "text",
                          "value": {
                            "text": "最弱",
                            "locale": "ja-JP"
                          }
                        }
                      ]
                    }
                  },
                  {
                    "rangeValue": 2,
                    "presetResources": {
                      "friendlyNames": [
                        {
                          "@type": "asset",
                          "value": {
                            "assetId": "Alexa.Value.Medium"
                          }
                        },
                        {
                          "@type": "text",
                          "value": {
                            "text": "標準",
                            "locale": "ja-JP"
                          }
                        }
                      ]
                    }
                  },
                  {
                    "rangeValue": 3,
                    "presetResources": {
                      "friendlyNames": [
                        {
                          "@type": "asset",
                          "value": {
                            "assetId": "Alexa.Value.Maximum"
                          }
                        },
                        {
                          "@type": "asset",
                          "value": {
                            "assetId": "Alexa.Value.High"
                          }
                        },
                        {
                          "@type": "text",
                          "value": {
                            "text": "最強",
                            "locale": "ja-JP"
                          }
                        }
                      ]
                    }
                  }
                ]
              }
            },
            {
              "type": "AlexaInterface",
              "interface": "Alexa.ModeController",
              "instance": "Fireplace.FlameType",
              "version": "3",
              "properties": {
                "supported": [
                  {
                    "name": "mode"
                  }
                ],
                "retrievable": true,
                "proactivelyReported": true,
                "nonControllable": false
              },
              "capabilityResources": {
                "friendlyNames": [
                  {
                    "@type": "text",
                    "value": {
                      "text": "炎のタイプ",
                      "locale": "ja-JP"
                    }
                  },
                  {
                    "@type": "text",
                    "value": {
                      "text": "炎",
                      "locale": "ja-JP"
                    }
                  }
                ]
              },
              "configuration": {
                "ordered": false,
                "supportedModes": [
                  {
                    "value": "FlameType.Campfire",
                    "modeResources": {
                      "friendlyNames": [
                        {
                          "@type": "text",
                          "value": {
                            "text": "標準",
                            "locale": "ja-JP"
                          }
                        },
                        {
                          "@type": "text",
                          "value": {
                            "text": "キャンプファイヤー",
                            "locale": "ja-JP"
                          }
                        }
                      ]
                    }
                  },
                  {
                    "value": "FlameType.Candle",
                    "modeResources": {
                      "friendlyNames": [
                        {
                          "@type": "text",
                          "value": {
                            "text": "キャンドル",
                            "locale": "ja-JP"
                          }
                        },
                        {
                          "@type": "text",
                          "value": {
                            "text": "キャンドルライト",
                            "locale": "ja-JP"
                          }
                        }
                      ]
                    }
                  },
                  {
                    "value": "FlameType.IceFlame",
                    "modeResources": {
                      "friendlyNames": [
                        {
                          "@type": "text",
                          "value": {
                            "text": "氷モード",
                            "locale": "ja-JP"
                          }
                        },
                        {
                          "@type": "text",
                          "value": {
                            "text": "氷の炎",
                            "locale": "ja-JP"
                          }
                        },
                        {
                          "@type": "text",
                          "value": {
                            "text": "氷",
                            "locale": "ja-JP"
                          }
                        }
                      ]
                    }
                  }
                ]
              }
            },
            {
              "type": "AlexaInterface",
              "interface": "Alexa.ModeController",
              "instance": "Fireplace.CurrentFlameType",
              "version": "3",
              "properties": {
                "supported": [
                  {
                    "name": "mode"
                  }
                ],
                "retrievable": true,
                "proactivelyReported": true,
                "nonControllable": true
              },
              "capabilityResources": {
                "friendlyNames": [
                  {
                    "@type": "text",
                    "value": {
                      "text": "現在の炎のタイプ",
                      "locale": "ja-JP"
                    }
                  }
                ]
              },
              "configuration": {
                "ordered": false,
                "supportedModes": [
                  {
                    "value": "CurrentFlameType.Campfire",
                    "modeResources": {
                      "friendlyNames": [
                        {
                          "@type": "text",
                          "value": {
                            "text": "キャンプファイヤー",
                            "locale": "ja-JP"
                          }
                        }
                      ]
                    }
                  },
                  {
                    "value": "CurrentFlameType.Candle",
                    "modeResources": {
                      "friendlyNames": [
                        {
                          "@type": "text",
                          "value": {
                            "text": "キャンドル",
                            "locale": "ja-JP"
                          }
                        }
                      ]
                    }
                  },
                  {
                    "value": "CurrentFlameType.Ice",
                    "modeResources": {
                      "friendlyNames": [
                        {
                          "@type": "text",
                          "value": {
                            "text": "氷",
                            "locale": "ja-JP"
                          }
                        }
                      ]
                    }
                  }
                ]
              }
            },
            {
              "type": "AlexaInterface",
              "interface": "Alexa",
              "version": "3"
            }
          ]
        }
      ]
    }
  }
}

ギターアンプの例

以下は、ギターアンプを制御するAlexaスキルでのDiscover.Responseイベントの例です。

この例では、ユーザーがより自由な言葉でAlexaに話しかけられるように、フレンドリー名を指定します。詳細については、フレンドリー名のリソースとアセットを参照してください。

クリップボードにコピーされました。

{
  "event": {
    "header": {
      "namespace": "Alexa.Discovery",
      "name": "Discover.Response",
      "payloadVersion": "3",
      "messageId": "<メッセージID>"
    },
    "payload": {
      "endpoints": [
        {
          "endpointId": "<エンドポイントの一意のID>",
          "friendlyName": "Guitar Amp",
          "description": "A smart amplifier by Sample Manufacturer",
          "manufacturerName": "Sample Manufacturer",
          "displayCategories": ["OTHER"],
          "capabilities": [
            {
              "type": "AlexaInterface",
              "interface": "Alexa.PowerController",
              "version": "3",
              "properties": {
                "supported": [
                  {
                    "name": "powerState"
                  }
                ],
                "proactivelyReported": true,
                "retrievable": true
              }
            },
            {
              "type": "AlexaInterface",
              "interface": "Alexa.Speaker",
              "version": "3",
              "properties": {
                "supported": [
                  {
                    "name": "volume"
                  },
                  {
                    "name": "muted"
                  }
                ],
                "proactivelyReported": true,
                "retrievable": true
              }
            },
            {
              "type": "AlexaInterface",
              "interface": "Alexa.EqualizerController",
              "version": "3",
              "properties": {
                "supported": [
                  {
                    "name": "bands"
                  }
                ],
                "proactivelyReported": true,
                "retrievable": true
              },
              "configurations": {
                "bands": {
                  "supported": [
                    {
                      "name": "BASS"
                    },
                    {
                      "name": "MIDRANGE"
                    },
                    {
                      "name": "TREBLE"
                    }
                  ],
                  "range": {
                    "minimum": 1,
                    "maximum": 10
                  }
                }
              }
            },
            {
              "type": "AlexaInterface",
              "interface": "Alexa.ToggleController",
              "version": "3",
              "instance": "SampleManufacturer.Amp.OverDrive",
              "capabilityResources": {
                "friendlyNames": [
                  {
                    "@type": "text",
                    "value": {
                      "text": "Overdrive",
                      "locale": "en-US"
                    }
                  },
                  {
                    "@type": "text",
                    "value": {
                      "text": "Over Drive",
                      "locale": "en-US"
                    }
                  }
                ]
              },
              "properties": {
                "supported": [
                  {
                    "name": "toggleState"
                  }
                ],
                "proactivelyReported": true,
                "retrievable": true,
              }
            },
            {
              "type": "AlexaInterface",
              "interface": "Alexa.RangeController",
              "version": "3",
              "instance": "SampleManufacturer.Amp.Gain",
              "capabilityResources": {
                "friendlyNames": [
                  {
                    "@type": "text",
                    "value": {
                      "text": "Gain",
                      "locale": "en-US"
                    }
                  },
                  {
                    "@type": "text",
                    "value": {
                      "text": "Drive",
                      "locale": "en-US"
                    }
                  }
                ]
              },
              "properties": {
                "supported": [
                  {
                    "name": "rangeValue"
                  }
                ],
                "proactivelyReported": true,
                "retrievable": true
              },
              "configuration": {
                "supportedRange": {
                  "minimumValue": 1,
                  "maximumValue": 10,
                  "precision": 1
                },
                "presets": []
              }
            },
            {
              "type": "AlexaInterface",
              "interface": "Alexa.ModeController",
              "version": "3",
              "instance": "SampleManufacturer.Amp.Presets",
              "capabilityResources": {
                "friendlyNames": [
                  {
                    "@type": "text",
                    "value": {
                      "text": "Preset",
                      "locale": "en-US"
                    }
                  },
                  {
                    "@type": "text",
                    "value": {
                      "text": "Effect",
                      "locale": "en-US"
                    }
                  }
                ]
              },
              "properties": {
                "supported": [
                  {
                    "name": "mode"
                  }
                ],
                "retrievable": true,
                "proactivelyReported": true
              },
              "configuration": {
                "ordered": false,
                "supportedModes": [
                  {
                    "value": "Preset.Normal",
                    "modeResources": {
                      "friendlyNames": [
                        {
                          "@type": "text",
                          "value": {
                            "text": "Normal",
                            "locale": "en-US"
                          }
                        },
                        {
                          "@type": "text",
                          "value": {
                            "text": "Standard",
                            "locale": "en-US"
                          }
                        }
                      ]
                    }
                  },
                  {
                    "value": " Preset.LowGain",
                    "modeResources": {
                      "friendlyNames": [
                        {
                          "@type": "text",
                          "value": {
                            "text": "Low Gain",
                            "locale": "en-US"
                          }
                        }
                      ]
                    }
                  },
                  {
                    "value": " Preset.LeadBoost",
                    "modeResources": {
                      "friendlyNames": [
                        {
                          "@type": "text",
                          "value": {
                            "text": "Lead Boost",
                            "locale": "en-US"
                          }
                        }
                      ]
                    }
                  },
                  {
                    "value": " Preset.Metal",
                    "modeResources": {
                      "friendlyNames": [
                        {
                          "@type": "text",
                          "value": {
                            "text": "Metal",
                            "locale": "en-US"
                          }
                        }
                      ]
                    }
                  }
                ]
              }
            },
            {
              "type": "AlexaInterface",
              "interface": "Alexa.EndpointHealth",
              "version": "3",
              "properties": {
                "supported": [
                  {
                    "name": "connectivity"
                  }
                ],
                "proactivelyReported": true,
                "retrievable": true
              }
            },
            {
              "type": "AlexaInterface",
              "interface": "Alexa",
              "version": "3"
            }
          ]
        }
      ]
    }
  }
}

ユーザー確認を求めるサーモスタットの例

以下は、サーモスタットを制御するAlexaスキルでのDiscover.Responseイベントの例です。このスキルは、PowerControllerインターフェースを使用してサーモスタットのオン/オフを切り替え、ThermostatControllerインターフェースを使用して温度とモードを制御します。

このスキルでは、Alexaがアクションを実行する前にユーザーの確認を求めます。そのため、Discover.Responseには、ユーザー確認をサポートするインターフェースごとにverificationsRequiredオブジェクトが含まれています。詳細については、verificationsRequiredオブジェクトを参照してください。

クリップボードにコピーされました。

{
  "event": {
    "header": {
      "namespace": "Alexa.Discovery",
      "name": "Discover.Response",
      "payloadVersion": "3",
      "messageId": "<メッセージID>"
    },
    "payload": {
      "endpoints": [
        {
          "endpointId": "<エンドポイントの一意のID>",
          "friendlyName": "廊下のサーモスタット",
          "description": "サーモスタットメーカー製のスマートサーモスタット",
          "manufacturerName": "Sample Manufacturer",
          "displayCategories": ["THERMOSTAT", "TEMPERATURE_SENSOR"],
          "cookie": {},
          "capabilities": [
            {
              "type": "AlexaInterface",
              "interface": "Alexa.ThermostatController",
              "version": "3",
              "properties": {
                "supported": [
                  {
                    "name": "targetSetpoint"
                  },
                  {
                    "name": "thermostatMode"
                  }
                ],
                "proactivelyReported": true,
                "retrievable": true
              },
              "configuration": {
                "supportedModes": ["OFF", "COOL"],
                "supportsScheduling": false
              },
              "verificationsRequired": [
                {
                  "directive": "SetTargetTemperature",
                  "methods": [
                    {
                      "@type": "Confirmation"
                    }
                  ]
                },
                {
                  "directive": "SetThermostatMode",
                  "methods": [
                    {
                      "@type": "Confirmation"
                    }
                  ]
                }
              ]
            },
            {
              "type": "AlexaInterface",
              "interface": "Alexa.PowerController",
              "version": "3",
              "properties": {
                "supported": [
                  {
                    "name": "powerState"
                  }
                ],
                "proactivelyReported": true,
                "retrievable": true
              },
              "verificationsRequired": [
                {
                  "directive": "TurnOn",
                  "methods": [
                    {
                      "@type": "Confirmation"
                    }
                  ]
                },
                {
                  "directive": "TurnOff",
                  "methods": [
                    {
                      "@type": "Confirmation"
                    }
                  ]
                }
              ]
            },
            {
              "type": "AlexaInterface",
              "interface": "Alexa",
              "version": "3"
            }
          ]
        }
      ]
    }
  }
}

ビデオデバイスの例

以下は、ビデオデバイスを制御するAlexaスキルでのDiscover.Responseイベントの例です。

クリップボードにコピーされました。

{
  "event": {
    "header": {
      "namespace": "Alexa.Discovery",
      "name": "Discover.Response",
      "payloadVersion": "3",
      "messageId": "<メッセージID>"
    },
    "payload": {
      "endpoints": [
        {
          "endpointId": "<エンドポイントの一意のID>",
          "manufacturerName": "<エンドポイントのメーカー名>",
          "description": "<Alexaアプリに表示される説明>",
          "friendlyName": "上の階のビデオプレイヤー",
          "displayCategories": ["OTHER"],
          "capabilities": [
            {
              "interface": "Alexa.RemoteVideoPlayer",
              "type": "AlexaInterface",
              "version": "1.0"
            },
            {
              "interface": "Alexa.ChannelController",
              "type": "AlexaInterface",
              "version": "3"
            },
            {
              "interface": "Alexa.PlaybackController ",
              "type": "AlexaInterface",
              "version": "3",
              "supportedOperations": ["Play", "Pause", "Stop"]
            },
            {
              "interface": "Alexa.VideoRecorder",
              "type": "AlexaInterface",
              "version": "1.0"
            },
            {
              "interface": "Alexa.Launcher",
              "type": "AlexaInterface",
              "version": "1.0"
            },
            {
              "type": "AlexaInterface",
              "interface": "Alexa",
              "version": "3"
            }
          ]
        }
      ]
    }
  }
}

給湯器の例

以下は、給湯器で説明されている給湯器を制御するAlexaスキルでのDiscover.Responseイベントの例です。

この例ではToggleControllerインターフェースを使用してAlexa Hunches(日本未対応)をサポートします。Alexa Hunchesの詳細については、What Are Alexa Hunches?およびEnable Alexa to Proactively Act on Hunches Without Customers Needing to Askを参照してください。

この例ではまた、DeviceUsage.Meterインターフェースを使用して、ユーザーがAlexaエネルギーダッシュボードでエネルギー使用量を管理できるようにもしています。詳細については、Smart Home Energy Overviewを参照してください。

クリップボードにコピーされました。

{
  "event":{
    "header":{
      "namespace": "Alexa.Discovery",
      "name": "Discover.Response",
      "payloadVersion": "3",
      "messageId": "<メッセージID>"
    },
    "payload": {
      "endpoints": [
        {
          "endpointId": "<エンドポイントの一意のID>",
          "manufacturerName": "<エンドポイントのメーカー名>",
          "description": "<Alexaアプリに表示される説明>",
          "friendlyName": "Water Heater",
          "displayCategories": ["WATER_HEATER"],
          "cookie": {},
          "capabilities": [

            {
              "type": "AlexaInterface",
              "interface": "Alexa.ToggleController",
              "version": "3",
              "instance": "EnergySaverMode",
              "capabilityResources": {
                "friendlyNames": [
                  {
                    "@type": "text",
                    "value": {
                      "text": "Energy saver mode",
                      "locale": "en-US"
                    }
                  }
                ]
              },
              "properties": {
                "supported": [
                  {
                    "name": "toggleState"
                  }
                ],
                "proactivelyReported": true,
                "retrievable": true,
              },
              "semantics": {
                "actionMappings": [
                  {
                    "@type": "ActionsToDirective",
                    "actions": ["Alexa.Actions.SetEcoOff"],
                    "directive": {
                      "name": "TurnOff",
                      "payload": {}
                    }
                  },
                  {
                    "@type": "ActionsToDirective",
                    "actions": ["Alexa.Actions.SetEcoOn"],
                    "directive": {
                      "name": "TurnOn",
                      "payload": {}
                    }
                  }
                ],
                "stateMappings": [
                  {
                    "@type": "StatesToValue",
                    "states": ["Alexa.States.EcoOff"],
                    "value": "OFF"
                  },
                  {
                    "@type": "StatesToValue",
                    "states": ["Alexa.States.EcoOn"],
                    "value": "ON"
                  }  
                ]
              }
            },
            {
              "type": "AlexaInterface",
              "interface": "Alexa.DeviceUsage.Meter",
              "version": "1.0",
              "configurations": {
                "energySources": {
                  "electricity": {
                    "unit": "MILLIWATT_HOUR",
                    "measuringMethod": "ESTIMATED",
                    "defaultResolution": 3600
                  }
                }
              }
            },
            {
              "type": "AlexaInterface",
              "interface": "Alexa.PowerController",
              "version": "3",
              "properties": {
                "supported": [
                  {
                    "name": "powerState"
                  }
                ],
                "proactivelyReported": true,
                "retrievable": true
              }
            },
            {
              "type": "AlexaInterface",
              "interface": "Alexa.EndpointHealth",
              "version": "3",
              "properties": {
                "supported": [
                  {
                    "name": "connectivity"
                  }
                ],
                "proactivelyReported": true,
                "retrievable": true
              }
            },
            {
              "type": "AlexaInterface",
              "interface": "Alexa",
              "version": "3"
            }
          ]
        }
      ]
    }
  }
}

Wi-Fiルーターの例

以下は、Wi-Fiルーターで説明されているWi-Fiルーターを制御するAlexaスキルでのDiscover.Responseイベントの例です。特定のデバイスのニーズに合う場合は、Alexa.Networking API(日本未対応)を使用することもできます。詳細については、ネットワークとWi-Fiのスキルについてを参照してください。

この例では、ユーザーがより自由な言葉でAlexaに話しかけられるように、フレンドリー名を指定します。詳細については、フレンドリー名のリソースとアセットを参照してください。

クリップボードにコピーされました。

{
  "event": {
    "header": {
      "namespace": "Alexa.Discovery",
      "name": "Discover.Response",
      "payloadVersion": "3",
      "messageId": "<メッセージID>"
    },
    "payload": {
      "endpoints": [
        {
          "endpointId": "<エンドポイントの一意のID>",
          "friendlyName": "Wireless Router",
          "description": "Wi-Fi Router by Sample Manufacturer",
          "manufacturerName": "Sample Manufacturer",
          "displayCategories": ["OTHER"],
          "cookie": {},
          "capabilities": [
            {
              "type": "AlexaInterface",
              "interface": "Alexa.ToggleController",
              "version": "3",
              "instance": "SampleManufacturer.Router.GuestNetwork",
              "capabilityResources": {
                "friendlyNames": [
                  {
                    "@type": "asset",
                    "value": {
                      "assetId": "Alexa.Setting.GuestWiFi"
                    }
                  },
                  {
                    "@type": "text",
                    "value": {
                      "text": "Guest",
                      "locale": "en-US"
                    }
                  },
                  {
                    "@type": "text",
                    "value": {
                      "text": "Guest access",
                      "locale": "en-US"
                    }
                  }
                ]
              },
              "properties": {
                "supported": [
                  {
                    "name": "toggleState"
                  }
                ],
                "proactivelyReported": true,
                "retrievable": true,
              }
            },
            {
              "type": "AlexaInterface",
              "interface": "Alexa.ModeController",
              "version": "3",
              "instance": "SampleManufacturer.Router.Modes",
              "capabilityResources": {
                "friendlyNames": [
                  {
                    "@type": "text",
                    "value": {
                      "text": "Traffic Priority",
                      "locale": "en-US"
                    }
                  }
                ]
              },
              "properties": {
                "supported": [
                  {
                    "name": "mode"
                  }
                ],
                "proactivelyReported": false,
                "retrievable": false
              },
              "configuration": {
                "ordered": false,
                "supportedModes": [
                  {
                    "value": "SampleManufacturer.Router.Normal",
                    "modeResources": {
                      "friendlyNames": [
                        {
                          "@type": "text",
                          "value": {
                            "text": "Normal",
                            "locale": "en-US"
                          }
                        },
                        {
                          "@type": "text",
                          "value": {
                            "text": "Regular",
                            "locale": "en-US"
                          }
                        }
                      ]
                    }
                  },
                  {
                    "value": "SampleManufacturer.Router.Gaming",
                    "modeResources": {
                      "friendlyNames": [
                        {
                          "@type": "text",
                          "value": {
                            "text": "Gaming",
                            "locale": "en-US"
                          }
                        },
                        {
                          "@type": "text",
                          "value": {
                            "text": "Video Games",
                            "locale": "en-US"
                          }
                        }
                      ]
                    }
                  },
                  {
                    "value": "SampleManufacturer.Router.Video",
                    "modeResources": {
                      "friendlyNames": [
                        {
                          "@type": "text",
                          "value": {
                            "text": "Video",
                            "locale": "en-US"
                          }
                        },
                        {
                          "@type": "text",
                          "value": {
                            "text": "Movies",
                            "locale": "en-US"
                          }
                        }
                      ]
                    }
                  }
                ]
              }
            },
            {
              "type": "AlexaInterface",
              "interface": "Alexa.EndpointHealth",
              "version": "3",
              "properties": {
                "supported": [
                  {
                    "name": "connectivity"
                  }
                ],
                "proactivelyReported": true,
                "retrievable": true
              }
            },
            {
              "type": "AlexaInterface",
              "interface": "Alexa",
              "version": "3"
            }
          ]
        }
      ]
    }
  }
}