Smart Device Management API

SDM API to interfejs API typu REST, który udostępnia różne metody wyświetlania cech i wykonywania poleceń dotyczących cech w celu zarządzania urządzeniami Google Nest. Używaj tokena dostępu przyznanego podczas procesu autoryzacji przy każdym wywołaniu interfejsu API.

Cechy

Interfejs SDM API używa modelu opartego na cechach do określania informacji o urządzeniu i jego funkcjonalności. Sprawdź przewodniki po poszczególnych urządzeniach, aby dowiedzieć się, jakie cechy są dostępne w przypadku danego urządzenia:

Metody

Pełne informacje o wszystkich metodach dostępnych w interfejsie SDM API znajdziesz w dokumentacji API.

executeCommand

Wykonywanie polecenia na autoryzowanym urządzeniu.

Użyj wywołania POST, aby wykonać polecenie. Aby na przykład zmienić tryb termostatu:

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

Więcej przykładów poleceń znajdziesz na stronach referencyjnych poszczególnych cech. Więcej informacji znajdziesz na pełnej liście cech.

get

Pobiera informacje o autoryzowanej strukturze lub urządzeniu.

Wywołanie GET zwraca pojedynczą odpowiedź z bieżącymi polami i wartościami wszystkich cech dostępnych dla struktury lub urządzenia, do których user ma uprawnienia, oraz obiekt „parentRelations”, który reprezentuje zasób nadrzędny bieżącego zasobu, czyli strukturę lub pomieszczenie.

Na przykład Nest Thermostat może zwrócić te informacje:

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

lista

Zawiera listę autoryzowanych struktur, pomieszczeń lub urządzeń.

Aby wyświetlić listę wszystkich struktur, pomieszczeń lub urządzeń autoryzowanych za pomocą jednego tokena dostępu, wywołaj GET w odpowiednim punkcie końcowym zasobu:

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

Integracje z Asystentem Google

Gdy urządzenie zostanie autoryzowane w SDM, Google będzie je rozpoznawać w Home Graph i zarządzać jego stanem bezpośrednio. Jeśli w ramach oferty komercyjnej masz integrację z Asystentem Google:

Błędy

Pełną listę kodów błędów interfejsu API znajdziesz w dokumentacji kodów błędów interfejsu API.