Thermostat

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:

EigenschaftBeschreibungBefehle
KonnektivitätDieser Trait gehört zu jedem Gerät, das über Verbindungsinformationen verfügt.
FanDiese Eigenschaft gehört zu jedem Gerät, das über ein System zur Steuerung des Lüfters verfügt.SetTimer
LuftfeuchtigkeitDiese Eigenschaft gehört zu jedem Gerät, das über einen Sensor zur Messung der Luftfeuchtigkeit verfügt.
InformationenDieser Trait gehört zu jedem Gerät, auf dem gerätebezogene Informationen verfügbar sind.
EinstellungenDieser Trait gehört zu jedem Gerät, auf dem gerätebezogene Einstellungsinformationen verfügbar sind.
TemperaturDiese Eigenschaft gehört zu jedem Gerät, das einen Sensor zur Temperaturmessung hat.
ThermostatEcoDiese Eigenschaft gehört zu den Gerätetypen von THERMOSTAT, die ECO-Modi unterstützen.SetMode
ThermostatHvacDiese Eigenschaft gehört zu den Gerätetypen von THERMOSTAT, die Details zum HLK-System melden können.
ThermostatModeDiese Eigenschaft gehört zu den Gerätetypen von THERMOSTAT, die verschiedene Thermostatmodi unterstützen.SetMode
ThermostatTemperatureSetpointDiese 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:

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" : "e9fc64cf-84d9-46ae-b305-e4435a5ed06d",
  "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" : "77fe1905-dc6f-457a-abcd-6e5230deab28",
  "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.