Wszystkie modele urządzeń Google Nest Thermostat są obsługiwane przez interfejs Smart Device Management (SDM). Te urządzenia zwracają typ urządzenia TERMOSTAT:
sdm.devices.types.THERMOSTAT
Cechy
Dokumentacja
Z tą grupą są powiązane te cechy, polecenia lub zdarzenia:
Cecha | Opis | Polecenia |
---|---|---|
Łączność | Ta cecha należy do każdego urządzenia, które ma informacje o połączeniach. | |
Fan | Ta cecha należy do każdego urządzenia, które ma możliwość sterowania wentylatorem. | SetTimer |
Wilgotność | Ta cecha należy do każdego urządzenia z czujnikiem do pomiaru wilgotności. | |
Informacje | Ta cecha należy do każdego urządzenia, aby uzyskać informacje związane z tym urządzeniem. | |
Ustawienia | Ta cecha jest powiązana z informacjami o ustawieniach każdego urządzenia. | |
Temperatura | Ta cecha należy do każdego urządzenia z czujnikiem do pomiaru temperatury. | |
ThermostatEco | Ta cecha należy do typów urządzeń TERMOSTATU, które obsługują tryby ECO. | SetMode |
ThermostatHvac | Ta cecha należy do typów urządzeń TERMOSTATU, które mogą raportować szczegóły dotyczące ogrzewania/wentylacji/klimatyzacji. | |
ThermostatMode | Ta cecha należy do typów urządzeń TERMOSTATU, które obsługują różne tryby termostatu. | SetMode |
ThermostatTemperatureSetpoint | Ta cecha należy do typów urządzeń TERMOSTATU, które obsługują ustawianie docelowej temperatury i zakresu temperatur. | SetHeat SetCool SetRange |
JSON
Brak cechy w odpowiedzi GET oznacza, że są one obecnie niedostępne dla danego urządzenia. 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 cechyTemperatura . Temperatura otoczenia jest mierzona na urządzeniu.
Aby odczytać wilgotność otoczenia na termostacie, użyj cechy Wilgotność . Wilgotność otoczenia jest mierzona na urządzeniu.
Skala temperatury
Google Nest Thermostat 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 cechyUstawienia .
Zmień tryb
Trybem termostatu zarządza 2 cechy: ThermostatMode i ThermostatEco.
Tryby standardowe
Aby zmienić tryb termostatu na OGRZEWANIE, CHŁODZENIE lub OGRZEWANIE, użyj polecenia SetMode dotyczącego cechy ThermostatMode.
To polecenie może też posłużyć do wyłączenia trybu termostatu. Nie możesz za jego pomocą włączyć trybu eko.Aby na przykład zmienić jeden ze standardowych trybów termostatu:
Prośba
POST /enterprises/project-id/devices/device-id:executeCommand
{
"command" : "sdm.devices.commands.ThermostatMode.SetMode
",
"params" : {
"mode" : "HEAT"
}
}
Odpowiedź
{}
Tryb eko
Aby włączyć tryb eko, wybierz tryb MANUAL_ECO i polecenie SetMode związane z cechą ThermostatEko:
Prośba
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 aktualnego stanu trybu Eko lub jego zmian:
- Gdy tryb eko jest wyłączony, termostat domyślnie przełącza się na ostatni aktywny tryb standardowy (OGRZEWANIE, CHŁODZENIE, OGRZEWANIE lub WYŁ.).
- Jeśli tryb eko ma wartość RĘCZNIE_ECO:
- Polecenia dotyczące cechy ThermostatTemperatureSetpoint zostały odrzucone.
- Nastawy temperatury nie są zwracane przez cechę ThermostatTemperatureSetpoint .
Zmień nastawy temperatury
Nastawy temperatury można zmieniać tylko wtedy, gdy termostat jest w trybach OGRZEWANIE, CHŁODZENIE lub OGRZEWANIE, a dozwolone nastawy odpowiadają bieżącemu trybowi termostatu. Nie można zmienić nastawy temperatury, gdy tryb jest wyłączony lub gdy tryb eko jest ustawiony na MANUAL_ECO.
Zanim zmienisz nastawę temperatury, termostat musi być w trybie odpowiadającym wywołanym poleceniu. Polecenie i pola do zmiany nastawy różnią się w zależności od trybu termostatu.
Aby na przykład uruchomić polecenie SetHeat, termostat musi najpierw być w trybie ogrzewania:
Tryb | Polecenie | Pola |
---|---|---|
OGRZEWANIE | SetHeat | heatCelsius |
FAJNY | SetCool | coolCelsius |
OGRZEWANIE | SetRange | heatCelsius , coolCelsius |
Pamiętaj, że w poleceniach nastawiona jest tylko wartość stopni Celsjusza, ale Google Nest Thermostat może wyświetlać temperaturę w stopniach Celsjusza lub Fahrenheita.
Jeśli na przykład chcesz zmienić nastawę temperatury, gdy termostat jest w trybie Ogrzewania, użyj polecenia SetHeat w ramach cechy ThermostatTemperatureSetpoint:
Prośba
POST /enterprises/project-id/devices/device-id:executeCommand
{
"command" : "sdm.devices.commands.ThermostatTemperatureSetpoint.SetHeat
",
"params" : {
"heatCelsius" : 22.0
}
}
Odpowiedź
{}
Ustawienia trybu eko
Punkty ustawienia heatCelsius
i coolCelsius
zwracane przez cechę ThermostatEco są ustawiane przez użytkownika i nie można ich zmienić za pomocą interfejsu SDM API.
Włączanie i wyłączanie wentylatora
Jeśli termostat obsługuje wentylator, włącz lub wyłącz wentylator na podstawie polecenia SetTimer.
Aby na przykład włączyć wentylator na godzinę:
Prośba
POST /enterprises/project-id/devices/device-id:executeCommand
{
"command" : "sdm.devices.commands.Fan.SetTimer
",
"params" : {
"timerMode" : "ON",
"duration" : "3600s"
}
}
Odpowiedź
{}
Jeśli pominiesz pole duration
, wentylator będzie działać przez domyślny czas 15 minut.
Sprawdź łączność urządzenia
Jeśli urządzenie nie odpowiada na polecenia lub wysyła zdarzenia albo otrzymujesz błędy z interfejsu API związane z urządzeniem, skorzystaj z funkcjiŁączność , aby sprawdzić połączenie urządzenia pod kątem stanu OFFLINE. Sprawdź połączenie urządzenia z internetem i upewnij się, że Nest Service działa.
Jeśli masz włączone zdarzenia, powinno też pojawić się zdarzenie dotyczące zasobu wskazujące, że urządzenie przeszło do trybu offline:
Ładunek
{
"eventId" : "44067e47-07f4-4263-bf2e-d612dbed4cca",
"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 powoduje wygenerowanie zdarzenia.
Jeśli na przykład stan ogrzewania/wentylacji/klimatyzacji termostatu zmieni się na OGRZEWANIE, otrzymasz na przykład to zdarzenie resourceUpdate
:
Ładunek
{
"eventId" : "9aa4624d-a48f-4c41-bc51-3b714f59a6d2",
"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 w przypadku wszystkich cech powiązanych z tym typem urządzenia. Włącz zdarzenia, jeśli musisz na nie w jakiś sposób zareagować w ramach integracji.
Czas zdarzeń
Pamiętaj, że zdarzenie zmiany stanu ogrzewania/wentylacji/klimatyzacji może nie być dostarczane jednocześnie ze zdarzeniami dotyczącymi zmiany trybu termostatu.
Czasami na przykład ze względu na ochronę systemu ogrzewania/wentylacji/klimatyzacji występuje opóźnienie w uruchamianiu termostatu w trybie ogrzewania lub chłodzenia. W tym scenariuszu zmiana trybu termostatu może początkowo wysyłać tylko zdarzenia ThermostatMode i ThermostatTemperatureSetpoint , przy czym funkcja ThermostatHvac{20 włącza się później jako osobne zdarzenie. Jeśli nie wystąpiło opóźnienie podczas włączania systemu ogrzewania/wentylacji/klimatyzacji, wszystkie 3 zdarzenia będą wysyłane jednocześnie.
Błędy
W odniesieniu do tego urządzenia mogą zostać zwrócone następujące kody błędów:
Komunikat o błędzie | RPC | Rozwiązywanie problemów |
---|---|---|
Wartość chłodzenia musi być większa od wartości ciepła. | INVALID_ARGUMENT |
Upewnij się, że pole heatCelsius jest mniejsze niż pole coolCelsius w poleceniu. |
Polecenie jest niedozwolone w obecnym trybie termostatu. | FAILED_PRECONDITION |
Zgodnie z cechą ThermostatMode niektóre modele termostatów nie obsługują zmiany trybu eko, gdy tryb termostatu jest WYŁĄCZONY. Przed zmianą trybu Eko musisz zmienić tryb termostatu na HEAT, COOL lub HEATCOOL. |
Wentylator termostatu jest niedostępny. | FAILED_PRECONDITION |
Termostat nie ma funkcji wentylatora. Na tym urządzeniu nie można używać cech ani poleceń związanych z fanami. |
Polecenie jest niedozwolone, gdy termostat jest w trybie MANUAL_ECO. | FAILED_PRECONDITION |
Nie można ustawić nastawy temperatury, gdy termostat jest w ręcznym trybie Eko. |
Pełną listę kodów błędów interfejsu API znajdziesz w dokumentacji błędów interfejsu API.