action.devices.EXECUTE

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

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

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

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

リクエスト フォーマット

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

必須。

リクエストの ID。

inputs 配列

必須。

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

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

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

intent

必須。

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

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

payload オブジェクト

必須。

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

commands 配列

必須。

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

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

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

devices 配列

必須。

対象デバイスのリスト。

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

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

id String

必須。

デバイス ID(SYNC で指定された 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 状態を、必要に応じて、プリセットのエラーコードから拡張します。ユーザーに表示されるエラーに対応付けられます。

debugString String

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

EXECUTE インテント レスポンス

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