![](https://developers.google.cn/nest/device-access/images/device-thermostat.png?authuser=6&hl=pl)
Wszystkie urządzenia Google Nest Thermostat modele są obsługiwane w za pomocą interfejsu Smart Device Management (SDM). Te urządzenia zwracają Termostat typ urządzenia:
sdm.devices.types.THERMOSTAT
Cechy
Dokumentacja
Z tą grupą są związane te cechy, polecenia lub zdarzenia:
Cecha | Opis | Polecenia |
---|---|---|
Łączność | Ta cecha należy do każdego urządzenia z informacjami o połączeniach. | |
Fan | Ta cecha należy do każdego urządzenia, które może sterować wentylatorem. | SetTimer |
Wilgotność | Ta cecha należy do każdego urządzenia z czujnikiem wilgotności. | |
Informacje | Ta cecha należy do każdego urządzenia w przypadku informacji związanych z urządzeniem. | |
Ustawienia | Ta cecha należy do każdego urządzenia w przypadku informacji o ustawieniach związanych z urządzeniem. | |
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ń Termostat, który obsługuje tryby ECO. | SetMode |
ThermostatHvac | Ta cecha należy do typów urządzeń Termostat, które mogą zgłaszać szczegóły dotyczące ogrzewania/wentylacji/klimatyzacji. | |
ThermostatMode | Ta cecha należy do typów urządzeń Termostat, które obsługują różne tryby termostatu. | SetMode |
ThermostatTemperatureSetpoint | Ta cecha należy do typów urządzeń Termostat, które obsługują ustawianie docelowej temperatury i zakresu temperatur. | SetHeat SetCool SetRange |
JSON
Brak danej cechy w odpowiedzi GET wskazuje, że funkcja nie jest obecnie dostępna dla tego urządzenia. Zobacz Więcej funkcji Typy urządzeń i informacjami o nich.
{ "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 na termostacie, użyj Temperatura cechy. Atmosfera jest mierzona na urządzeniu.
Aby odczytać wilgotność otoczenia na termostacie, użyj Cecha . Atmosfera wilgotność jest mierzona na urządzeniu.
Skala temperatury
Google Nest Thermostat może wyświetlać temperaturę w stopniach Celsjusza lub Stopnie Fahrenheita, ale nie można ustawić skali za pomocą interfejsu SDM API. Aby określić skali temperatury ustawionej aktualnie przez użytkownika, użyj Ustawienia cech.
Zmień tryb
Trybem termostatu zarządza 2 różne ustawienia: ThermostatMode and TermostatEco.
Tryby standardowe
Aby zmienić tryb termostatu na Ogrzewanie, Chłodzenie lub Ogrzewanie, użyj polecenia SetMode cechy termostatu.
Tego polecenia można też użyć , żeby wyłączyć termostat. Nie można go używać do włączania i wyłączania w trybie 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 eko
Aby włączyć tryb Eko, użyj trybu MANUAL_ECO jako trybu z Polecenie SetMode właściwości 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 obecnego stanu trybu Eko lub jego zmiany:
- Jeśli tryb Eko jest WYŁĄCZONY, termostat będzie domyślnie korzystać z ostatniego aktywnego trybu standardowego (Ogrzewanie, Chłodzenie, Ogrzewanie, Ogrzewanie, WYŁ.).
- Jeśli tryb Eko to MANUAL_ECO:
- Polecenia dotyczące cechy ThermostatTemperatureSetpoint są odrzucane.
- Nastawy temperatury nie są zwracane przez atrybut ThermostatTemperatureSetpoint .
Zmień nastawę temperatury
Nastawę temperatury można zmienić tylko wtedy, gdy termostat jest w trybie tryby OGRZEWANIE, CHŁODZENIE i HEATCOOL, dozwolone ustawienia odpowiadają bieżącemu trybowi termostatu. Temperatura nie można zmienić ustawionych punktów, gdy tryb jest WYŁĄCZONY lub gdy Tryb Eko jest ustawiony na MANUAL_ECO.
Termostat musi być w trybie odpowiadającym wywołaniu polecenia przed zmianą nastawa temperatury. Polecenie i pola służące do zmiany nastawy różnią się w zależności od termostatu i trybu uzyskiwania zgody.
Aby na przykład opublikować SetHeat termostat musi najpierw przejść w tryb Ogrzewanie:
Tryb | Polecenie | Pola |
---|---|---|
OGRZEWANIE | SetHeat | heatCelsius |
FAJNE | SetCool | coolCelsius |
OGRZEWANIE ALARMOWE | SetRange | heatCelsius , coolCelsius |
Pamiętaj, że polecenia dotyczące wartości ustawień przyjmują tylko stopnie w stopniach Celsjusza, chociaż Google Nest Thermostat może wyświetlać temperaturę w stopniach Celsjusza lub Fahrenheita.
Na przykład, żeby zmienić nastawę temperatury, gdy termostat jest w trybie trybu OGRZEWANIE, użyj Polecenie SetHeat właściwości ThermostatTemperatureSetpoint:
Żądanie
POST /enterprises/project-id/devices/device-id:executeCommand
{
"command" : "sdm.devices.commands.ThermostatTemperatureSetpoint.SetHeat
",
"params" : {
"heatCelsius" : 22.0
}
}
Odpowiedź
{}
Nastawy trybu eko
Punkty nastawy heatCelsius
i coolCelsius
zwrócone przez
Cechę ThermostatEco ustawia użytkownik.
nie można zmienić za pomocą interfejsu SDM API.
Włączanie i wyłączanie wentylatora
Jeśli termostat obsługuje wentylator, włącz lub wyłącz go za pomocą polecenia SetTimer w funkcji Wentylator. Gdy włączysz tę funkcję, możesz określić czas pracy wentylatora sek.
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 pominiesz pole duration
, wentylator będzie działać przez domyślny czas 15.
min.
Sprawdź połączenie z urządzeniem
Jeśli urządzenie nie reaguje na polecenia ani nie wysyła zdarzeń lub otrzymujesz błędów z interfejsu API dotyczących urządzenia, użyj Łączność do sprawdzenia, połączenia urządzenia w przypadku stanu OFFLINE. Sprawdź masz połączenie z internetem i upewnij się, że Nest Usługa działa.
Jeśli masz włączone wydarzenia, powinno też pojawić się zdarzenie dotyczące zasobu informujący, że urządzenie przeszło do trybu offline:
Ładunek
{
"eventId" : "f8c9a10e-db84-49f1-9c6f-246d3cfd3df3",
"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.
Na przykład:
następujące zdarzenie resourceUpdate
, jeśli termostat
stan zmienił się na OGRZEWANIE:
Ładunek
{
"eventId" : "c4359ca0-9a82-49e2-9e72-ee7918cdc14b",
"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 urządzeniem tego typu. Włącz zdarzeń, jeśli chcesz zareagować w ramach integracji.
Terminy zdarzeń
Pamiętaj, że zdarzenie związane ze zmianą stanu ogrzewania/wentylacji/klimatyzacji może nie zostać dostarczone w tym samym czasie co wydarzenia przy zmianie trybu termostatu.
Na przykład czasami a opóźnienie uruchomienia trybu ogrzewania lub chłodzenia termostatu w celu ochrony systemu ogrzewania/wentylacji/klimatyzacji systemu. W takiej sytuacji zmiana trybu termostatu może początkowo wysyłać zdarzenia tylko na ThermostatMode and ThermostatTemperatureSetpoint zmienia się wraz z Zmiana cechy urządzenia ThermostatHvac wysłana później jako osobna po włączeniu systemu. Jeśli nie wystąpiło opóźnienie przy włączeniu systemu ogrzewania/wentylacji/klimatyzacji, wszystkie wysyłane są trzy wydarzenia.
Błędy
W przypadku 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 niż wartość ogrzewania. | INVALID_ARGUMENT |
Upewnij się, że wartość w polu heatCelsius jest mniejsza niż wartość w polu coolCelsius w poleceniu. |
Polecenie jest niedozwolone w obecnym trybie termostatu. | FAILED_PRECONDITION |
Zgodnie z atrybutem ThermostatMode niektóre modele termostatów nie obsługują zmiany trybu Eko, gdy termostat jest wyłączony. Przed przejściem w tryb Eko należy zmienić tryb termostatu na Ogrzewanie, Chłodzenie lub Ogrzewanie. |
Wentylator termostatu jest niedostępny. | FAILED_PRECONDITION |
Termostat nie ma wentylatora. Na tym urządzeniu nie można używać cech ani poleceń związanych z fanami. |
Polecenie jest niedozwolone, gdy termostat w trybie MANUAL_ECO. | FAILED_PRECONDITION |
Nie można ustawić nastawy temperatury, gdy termostat jest w ręcznym trybie Eko. |
Zapoznaj się z informacjami na temat kodu błędu interfejsu API w przypadku: pełną listę kodów błędów interfejsu API.