Termostat

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:

CechaOpisPolecenia
ŁącznośćTa cecha należy do każdego urządzenia, które ma informacje o połączeniach.
FanTa 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.
InformacjeTa cecha należy do każdego urządzenia, aby uzyskać informacje związane z tym urządzeniem.
UstawieniaTa cecha jest powiązana z informacjami o ustawieniach każdego urządzenia.
TemperaturaTa cecha należy do każdego urządzenia z czujnikiem do pomiaru temperatury.
ThermostatEcoTa cecha należy do typów urządzeń TERMOSTATU, które obsługują tryby ECO.SetMode
ThermostatHvacTa cecha należy do typów urządzeń TERMOSTATU, które mogą raportować szczegóły dotyczące ogrzewania/wentylacji/klimatyzacji.
ThermostatModeTa cecha należy do typów urządzeń TERMOSTATU, które obsługują różne tryby termostatu.SetMode
ThermostatTemperatureSetpointTa 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:

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" : "b7705246-9224-46af-b5f2-b2af8437cd0e",
  "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" : "849df9a2-9a28-452e-9b34-5490fc93d88b",
  "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.