action.devices.EXECUTE

このインテントは、スマートホーム デバイスで実行するコマンドを送信します。

フルフィルメントでは、各コマンドを処理して対応するデバイスに送信し、コマンドを返す必要があります。 EXECUTE レスポンスの新しい状態。

1 つの EXECUTE インテントで複数のコマンドを使用して、複数のデバイスをターゲットにできます。 たとえば、トリガーされたインテントで、明るさと色の両方を 複数のライトをそれぞれ異なる色に設定したりできます。

詳細については、クエリと実行をご覧ください。

リクエストの形式

フィールド タイプ 説明
requestId String

必須。

リクエストの ID。

inputs 配列

必須。

インテント リクエストに一致する入力のリスト。

[item, ...] オブジェクト

インテント リクエストに関連付けられているタイプとペイロード。

intent

必須。

(定数値: "action.devices.EXECUTE"

インテントのリクエスト タイプ。

payload オブジェクト

必須。

EXECUTE リクエスト ペイロード。

commands 配列

必須。

デバイス ターゲットとコマンドのペアのリスト。

[item, ...] オブジェクト

接続されたデバイス ターゲットで実行するコマンドのセット。

devices 配列

必須。

対象デバイスのリスト。

[item, ...] オブジェクト

実行するデバイス ターゲット。

id String

必須。

SYNC で提供される ID に基づくデバイス ID。

customData オブジェクト

不透明な customData オブジェクトが SYNC で提供される場合は、ここで送信されます。

execution 配列

必須。

対象デバイスで実行するコマンドのリスト。

[item, ...] オブジェクト

デバイス コマンド。

command String

必須。

実行するコマンド。通常、パラメータを伴います。

params オブジェクト

各コマンドのパラメータと一致します。

EXECUTE インテント リクエスト

{
  "requestId": "ff36a3cc-ec34-11e6-b1a0-64510650abcf",
  "inputs": [
    {
      "intent": "action.devices.EXECUTE",
      "payload": {
        "commands": [
          {
            "devices": [
              {
                "id": "123",
                "customData": {
                  "fooValue": 74,
                  "barValue": true,
                  "bazValue": "sheepdip"
                }
              },
              {
                "id": "456",
                "customData": {
                  "fooValue": 36,
                  "barValue": false,
                  "bazValue": "moarsheep"
                }
              }
            ],
            "execution": [
              {
                "command": "action.devices.commands.OnOff",
                "params": {
                  "on": true
                }
              }
            ]
          }
        ]
      }
    }
  ]
}

レスポンスの形式

フィールド タイプ 説明
requestId String

必須。

対応するリクエストの ID。

payload オブジェクト

必須。

インテント レスポンス ペイロード。

errorCode String

認証の失敗やデベロッパー システムが利用できなくなった場合のトランザクション全体のエラーコード。個々のデバイスエラーについては、デバイス オブジェクト内の errorCode を使用してください。

debugString String

エラーの詳細。ユーザーには表示されませんが、開発中にログに記録または使用される可能性があります。

commands 配列

各オブジェクトには、1 つ以上のデバイスとレスポンスの詳細が含まれます。注意: リクエストと同じ形ではグループ化されない可能性があります。たとえば、このリクエストで 7 個のライトが点灯し、3 個のライトが成功、4 個が失敗すると、レスポンスには 2 つのグループが含まれることになります。

[item, ...] オブジェクト

デバイスの実行結果。

ids 配列

必須。

このステータスに対応するデバイス ID のリスト。

[item, ...] String

デバイス ID。

status String

必須。

実行オペレーションの結果。

サポートされている値:

SUCCESS
コマンドが成功したことを確認します。
PENDING
コマンドがキューに追加されましたが、成功すると想定されています。
OFFLINE
ターゲット デバイスがオフライン状態であるか、到達できません。
EXCEPTIONS
コマンドに関連する問題またはアラートがあります。コマンドは成功することも失敗することもあります。通常、このステータス タイプは、接続されている別のデバイスに関する追加情報を送信する場合に設定されます。
ERROR
対象デバイスでコマンドを実行できません。
states オブジェクト

各トレイト スキーマ リファレンスに記載されているトレイトごとの状態に合わせる。実行後のステータスです(利用可能な場合)。

online ブール値

デバイスがオンライン(つまり到達可能)かどうかを示します。

errorCode String

ERROR 状態を、必要に応じて、プリセットのエラーコードから拡張します。ユーザーに表示されるエラーに対応付けられます。

EXECUTE インテント レスポンス

{
  "requestId": "ff36a3cc-ec34-11e6-b1a0-64510650abcf",
  "payload": {
    "commands": [
      {
        "ids": [
          "123"
        ],
        "status": "SUCCESS",
        "states": {
          "on": true,
          "online": true
        }
      },
      {
        "ids": [
          "456"
        ],
        "status": "ERROR",
        "errorCode": "deviceTurnedOff"
      }
    ]
  }
}