action.devices.SYNC

이 인텐트는 지정된 사용자와 연결된 기기 목록과 기기의 기능을 요청합니다.

계정 연결 중에 또는 사용자가 기기를 수동으로 다시 동기화할 때 트리거됩니다. 이행은 각 기기에 지원되는 특성과 속성으로 응답해야 합니다.

SYNC 응답은 사용자와 연결된 모든 기기를 반환해야 합니다. 특정 기기에 연결할 수 있는지 여부는 확인하지 않습니다. 이는 QUERYEXECUTE 응답에 의해 처리됩니다.

자세한 내용은 식별 및 동기화를 참고하세요.

요청 형식

필드 유형 설명
requestId String

필수사항.

요청 ID입니다.

inputs 배열

필수사항.

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

[item, ...] 객체

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

intent

필수사항.

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

인텐트 요청 유형입니다.

SYNC 인텐트 요청

{
  "requestId": "ff36a3cc-ec34-11e6-b1a0-64510650abcf",
  "inputs": [
    {
      "intent": "action.devices.SYNC"
    }
  ]
}

대답 형식

필드 유형 설명
requestId String

필수사항.

해당 요청의 ID입니다.

payload 객체

필수사항.

인텐트 응답 페이로드입니다.

agentUserId String

필수사항.

상담사 플랫폼의 고유한 (변경 불가능한) 사용자 ID를 반영합니다. 문자열은 Google에 불투명하므로 에이전트 측에 변경 불가능한 양식과 변경 가능한 양식이 있는 경우 변경 불가능한 양식 (예: 이메일이 아닌 계정 번호)을 사용하세요.

errorCode String

SYNC의 체계적인 오류

debugString String

사용자에게는 표시되지 않지만 개발 중에 로깅되거나 사용될 수 있는 자세한 오류입니다.

devices 배열

필수사항.

사용자가 소유한 기기 목록입니다. 0개 이상의 기기가 반환됩니다 (0개 기기는 사용자에게 기기가 없거나 모든 기기의 연결이 끊어졌음을 의미).

[item, ...] 객체

기기 메타데이터입니다.

id String

필수사항.

개발자 클라우드에 있는 기기의 ID입니다. 공유의 경우 동일한 기기의 여러 뷰를 중복 삭제하는 데 사용할 수 있으므로 사용자 및 개발자에게 고유해야 합니다. 기기에서 변경할 수 없어야 합니다. 변경되면 어시스턴트에서 새 기기로 취급합니다.

type String

필수사항.

기기의 하드웨어 유형입니다.

traits 배열

필수사항.

이 기기에 있는 특성 목록입니다. 이는 기기에서 지원하는 명령어, 속성, 상태를 정의합니다.

[item, ...] String

지원되는 특성의 이름입니다.

name 객체

필수사항.

이 기기의 이름입니다.

defaultNames 배열

사용자가 아닌 개발자가 제공한 이름 목록입니다. 제조업체 이름, SKU 등이 여기에 해당합니다.

[item, ...] String

기기 기본 이름입니다.

name String

필수사항.

기기의 기본 이름으로, 일반적으로 사용자가 제공합니다. 또한 어시스턴트가 응답에서 기기를 설명할 때 선호하는 이름입니다. 이름이 유니코드 코드 포인트 (문자) 한도인 60을 초과하면 잘리며 오류가 발생하지 않습니다. 긴 이름은 개발자가 처리해야 합니다.

nicknames 배열

사용자가 기기에 제공한 추가 이름입니다.

[item, ...] String

기기 닉네임입니다.

willReportState Boolean

필수사항.

이 기기의 상태가 실시간 피드에 의해 업데이트되는지 여부를 나타냅니다. (상태 보고에 실시간 피드를 사용하려면 true, 폴링 모델을 사용하려면 false)

notificationSupportedByAgent Boolean

(기본값: false)

기기에 알림이 사용 설정되어 있는지 여부를 나타냅니다.

roomHint String

