Smart Device Management API

SDM API는 Google Nest 기기 관리를 위해 트레잇을 확인하고 trait 명령어를 실행하는 다양한 메서드를 제공하는 REST API입니다. 각 API를 호출할 때마다 승인 프로세스 중에 부여된 액세스 토큰을 사용합니다.

특성

SDM API는 기기 정보 및 기능에 특성 기반 모델을 사용합니다. 개별 기기 가이드에서 기기에 사용할 수 있는 트레잇을 확인하세요.

방법

SDM API에 사용할 수 있는 모든 메서드에 관한 자세한 내용은 API 참조를 확인하세요.

executeCommand

승인된 기기에 명령어를 실행합니다.

POST 호출을 사용하여 명령어를 실행합니다. 예를 들어 온도 조절기 모드를 변경하는 방법은 다음과 같습니다.

POST /enterprises/project-id/devices/device-id:executeCommand
{
  "command" : "sdm.devices.commands.ThermostatMode.SetMode",
  "params" : {
    "mode" : "HEAT"
  }
}

명령어의 추가 예는 각 개별 특성 참조 페이지에서 확인할 수 있습니다. 자세한 내용은 전체 트레잇 목록을 참고하세요.

get

승인된 구조 또는 기기에 관한 정보를 가져옵니다.

GET 호출은 user 가 승인한 구조나 기기에 사용 가능한 모든 특성의 현재 필드와 값이 포함된 단일 응답과 `parentRelations' 객체(구조 또는 방 중 현재 리소스의 상위 리소스를 나타내는)를 반환합니다.

예를 들어 Nest Thermostat은 다음을 반환할 수 있습니다.

GET /enterprises/project-id/devices/device-id
{
  "name" : "enterprises/project-id/devices/device-id",
  "type" : "sdm.devices.types.THERMOSTAT",
  "assignee" : "enterprises/project-id/structures/structure-id/rooms/room-id",
  "traits" : {
    "sdm.devices.traits.Connectivity" : {
      "status" : "ONLINE"
    },
    "sdm.devices.traits.Fan" : {
      "timerMode" : "ON",
      "timerTimeout" : "2019-05-10T03:22:54Z"
    },
    "sdm.devices.traits.Humidity" : {
      "ambientHumidityPercent" : 35.0
    },
    "sdm.devices.traits.Info" : {
      "customName" : "My device"
    },
    "sdm.devices.traits.Settings" : {
      "temperatureScale" : "CELSIUS"
    },
    "sdm.devices.traits.Temperature" : {
      "ambientTemperatureCelsius" : 23.0
    },
    "sdm.devices.traits.ThermostatEco" : {
      "availableModes" : ["MANUAL_ECO", "OFF"],
      "mode" : "MANUAL_ECO",
      "heatCelsius" : 20.0,
      "coolCelsius" : 22.0
    },
    "sdm.devices.traits.ThermostatHvac" : {
      "status" : "HEATING"
    },
    "sdm.devices.traits.ThermostatMode" : {
      "availableModes" : ["HEAT", "COOL", "HEATCOOL", "OFF"],
      "mode" : "COOL"
    },
    "sdm.devices.traits.ThermostatTemperatureSetpoint" : {
      "heatCelsius" : 20.0,
      "coolCelsius" : 22.0
    }
  },
  "parentRelations" : [
    {
      "parent" : "enterprises/project-id/structures/structure-id/rooms/room-id",
      "displayName" : "Lobby"
    }
  ]
}

list

승인된 구조, 방 또는 기기를 나열합니다.

단일 액세스 토큰으로 승인된 모든 구조, 방 또는 기기를 나열하려면 적절한 리소스 엔드포인트에 대해 GET 호출을 수행합니다.

GET /enterprises/project-id/structures
GET /enterprises/project-id/structures/structure-id/rooms
GET /enterprises/project-id/devices

Google 어시스턴트 통합

기기에 SDM이 승인되면 Google은 홈 그래프에서 기기를 인식하고 상태를 직접 관리합니다. 상용 서비스의 일부로 Google 어시스턴트를 통합하는 경우:

오류

API 오류 코드의 전체 목록은 API 오류 코드 참조를 확인하세요.