Alle Google Nest Thermostate Modelle werden in die Smart Device Management (SDM) API. Diese Geräte geben den THERMOSTAT zurück. Gerätetyp:
sdm.devices.types.THERMOSTAT
Eigenschaften
Referenz
Die folgenden Traits, Befehle oder Ereignisse beziehen sich auf diese Gruppe:
Eigenschaft | Beschreibung | Befehle |
---|---|---|
Konnektivität | Dieser Trait gehört zu jedem Gerät, das über Verbindungsinformationen verfügt. | |
Fan | Diese Eigenschaft gehört zu jedem Gerät, das über ein System zur Steuerung des Lüfters verfügt. | SetTimer |
Luftfeuchtigkeit | Diese Eigenschaft gehört zu jedem Gerät, das über einen Sensor zur Messung der Luftfeuchtigkeit verfügt. | |
Informationen | Dieser Trait gehört zu jedem Gerät, auf dem gerätebezogene Informationen verfügbar sind. | |
Einstellungen | Dieser Trait gehört zu jedem Gerät, auf dem gerätebezogene Einstellungsinformationen verfügbar sind. | |
Temperatur | Diese Eigenschaft gehört zu jedem Gerät, das einen Sensor zur Temperaturmessung hat. | |
ThermostatEco | Diese Eigenschaft gehört zu den Gerätetypen von THERMOSTAT, die ECO-Modi unterstützen. | SetMode |
ThermostatHvac | Diese Eigenschaft gehört zu den Gerätetypen von THERMOSTAT, die Details zum HLK-System melden können. | |
ThermostatMode | Diese Eigenschaft gehört zu den Gerätetypen von THERMOSTAT, die verschiedene Thermostatmodi unterstützen. | SetMode |
ThermostatTemperatureSetpoint | Diese Eigenschaft gehört zu den Gerätetypen von THERMOSTAT, die das Einstellen von Zieltemperatur und Temperaturbereich unterstützen. | SetHeat SetCool SetRange |
JSON
Das Fehlen eines Merkmals in einer GET-Antwort weist darauf hin, dass das Merkmal oder ist für das Gerät derzeit nicht verfügbar. Weitere Informationen finden Sie unter Weitere Informationen zu Gerätetypen Informationen.
{ "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 } } }
Temperatur und Luftfeuchtigkeit
Wenn du die Umgebungstemperatur des Thermostats ablesen möchtest, verwende Temperatur aus. Ambient Temperatur wird am Gerät gemessen.
Die Luftfeuchtigkeit des Thermostats kannst du mit dem Luftfeuchtigkeit . Ambient Die Luftfeuchtigkeit wird am Gerät gemessen.
Temperaturskala
Der Google Nest Thermostat kann die Temperatur in Grad Celsius oder Fahrenheit, aber die Skalierung kann nicht von der SDM API festgelegt werden. Um festzustellen, Temperaturskala derzeit vom Nutzer eingestellt ist, verwenden Sie Einstellungen .
Modus ändern
Der Modus des Thermostats wird durch zwei verschiedene Eigenschaften verwaltet: ThermostatMode and ThermostatEco.
Standardmodi
Verwende den Befehl SetMode der Trait „ThermostatMode“, um den Modus des Thermostats in HEIZEN, KÜHLEN oder HEIZEN zu ändern.
Dieser Befehl kann auch verwendet werden, um den Modus des Thermostats auszuschalten. Es kann nicht verwendet werden, um im Eco-Modus.So ändern Sie beispielsweise einen der Standard-Thermostatmodi:
Anfrage
POST /enterprises/project-id/devices/device-id:executeCommand
{
"command" : "sdm.devices.commands.ThermostatMode.SetMode
",
"params" : {
"mode" : "HEAT"
}
}
Antwort
{}
Eco-Modus
Um den Eco-Modus zu aktivieren, verwenden Sie MANUAL_ECO als Modus mit den SetMode der Eigenschaft „ThermostatEco“:
Anfrage
POST /enterprises/project-id/devices/device-id:executeCommand
{
"command" : "sdm.devices.commands.ThermostatEco.SetMode
",
"params" : {
"mode" : "MANUAL_ECO"
}
}
Antwort
{}
Dieser Befehl wirkt sich je nach aktuellem Status oder Änderungen am Eco-Modus auf andere Merkmale aus:
- Wenn der Eco-Modus AUS ist, wird standardmäßig der letzte aktive Standardmodus (HEIZEN, KÜHLEN, HEIZEN oder AUS) verwendet.
- Wenn der Eco-Modus MANUAL_ECO ist:
- Befehle für das Merkmal ThermostatTemperatureSetpoint werden abgelehnt.
- Vom Trait ThermostatTemperatureSetpoint werden keine Temperatursollwerte zurückgegeben.
Temperatursollwerte ändern
Temperatursollwerte können nur geändert werden, wenn sich der Thermostat in Modi „HEIZEN“, „KÜHLEN“ oder „HEIZENKÜHLEN“ und Die zulässigen Sollwerte entsprechen dem aktuellen Modus des Thermostats. Temperatur Sollwerte können nicht geändert werden, wenn der Modus ausgeschaltet ist oder der Modus Der Eco-Modus ist auf MANUAL_ECO eingestellt.
Der Thermostat muss sich in dem Modus befinden, der dem aufgerufenen Befehl entspricht, bevor Sie den Thermostat ändern. die Temperatursollwerte. Der Befehl und die Felder zum Ändern der Sollwerte variieren je nach Thermostat .
Um beispielsweise die SetHeat muss sich der Thermostat zuerst im Heizmodus befinden:
Modus | Befehl | Feld(er) |
---|---|---|
HEIZUNG | SetHeat | heatCelsius |
KÜHLEN | SetCool | coolCelsius |
HEIZKÜHLEN | SetRange | heatCelsius , coolCelsius |
Beachten Sie, dass die Sollwertbefehle als Parameter nur Grad in Celsius angeben. Der Parameter Der Google Nest Thermostat kann die Temperatur entweder in Grad Celsius oder Fahrenheit anzeigen.
Um den Temperatursollwert zu ändern, wenn sich der Thermostat in im Heizmodus verwenden, SetHeat des Attributs „ThermostatTemperatureSetpoint“:
Anfrage
POST /enterprises/project-id/devices/device-id:executeCommand
{
"command" : "sdm.devices.commands.ThermostatTemperatureSetpoint.SetHeat
",
"params" : {
"heatCelsius" : 22.0
}
}
Antwort
{}
Sollwerte im Eco-Modus
Die Sollwerte heatCelsius
und coolCelsius
, die vom
Die Trait „ThermostatEco“ werden vom Nutzer festgelegt.
können nicht über die SDM API geändert werden.
Lüfter ein- oder ausschalten
Wenn der Thermostat einen Lüfter unterstützt, können Sie ihn mit dem Befehl SetTimer der Eigenschaft „Lüfter“ ein- oder ausschalten. Beim Einschalten kannst du festlegen, wie lange der Lüfter laufen soll, in Sekunden.
So lässt sich der Lüfter beispielsweise eine Stunde lang laufen:
Anfrage
POST /enterprises/project-id/devices/device-id:executeCommand
{
"command" : "sdm.devices.commands.Fan.SetTimer
",
"params" : {
"timerMode" : "ON",
"duration" : "3600s"
}
}
Antwort
{}
Wenn das Feld „duration
“ weggelassen wird, läuft der Lüfter standardmäßig auf 15 Minuten
Minuten.
Geräteverbindung prüfen
Wenn das Gerät nicht auf Befehle reagiert oder keine Ereignisse sendet oder Sie gerätebezogene Fehler von der API erhalten, verwenden Sie Konnektivität , um die Verbindung des Geräts für einen OFFLINE-Status Überprüfe den und stellen Sie sicher, dass das Nest-Gerät Dienst ist ausgefallen.
Wenn Ereignisse aktiviert sind, sollten Sie auch ein Ressourcenereignis erhalten haben. gibt an, dass das Gerät offline ist:
Nutzlast
{
"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"
]
}
Auf Geräteereignisse reagieren
Jede Änderung an einem Trait-Feld generiert ein Ereignis.
Sie würden zum Beispiel
folgendes resourceUpdate
-Ereignis, wenn das HLK-System des Thermostats
Status geändert in HEATING:
Nutzlast
{
"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"
]
}
Ereignisse werden für alle Traits ausgelöst, die mit diesem Gerätetyp verknüpft sind. Aktivieren Ereignisse, wenn Sie reagieren müssen im Rahmen der Integration irgendwie mit ihnen teilen.
Zeitpunkt von Ereignissen
Beachte, dass ein Ereignis für eine Änderung des HLK-Status möglicherweise nicht gleichzeitig mit einem Ereignis gesendet wird. um eine Änderung des Thermostatmodus zu erhalten.
Manchmal gibt es zum Beispiel a Verzögerung beim Starten des Heiz- oder Kühlmodus eines Thermostats, um das HLK-System zu schützen. System. In diesem Szenario werden beim Ändern des Thermostatmodus möglicherweise nur Ereignisse für ThermostatMode and ThermostatTemperatureSetpoint Trait-Änderungen mit dem Wert Eigenschaftsänderung ThermostatHvac , die später als separater Link gesendet wird wenn das System eingeschaltet wird. Wenn es keine Verzögerung beim Einschalten des HLK-Systems gab, werden drei Ereignisse gleichzeitig gesendet.
Fehler
In Bezug auf dieses Gerät können folgende Fehlercodes zurückgegeben werden:
Fehlermeldung | RPC | Fehlerbehebung |
---|---|---|
Der Kühlwert muss größer als der Heizwert sein. | INVALID_ARGUMENT |
Achten Sie darauf, dass das Feld heatCelsius in Ihrem Befehl kleiner ist als das Feld coolCelsius . |
Dieser Befehl ist im aktuellen Thermostatmodus nicht zulässig. | FAILED_PRECONDITION |
Laut der Eigenschaft Thermostatmodus kann bei einigen Thermostatmodellen der Eco-Modus nicht geändert werden, wenn der Thermostatmodus ausgeschaltet ist. Der Modus des Thermostats muss vor dem Ändern des Eco-Modus in HEIZEN, KÜHLEN oder HEIZEN geändert werden. |
Lüfter des Thermostats nicht verfügbar. | FAILED_PRECONDITION |
Der Thermostat hat keine Lüfterfunktion. Lüfterbezogene Traits und Befehle können für dieses Gerät nicht verwendet werden. |
Befehl nicht zulässig, wenn sich der Thermostat im MANUAL_ECO-Modus befindet. | FAILED_PRECONDITION |
Der Temperatursollwert kann nicht festgelegt werden, wenn sich der Thermostat im manuellen Eco-Modus befindet. |
In der API-Fehlercode-Referenz können Sie nachlesen, die vollständige Liste der API-Fehlercodes.