その他の検出応答の例
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"
}
]
}
]
}
}
}
ユーザー確認を求めるサーモスタットの例
ja-JP
ロケールでのみサポートされています。以下は、サーモスタットを制御する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"
}
]
}
]
}
}
}