SDM API to interfejs REST API, który udostępnia różne metody wyświetlania cech i wykonywania poleceń cech w celu zarządzania urządzeniami Google Nest. W każdym wywołaniu interfejsu API używaj tokena dostępu przyznanego podczas procesu autoryzacji.
Cechy
SDM API używa modelu opartego na cechach do obsługi informacji i funkcji urządzenia. Sprawdź przewodniki dotyczące poszczególnych urządzeń, aby dowiedzieć się, jakie cechy są dostępne w danym urządzeniu:
- Aparat
- Aparat (bateria)
- Aparat z oświetleniem Floodlight
- Kamera (przewodowa)
- Wyświetlacz
- Dzwonek
- Dzwonek (bateria)
- Dzwonek przewodowy
- Termostat
Metody
Pełne informacje o wszystkich metodach dostępnych w SDM API znajdziesz w dokumentacji API.
executeCommand
Wykonuje polecenie na autoryzowanym urządzeniu.
Aby wykonać polecenie, użyj wywołania POST. 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 w 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 w strukturze lub urządzeniu, które zostało user autoryzowane, oraz obiekt `parentRelations`, który reprezentuje zasób nadrzędny
bieżącego zasobu – strukturę lub pokój.
Na przykład termostat Nest 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"
}
]
}list
Wyświetla listę autoryzowanych struktur, pokoi lub urządzeń.
Aby wyświetlić listę wszystkich struktur, pokoi lub urządzeń autoryzowanych za pomocą jednego tokena dostępu, wyślij wywołanie GET do odpowiedniego punktu końcowego 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 znać to urządzenie w Home Graph i będzie bezpośrednio zarządzać jego stanem. Jeśli masz integrację z Asystentem Google w ramach oferty komercyjnej:
- Nie wysyłaj próśb o synchronizację urządzeń SDM.
- Pomiń urządzenia SDM w odpowiedziach na intencję SYNC intent.
Błędy
Pełną listę kodów błędów interfejsu API znajdziesz w dokumencie API Error Code Reference kodów błędów interfejsu API.