action.devices.EXECUTE

이 인텐트는 스마트 홈 기기에서 실행할 명령어를 전송합니다.

처리는 각 명령어를 처리하고 상응하는 기기로 전송하며 EXECUTE 응답에서 새 상태를 반환해야 합니다.

단일 EXECUTE 인텐트는 여러 명령어로 여러 기기를 타겟팅할 수 있습니다. 예를 들어 트리거된 인텐트는 조명 세트의 밝기와 색상을 모두 설정하거나 여러 조명을 각각 다른 색상으로 설정할 수 있습니다.

자세한 내용은 쿼리 및 실행을 참고하세요.

요청 형식

필드 유형 설명
requestId String

필수사항.

요청의 ID입니다.

inputs 배열

필수사항.

인텐트 요청과 일치하는 입력 목록입니다.

[item, ...] 객체

인텐트 요청과 연결된 유형 및 페이로드입니다.

intent

필수사항.

(상수 값: "action.devices.EXECUTE")

인텐트 요청 유형입니다.

payload 객체

필수사항.

요청 페이로드 실행

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 배열

각 객체에는 응답 세부정보가 포함된 기기가 하나 이상 포함됩니다. 참고: 요청과 동일한 방식으로 그룹화되지 않을 수 있습니다. 예를 들어 요청으로 인해 조명 7개가 켜지는데 조명 3개는 성공하고 4개는 실패하여 응답에 그룹 2개가 포함될 수 있습니다.

[item, ...] 객체

기기 실행 결과입니다.

ids 배열

필수사항.

이 상태에 해당하는 기기 ID 목록입니다.

[item, ...] String

기기 ID

status String

필수사항.

실행 작업의 결과입니다.

지원되는 값:

SUCCESS
명령어가 성공했는지 확인합니다.
PENDING
명령어가 큐에 추가되었지만 성공할 것으로 예상됩니다.
OFFLINE
타겟 기기가 오프라인 상태이거나 연결할 수 없습니다.
EXCEPTIONS
명령어와 관련된 문제 또는 알림이 있습니다. 명령어는 성공하거나 실패할 수 있습니다. 이 상태 유형은 일반적으로 다른 연결된 기기에 관한 추가 정보를 전송하려는 경우에 설정됩니다.
ERROR
대상 기기에서 명령어를 실행할 수 없습니다.
states 객체

각 트레잇 스키마 참조에 설명된 트레잇별 상태와 일치합니다. 실행 후 상태입니다(제공되는 경우).

online Boolean

기기가 온라인 (연결 가능) 상태인지 여부를 나타냅니다.

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"
      }
    ]
  }
}