Alexa.WakeOnLANControllerインターフェース



Alexa.WakeOnLANControllerインターフェース

Wake-on-LAN(WoL)またはWake on Wireless LAN(WoWLAN)による電源オンをサポートしているスマートホームデバイスエンドポイントでAlexa.WakeOnLANControllerインターフェースを使用します。このインターフェースは、PowerControllerインターフェースを使用して電源をオンにできるエンドポイントに便利です。低電力モードにすることで、クラウドがインターネットを使用してエンドポイントに到達しないようにできるためです。これを使用することで、サポートしているAlexaデバイスは、ローカルネットワークでエンドポイントに直接Wake-on-LANメッセージを送信します。

WakeOnLANControllerインターフェースでサポートされているロケールについては、機能インターフェースの一覧を参照してください。

発話

Alexa.WakeOnLANControllerインターフェースを使用する場合、音声対話モデルは既にビルドされています。以下に、ユーザーの発話の例を示します。

Alexa, turn on the TV.

アレクサ、テレビをつけて。

ユーザーがこのような発話をしたら、Alexaがそれに対応するディレクティブをスキルに送信します。

概要

このインターフェースは、Alexa.PowerControllerインターフェースと共に実装します。通常のプロセスは以下のとおりです。

  1. 検出中に、エンドポイントのWakeOnLANControllerインターフェースとPowerControllerインターフェースを定義する応答を行いまず。WakeOnLANControllerのconfigurationオブジェクトには、エンドポイントのMACアドレスを指定します。
  2. ユーザーがAlexaにWakeOnLANControllerを実装したエンドポイントをオンにするようリクエストします。例:

ユーザー: アレクサ、テレビをつけて

  1. Alexaは、TurnOnディレクティブ(PowerControllerインターフェースで定義)をスキルに送信します。
  2. スキルは、メッセージがイベントゲートウェイに送信され、応答が遅れることを表すDeferredResponseイベントを送信します。
  3. スキルはWakeUpイベントをAlexaイベントゲートウェイに送信します。このイベントはTurnOnディレクティブの後、Responseイベントの送信までの間、いつでも送信されます。イベントのイベントゲートウェイへの送信の詳細については、以下を参照してください。

  4. AlexaはWakeUpイベントを処理し、サポートしているデバイスのいずれかにWake-on-LAN(WoL)メッセージをエンドポイントの検出応答で提供されたMACアドレスに配信するよう指示します。
  5. スキルがAlexaイベントゲートウェイから(WakeUpイベントの応答として)成功またはエラー応答を受け取ると、ResponseイベントをAlexaイベントゲートウェイに送信します。応答の詳細については、PowerControllerドキュメントの応答を参照してください。
  6. スキルはエンドポイントを監視し、電源状態が変化すると、Alexaイベントゲートウェイにchange reportイベントを送信します。

DeferredResponseイベント(ステップ4)とResponseイベント(ステップ7)には、どちらも元のTurnOnリクエスト(ステップ3)の相関トークンを含める必要があります。

サポートしているAlexaデバイス

Wake-on-LAN機能をサポートしているAlexaデバイスは以下のとおりです。Wake-on-LANでエンドポイントの電源を正常に入れられるようにするには、Wake-on-LANをサポートしているエンドポイントと同じローカルネットワークに接続しているデバイスのいずれかを、ユーザーが持っている必要があります。

  • Amazon Tap(日本未対応)
  • Echo(全世代)
  • Echo Dot(全世代)
  • Echo Input
  • Echo Plus(全世代)
  • Echo Show(全世代)
  • Echo Spot

検出

WakeOnLANControllerを実装するエンドポイントを指定する検出応答を送信する場合、次の例のようにエンドポイントのMACアドレスを指定する必要があります。

次の例の検出応答では、WakeOnLANControllerインターフェースを実装するエンドポイントのMACアドレスの指定方法を示しています。

{
  "event": {
    "header": {
      "namespace": "Alexa.Discovery",
      "name": "Discover.Response",
      "payloadVersion": "3",
      "messageId": "5f8a426e-01e4-4cc9-8b79-65f8bd0fd8a4"
    },
    "payload": {
      "endpoints": [
        {
          "endpointId": "appliance-tv-001",
          "friendlyName": "リビングのテレビ",
          "description": "サンプルメーカーのスマートテレビ",
          "manufacturerName": "サンプルメーカー",
          "displayCategories": [
            "TV"
          ],
          "cookie": {
            "extraDetail1": "optionalDetailForSkillAdapterToReferenceThisDevice",
            "extraDetail2": "複数のエントリーがある場合があります",
            "extraDetail3": "ただし、参照のためだけに使用してください",
            "extraDetail4": "現在のデバイス状態を維持するのに適切な場所ではありません"
          },
          "capabilities": [
            {
              "type": "AlexaInterface",
              "interface": "Alexa.WakeOnLANController",
              "version": "3",
              "properties": {},
              "configuration": {
                "MACAddresses": [
                  "00-14-22-01-23-45"
                ]
              }
            },
            {
              "type": "AlexaInterface",
              "interface": "Alexa.PowerController",
              "version": "3",
              "properties": {
                "supported": [
                  {
                    "name": "powerState"
                  }
                ],
                "proactivelyReported": true,
                "retrievable": true
              }
            }
          ]
        }
      ]
    }
  }
}

ディレクティブ

TurnOnディレクティブ

ユーザーがデバイスをオンにできるように、TurnOnディレクティブをサポートします。TurnOnディレクティブは、Alexa.PowerControllerインターフェースで定義されています。詳細については、TurnOnディレクティブを参照してください。

プロパティとイベント

プロパティ

現在、このインターフェースに定義されているレポート可能なプロパティはありません。

WakeUp

スキルは、低電力モードでWake-on-LAN機能をサポートするエンドポイントのTurnOnディレクティブを受信すると、WakeUpイベントをAlexaイベントゲートウェイに送信します。詳細については、イベントゲートウェイにイベントを送信するを参照してください。Alexaはこのイベントを処理し、サポートしているデバイスのいずれかにWake-on-LAN(WoL)メッセージをエンドポイントの検出応答で提供されたMACアドレスに配信するよう指示します。

WakeUpイベントの例

{
  "context": {
    "properties": [
      {
        "namespace": "Alexa.PowerController",
        "name": "powerState",
        "value": "OFF",
        "timeOfSample": "2017-02-03T16:20:50.52Z",
        "uncertaintyInMilliseconds": 500
      }
    ]
  },
  "event": {
    "header": {
      "namespace": "Alexa.WakeOnLANController",
      "name": "WakeUp",
      "payloadVersion": "3",
      "messageId": "5f8a426e-01e4-4cc9-8b79-65f8bd0fd8a4",
      "correlationToken": "dFMb0z+PgpgdDmluhJ1LddFvSqZ/jCc8ptlAKulUj90jSqg=="
    },
    "endpoint": {
      "scope": {
        "type": "BearerToken",
        "token": "access-token-from-Amazon"
      },
      "endpointId": "appliance-001"
    },
    "payload": {}
  }
}

ErrorResponse

何らかの理由によりユーザーのリクエストを完了できない場合、エラー応答を返す必要があります。詳細については、Alexa.ErrorResponseを参照してください。