action.devices.EXECUTE

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

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

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

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

요청 형식

필드 유형 설명
requestId String

필수사항.

요청의 ID입니다.

inputs 배열

필수사항.

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

[item, ...] 객체

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

intent

필수사항.

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

인텐트 요청 유형입니다.

payload 객체

필수사항.

EXECUTE 요청 페이로드를 실행합니다.

commands 배열

필수사항.

기기 타겟 및 명령어 쌍의 목록입니다.

[item, ...] 객체

연결된 기기 대상에서 실행할 명령어 집합입니다.

devices 배열

필수사항.

대상 기기 목록

[item, ...] 객체

실행할 기기 타겟입니다.

id String

필수사항.

기기 ID(SYNC에서 제공한 ID 기준)

customData 객체

불투명한 커스텀 데이터 객체가 SYNC에서 제공되면 여기로 전송됩니다.

execution 배열

필수사항.

대상 기기에서 실행할 명령어 목록입니다.

[item, ...] 객체

기기 명령어

command String

필수사항.

실행할 명령어(일반적으로 함께 제공되는 매개변수 포함)

params 객체

각 명령어의 매개변수와 일치합니다.

인텐트 요청 실행

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

각 객체에는 응답 세부정보가 있는 기기가 하나 이상 포함됩니다. N.B. 요청에서와 동일한 방식으로 그룹화할 수 없습니다. 예를 들어 요청이 조명 7개를 켜고 3개가 성공하고 4개가 실패하여 응답에 2개의 그룹이 있을 수 있습니다.

[item, ...] 객체

기기 실행 결과

ids 배열

필수사항.

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

[item, ...] String

기기 ID입니다.

status String

필수사항.

실행 작업의 결과입니다.

지원 값:

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

각 특성 스키마 참조에서 설명한 특성별 상태와 일치합니다. 가능한 경우 실행 후의 상태입니다.

online Boolean

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

errorCode String

미리 설정된 오류 코드에서 필요한 경우 오류 상태를 펼칩니다. 그러면 사용자에게 표시되는 오류에 매핑됩니다.

인텐트 응답 실행

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