설정을 간소화하기 위해 사용자 홈에 있는 기기의 현재 방을 제공합니다.

deviceInfo 객체

필요한 경우 일회성 논리에 사용되는 기기를 설명하는 필드가 포함됩니다 (예: '조명 Y의 깨진 펌웨어 버전 X에는 색상 조정이 필요함', '보안 결함으로 인해 펌웨어 Z의 모든 사용자에게 알림을 보내야 함').

manufacturer String

특히 개발자가 다른 기기의 허브인 경우에 유용합니다. Google은 TP-Link와 Smartthings가 모두 'osram'을 동일한 방식으로 설명할 수 있도록 여기에 표준 제조업체 목록을 제공할 수 있습니다.

model String

특정 기기의 모델 또는 SKU 식별자입니다.

hwVersion String

사용 가능한 경우 하드웨어에 연결된 특정 버전 번호입니다.

swVersion String

소프트웨어/펌웨어에 연결된 특정 버전 번호(있는 경우)입니다.

attributes 객체

각 특성 스키마 참조에 설명된 특성별 속성과 일치합니다.

customData 객체

개발자가 정의한 객체로, 향후 QUERY 및 EXECUTE 요청에 연결되며 기기당 최대 512바이트입니다. 이 객체를 사용하여 클라우드 서비스에 필요할 수 있는 기기에 관한 추가 정보(예: 기기의 전역 지역)를 저장합니다. 이 객체의 데이터에는 몇 가지 제약이 있습니다. 개인 식별 정보를 비롯한 민감한 정보가 포함되지 않습니다.

otherDeviceIds 배열

로컬 실행을 위해 클라우드 동기화 기기를 식별하는 데 사용되는 대체 ID 목록입니다.

[item, ...] 객체

대체 기기 ID입니다.

agentId String

상담사의 ID입니다. 일반적으로 Actions 콘솔의 프로젝트 ID입니다.

deviceId String

필수사항.

에이전트가 정의한 기기 ID입니다. 기기 ID는 고유해야 합니다.

SYNC 인텐트 응답

{
  "requestId": "ff36a3cc-ec34-11e6-b1a0-64510650abcf",
  "payload": {
    "agentUserId": "1836.15267389",
    "devices": [
      {
        "id": "123",
        "type": "action.devices.types.OUTLET",
        "traits": [
          "action.devices.traits.OnOff"
        ],
        "name": {
          "defaultNames": [
            "My Outlet 1234"
          ],
          "name": "Night light",
          "nicknames": [
            "wall plug"
          ]
        },
        "willReportState": false,
        "roomHint": "kitchen",
        "deviceInfo": {
          "manufacturer": "lights-out-inc",
          "model": "hs1234",
          "hwVersion": "3.2",
          "swVersion": "11.4"
        },
        "otherDeviceIds": [
          {
            "deviceId": "local-device-id"
          }
        ],
        "customData": {
          "fooValue": 74,
          "barValue": true,
          "bazValue": "foo"
        }
      },
      {
        "id": "456",
        "type": "action.devices.types.LIGHT",
        "traits": [
          "action.devices.traits.OnOff",
          "action.devices.traits.Brightness",
          "action.devices.traits.ColorSetting"
        ],
        "name": {
          "defaultNames": [
            "lights out inc. bulb A19 color hyperglow"
          ],
          "name": "lamp1",
          "nicknames": [
            "reading lamp"
          ]
        },
        "willReportState": false,
        "roomHint": "office",
        "attributes": {
          "colorModel": "rgb",
          "colorTemperatureRange": {
            "temperatureMinK": 2000,
            "temperatureMaxK": 9000
          },
          "commandOnlyColorSetting": false
        },
        "deviceInfo": {
          "manufacturer": "lights out inc.",
          "model": "hg11",
          "hwVersion": "1.2",
          "swVersion": "5.4"
        },
        "customData": {
          "fooValue": 12,
          "barValue": false,
          "bazValue": "bar"
        }
      }
    ]
  }
}