Termostat

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:

CechaOpisPolecenia
ŁącznośćTa cecha należy do każdego urządzenia z informacjami o połączeniach.
FanTa 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.
InformacjeTa cecha należy do każdego urządzenia w przypadku informacji związanych z urządzeniem.
UstawieniaTa cecha należy do każdego urządzenia w przypadku informacji o ustawieniach związanych z urządzeniem.
TemperaturaTa cecha należy do każdego urządzenia z czujnikiem do pomiaru temperatury.
ThermostatEcoTa cecha należy do typów urządzeń Termostat, który obsługuje tryby ECO.SetMode
ThermostatHvacTa cecha należy do typów urządzeń Termostat, które mogą zgłaszać szczegóły dotyczące ogrzewania/wentylacji/klimatyzacji.
ThermostatModeTa cecha należy do typów urządzeń Termostat, które obsługują różne tryby termostatu.SetMode
ThermostatTemperatureSetpointTa 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:

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" : "0425a61d-a026-4608-8d8d-d76351d444a4",
  "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" : "24b17b95-a286-4471-901f-5bdd4a05be28",
  "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.