Smart-Home-Thermostat
action.devices.types.THERMOSTAT – Thermostate sind Geräte zur Temperaturregelung mit Sollwerten und Modi. Das unterscheidet sie von Heizungen und Klimaanlagen, die möglicherweise nur Modi und Einstellungen (z. B. „Hoch“/„Niedrig“) haben, aber kein Temperaturziel.
Dieser Typ gibt an, dass das Gerät das Thermostatsymbol und einige zugehörige Synonyme und Aliasse erhält.
Geräte dieses Typs steuern die Temperatur, während einige Heiz-/Kühlgeräte unterschiedliche Steuerelemente und Hoch-/Tiefmodi, aber keine Temperaturregelung haben.Gerätefunktionen
In der entsprechenden Dokumentation zu Merkmalen finden Sie Implementierungsdetails wie Attribute und Status, die Ihr Dienst unterstützen sollte, sowie Informationen zum Erstellen von EXECUTE- und QUERY-Antworten.
Erforderliche Merkmale
Diese Merkmale und Befehle sind erforderlich, sofern sie für Ihr Gerät gelten. Wenn Ihr Gerät diese Eigenschaften nicht unterstützt, geben Sie den Fehlercode functionNotSupported in einer QUERY- oder EXECUTE-Antwort ein. Weitere Informationen finden Sie unter Fehler und Ausnahmen.
Thermostatbefehle werden häufig in EXECUTE-Intents verkettet. Wenn ein Nutzer sagt: „Stelle die Heizung auf 22 Grad“, wird ein Befehl für den Modus gefolgt von einer Temperatureinstellung generiert.
Qualitätsanforderungen
- Latenz:muss kleiner als oder gleich 700 ms sein.
- Zuverlässigkeit:muss mindestens 97% betragen.
Beispielgerät: Einfacher Thermostat
Dieser Abschnitt enthält Beispielnutzlasten für Intents, die einen gängigen „Thermostat“ basierend auf den oben genannten Gerätetypen und -merkmalen darstellen. Wenn Sie in Ihrer Implementierung Merkmale hinzufügen oder entfernen, ändern Sie Ihre Antworten entsprechend, um diese Änderungen widerzuspiegeln.
Beispiel für eine SYNC-Antwort
{
"requestId": "6894439706274654512",
"inputs": [
{
"intent": "action.devices.SYNC"
}
]
}{ "requestId": "6894439706274654512", "payload": { "agentUserId": "user123", "devices": [ { "id": "123", "type": "action.devices.types.THERMOSTAT", "traits": [ "action.devices.traits.TemperatureSetting" ], "name": { "name": "Simple thermostat" }, "willReportState": true, "attributes": { "availableThermostatModes": [ "off", "heat", "cool", "heatcool", "on" ], "thermostatTemperatureRange": { "minThresholdCelsius": 15, "maxThresholdCelsius": 30 }, "thermostatTemperatureUnit": "F" }, "deviceInfo": { "manufacturer": "smart-home-inc", "model": "hs1234", "hwVersion": "3.2", "swVersion": "11.4" } } ] } }
Beispiel für eine QUERY-Antwort
{ "requestId": "6894439706274654514", "inputs": [ { "intent": "action.devices.QUERY", "payload": { "devices": [ { "id": "123" } ] } } ] }
{ "requestId": "6894439706274654514", "payload": { "devices": { "123": { "status": "SUCCESS", "online": true, "thermostatMode": "cool", "thermostatTemperatureSetpoint": 23, "thermostatTemperatureAmbient": 25.1, "thermostatHumidityAmbient": 45.3 } } } }
Beispielbefehle für EXECUTE
ThermostatTemperatureSetpoint
Weitere Informationen zu den Befehlsparametern finden Sie in der
action.devices.traits.TemperatureSetting-Referenz.
{ "requestId": "6894439706274654516", "inputs": [ { "intent": "action.devices.EXECUTE", "payload": { "commands": [ { "devices": [ { "id": "123" } ], "execution": [ { "command": "action.devices.commands.ThermostatTemperatureSetpoint", "params": { "thermostatTemperatureSetpoint": 22 } } ] } ] } } ] }
{ "requestId": "6894439706274654516", "payload": { "commands": [ { "ids": [ "123" ], "status": "SUCCESS", "states": { "online": true, "thermostatMode": "cool", "thermostatTemperatureSetpoint": 22, "thermostatTemperatureAmbient": 25.1 } } ] } }
ThermostatTemperatureSetRange
Weitere Informationen zu den Befehlsparametern finden Sie in der
action.devices.traits.TemperatureSetting-Referenz.
{ "requestId": "6894439706274654518", "inputs": [ { "intent": "action.devices.EXECUTE", "payload": { "commands": [ { "devices": [ { "id": "123" } ], "execution": [ { "command": "action.devices.commands.ThermostatTemperatureSetRange", "params": { "thermostatTemperatureSetpointHigh": 26, "thermostatTemperatureSetpointLow": 22 } } ] } ] } } ] }
{ "requestId": "6894439706274654518", "payload": { "commands": [ { "ids": [ "123" ], "status": "SUCCESS", "states": { "online": true, "thermostatMode": "heatcool", "thermostatTemperatureSetpointHigh": 26, "thermostatTemperatureSetpointLow": 22, "thermostatTemperatureAmbient": 25.1 } } ] } }
ThermostatSetMode
Weitere Informationen zu den Befehlsparametern finden Sie in der
action.devices.traits.TemperatureSetting-Referenz.
{ "requestId": "6894439706274654520", "inputs": [ { "intent": "action.devices.EXECUTE", "payload": { "commands": [ { "devices": [ { "id": "123" } ], "execution": [ { "command": "action.devices.commands.ThermostatSetMode", "params": { "thermostatMode": "heatcool" } } ] } ] } } ] }
{ "requestId": "6894439706274654520", "payload": { "commands": [ { "ids": [ "123" ], "status": "SUCCESS", "states": { "online": true, "thermostatMode": "heatcool", "thermostatTemperatureSetpointHigh": 26, "thermostatTemperatureSetpointLow": 22, "thermostatTemperatureAmbient": 25.1 } } ] } }
GERÄTEFEHLER
Eine vollständige Liste der Fehler und AusnahmeninHeatOrCool– Die Befehle „Heizen“, „Kühlen“ und „Bereich“ sind fehlgeschlagen, da sich das Gerät im Modus „Heizen“ oder „Kühlen“ befindet.inHeatCool– Die Befehle „Heizen“ oder „Kühlen“ sind fehlgeschlagen, da das Gerät gerade heizt oder kühlt.lockedToRange: Das Gerät ist auf einen Temperaturbereich oder Modus festgelegt und die gewünschte Änderung kann nicht vorgenommen werden.rangeTooClose– Die Temperaturpunkte in einem Heiz-/Kühlbereich liegen zu nah beieinander.