
Wszystkie modele Google Nest Thermostat są obsługiwane w interfejsie Smart Device Management (SDM) API. Te urządzenia zwracają typ urządzenia THERMOSTAT:
sdm.devices.types.THERMOSTAT
Cechy
Dokumentacja
Z tą grupą są powiązane te cechy, polecenia i zdarzenia:
Cechy | Opis | Polecenia |
---|---|---|
Połączenia | Ten stan należy do każdego urządzenia, które ma informacje o łączności. | |
Fan | Ta cecha dotyczy każdego urządzenia, które ma możliwość sterowania wentylatorem. | SetTimer |
Wilgotność | Ta cecha dotyczy każdego urządzenia, które ma czujnik do pomiaru wilgotności. | |
Informacje | Ten atrybut należy do każdego urządzenia i zawiera informacje dotyczące urządzenia. | |
Ustawienia | Ten atrybut należy do każdego urządzenia i zawiera informacje o ustawieniach urządzenia. | |
Temperatura | Ta cecha należy do każdego urządzenia, które ma czujnik do pomiaru temperatury. | |
ThermostatEco | Ten atrybut należy do typów urządzeń THERMOSTAT, które obsługują tryby ECO. | SetMode |
ThermostatHvac | Ten atrybut należy do typów urządzeń THERMOSTAT, które mogą zgłaszać szczegóły HVAC. | |
ThermostatMode | Ten atrybut należy do typów urządzeń THERMOSTAT, które obsługują różne tryby termostatu. | SetMode |
ThermostatTemperatureSetpoint | Ten atrybut należy do typów urządzeń THERMOSTAT, które obsługują ustawianie temperatury docelowej i zakresu temperatur. | SetHeat SetCool SetRange |
JSON
Brak cechy w odpowiedzi GET oznacza, że cecha lub funkcja nie jest obecnie dostępna na urządzeniu. Więcej informacji znajdziesz w sekcji Typy urządzeń.
{ "type" : "sdm.devices.types.THERMOSTAT", "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 } } }
Temperatura i wilgotność
Aby odczytać temperaturę otoczenia termostatu, użyj cechyTemperature . Temperatura otoczenia jest mierzona na urządzeniu.
Aby odczytać wilgotność otoczenia termostatu, użyj cechyHumidity . Wilgotność otoczenia jest mierzona na urządzeniu.
Skala temperatury
Termostat Google Nest może wyświetlać temperaturę w stopniach Celsjusza lub Fahrenheita, ale skali nie można ustawić za pomocą interfejsu SDM API. Aby określić skalę temperatury ustawioną obecnie przez użytkownika, użyj cechySettings .
Zmiana trybu
Tryb termostatu jest zarządzany przez 2 różne cechy:ThermostatMode iThermostatEco.
Tryby standardowe
Aby zmienić tryb termostatu na HEAT, COOL lub HEATCOOL, użyj polecenia SetMode cechy ThermostatMode.
Tego polecenia można też użyć do wyłączenia termostatu. Nie można go użyć do włączenia trybu Eko.Aby na przykład zmienić jeden ze standardowych trybów termostatu:
Żądanie
POST /enterprises/project-id/devices/device-id:executeCommand
{
"command" : "sdm.devices.commands.ThermostatMode.SetMode
",
"params" : {
"mode" : "HEAT"
}
}
Odpowiedź
{}
Tryb Eco
Aby włączyć tryb Eko, użyj trybu MANUAL_ECO z poleceniem SetMode cechy ThermostatEco:
Żądanie
POST /enterprises/project-id/devices/device-id:executeCommand
{
"command" : "sdm.devices.commands.ThermostatEco.SetMode
",
"params" : {
"mode" : "MANUAL_ECO"
}
}
Odpowiedź
{}
To polecenie wpływa na inne cechy w zależności od bieżącego stanu trybu Eco lub zmian w nim:
- Jeśli tryb Eko jest WYŁĄCZONY, termostat domyślnie przełączy się na ostatni aktywny tryb standardowy (OGRZEWANIE, CHŁODZENIE, OGRZEWANIE/CHŁODZENIE lub WYŁĄCZONY).
- Jeśli tryb eko to MANUAL_ECO:
- Polecenia dotyczące cechy ThermostatTemperatureSetpoint są odrzucane.
- Ustawione temperatury nie są zwracane przez cechę ThermostatTemperatureSetpoint .
Zmienianie nastawy temperatury
Nastawę temperatury można zmienić tylko wtedy, gdy termostat jest w trybie OGRZEWANIE, CHŁODZENIE lub OGRZEWANIE/CHŁODZENIE, a dozwolone nastawy odpowiadają bieżącemu trybowi termostatu. Nie można zmieniać wartości zadanych temperatury, gdy tryb jest wyłączony lub gdy tryb ekonomiczny jest ustawiony na MANUAL_ECO.
Przed zmianą ustawień temperatury termostat musi być w trybie odpowiadającym wywoływanemu poleceniu. Polecenie i pola służące do zmiany nastawy zależą od trybu termostatu.
Aby na przykład wydać polecenie SetHeat , termostat musi najpierw być w trybie ogrzewania:
Tryb | Polecenie | Pola |
---|---|---|
HEAT | SetHeat | heatCelsius |
COOL | SetCool | coolCelsius |
HEATCOOL | SetRange | heatCelsius , coolCelsius |
Pamiętaj, że polecenia punktu nastawy przyjmują jako parametr tylko stopnie Celsjusza, chociaż termostat Google Nest może wyświetlać temperaturę w stopniach Celsjusza lub Fahrenheita.
Aby na przykład zmienić ustawienie temperatury, gdy termostat jest w trybie GRZANIE, użyj polecenia SetHeat cechy ThermostatTemperatureSetpoint:
Żądanie
POST /enterprises/project-id/devices/device-id:executeCommand
{
"command" : "sdm.devices.commands.ThermostatTemperatureSetpoint.SetHeat
",
"params" : {
"heatCelsius" : 22.0
}
}
Odpowiedź
{}
Wartości zadane trybu eko
Wartości zadane heatCelsius
i coolCelsius
zwracane przez cechę ThermostatEco są ustawiane przez użytkownika i nie można ich zmienić za pomocą interfejsu SDM API.
włączać i wyłączać wentylator,
Jeśli termostat obsługuje wentylator, użyj polecenia SetTimer cechy Wentylator, aby go włączyć lub wyłączyć. Podczas włączania możesz określić czas, przez jaki ma działać wentylator, w sekundach.
Aby na przykład włączyć wentylator na godzinę:
Żądanie
POST /enterprises/project-id/devices/device-id:executeCommand
{
"command" : "sdm.devices.commands.Fan.SetTimer
",
"params" : {
"timerMode" : "ON",
"duration" : "3600s"
}
}
Odpowiedź
{}
Jeśli pole duration
zostanie pominięte, wentylator będzie działać przez domyślny czas 15 minut.
Sprawdzanie połączenia urządzenia
Jeśli urządzenie nie odpowiada na polecenia lub nie wysyła zdarzeń albo otrzymujesz z interfejsu API błędy związane z urządzeniem, użyj cechyConnectivity , aby sprawdzić łączność urządzenia i określić, czy jest ono OFFLINE. Sprawdź połączenie urządzenia z internetem i upewnij się, że usługa Nest działa.
Jeśli masz włączone zdarzenia, powinno do Ciebie dotrzeć zdarzenie zasobu informujące, że urządzenie jest offline:
Ładunek
{
"eventId" : "c10c1ae5-2bf3-434b-a77f-42a2b94f689b",
"timestamp" : "2019-01-01T00:00:01Z",
"resourceUpdate" : {
"name" : "enterprises/project-id/devices/device-id",
"traits" : {
"sdm.devices.traits.Connectivity
" : {
"status" : "OFFLINE"
}
}
},
"userId": "AVPHwEuBfnPOnTqzVFT4IONX2Qqhu9EJ4ubO-bNnQ-yi",
"resourceGroup" : [
"enterprises/project-id/devices/device-id"
]
}
Reagowanie na zdarzenia dotyczące urządzenia
Każda zmiana w polu cechy generuje zdarzenie.
Jeśli na przykład stan HVAC termostatu zmieni się na HEATING, otrzymasz to zdarzenie resourceUpdate
:
Ładunek
{
"eventId" : "880ace18-f08a-4703-8d46-ddba8a7c9542",
"timestamp" : "2019-01-01T00:00:01Z",
"resourceUpdate" : {
"name" : "enterprises/project-id/devices/device-id",
"traits" : {
"sdm.devices.traits.ThermostatHvac
" : {
"status" : "HEATING"
}
}
},
"userId": "AVPHwEuBfnPOnTqzVFT4IONX2Qqhu9EJ4ubO-bNnQ-yi",
"resourceGroup" : [
"enterprises/project-id/devices/device-id"
]
}
Zdarzenia są wywoływane dla wszystkich cech powiązanych z tym typem urządzenia. Włącz zdarzenia, jeśli w ramach integracji chcesz na nie reagować.
Czas zdarzeń
Pamiętaj, że zdarzenie zmiany stanu HVAC może nie zostać dostarczone w tym samym czasie co zdarzenia zmiany trybu termostatu.
Na przykład czasami włączenie trybu ogrzewania lub chłodzenia termostatu jest opóźnione, aby chronić system ogrzewania, wentylacji i klimatyzacji. W takiej sytuacji zmiana trybu termostatu może początkowo wysyłać tylko zdarzenia dotyczące zmian cech ThermostatMode i ThermostatTemperatureSetpoint , a zmiana cechy ThermostatHvac będzie wysyłana później jako osobne zdarzenie, gdy system zostanie włączony. Jeśli nie było opóźnienia w łączeniu systemu ogrzewania/wentylacji/klimatyzacji, wszystkie 3 zdarzenia zostałyby wysłane w tym samym czasie.
Błędy
W przypadku tego urządzenia mogą być zwracane te kody błędów:
Komunikat o błędzie | RPC | Rozwiązywanie problemów |
---|---|---|
Wartość chłodzenia musi być większa niż wartość ogrzewania. | INVALID_ARGUMENT |
Upewnij się, że pole heatCelsius jest mniejsze niż pole coolCelsius w Twoim poleceniu. |
Polecenie jest niedozwolone w bieżącym trybie termostatu. | FAILED_PRECONDITION |
Niektóre modele termostatów nie obsługują zmiany trybu Eko, gdy termostat jest wyłączony, zgodnie z atrybutem ThermostatMode . Przed zmianą trybu Eko należy zmienić tryb termostatu na GRZANIE, CHŁODZENIE lub GRZANIE/CHŁODZENIE. |
Wentylator termostatu jest niedostępny. | FAILED_PRECONDITION |
Termostat nie ma funkcji wentylatora. W przypadku tego urządzenia nie można używać cech i poleceń związanych z wentylatorem. |
Polecenie jest niedozwolone, gdy termostat jest w trybie MANUAL_ECO. | FAILED_PRECONDITION |
Gdy termostat jest w ręcznym trybie eko, nie można ustawić temperatury docelowej. |
Pełną listę kodów błędów interfejsu API znajdziesz w dokumentacji kodów błędów interfejsu API.