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:
- Aparat
- Aparat (bateria)
- Kamera z Floodlight
- Kamera (przewodowa)
- Wyświetlacz
- Dzwonek
- Dzwonek (na baterie)
- Dzwonek (przewodowy)
- Termostat
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:
- Nie wysyłaj żądań synchronizacji w przypadku urządzeń SDM
- Pomijanie urządzeń SDM w odpowiedziach na intencję SYNC
Błędy
Pełną listę kodów błędów interfejsu API znajdziesz w dokumentacji kodów błędów interfejsu API.