Guide du thermostat pour la maison connectée
action.devices.types.THERMOSTAT
: les thermostats sont des appareils de gestion de la température, avec des températures mémorisées et des modes. Cela les distingue des systèmes de chauffage et de climatisation, qui ne peuvent avoir que des modes et des paramètres (par exemple, "haut"/"bas") au lieu d'une température cible.
Ce type indique que l'appareil reçoit l'icône Thermostat, ainsi que certains synonymes et alias associés.
Les appareils de ce type contrôlent la température, tandis que certains systèmes de chauffage/climatisation comportent des commandes et des modes différents (haut/bas), mais pas de commandes de température.Fonctionnalités de l'appareil
Consultez la documentation de la caractéristique correspondante pour en savoir plus sur l'implémentation, comme les attributs et les états que votre service doit prendre en charge, et comment créer des réponses EXECUTE et QUERY.
Caractéristiques requises
Ces traits et commandes sont obligatoires, le cas échéant pour votre appareil. Si votre appareil n'est pas compatible avec ces caractéristiques, saisissez le code d'erreur functionNotSupported
dans une réponse QUERY ou EXECUTE. Pour en savoir plus, consultez la section Erreurs et exceptions.
Les commandes de thermostat sont fréquemment enchaînées dans les intents EXECUTE
. Un utilisateur qui dit "Règle le chauffage sur 22" génère une commande de mode suivie d'une température définie.
Exigences de qualité
- Latence:doit être inférieure ou égale à 700 ms.
- Fiabilité:doit être supérieure ou égale à 97%.
Exemple d'appareil: thermostat simple
Cette section contient des exemples de charges utiles d'intent représentant un "Thermostat" commun en fonction du type d'appareil et des caractéristiques ci-dessus. Si vous ajoutez ou supprimez des traits dans votre implémentation, modifiez vos réponses en conséquence pour refléter ces changements.
Exemple de réponse SYNC
{ "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" } } ] } }
Exemple de réponse QUERY
{ "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 } } } }
Exemples de commandes EXECUTE
ThermostatTemperatureSetpoint
Pour en savoir plus sur les paramètres de commande, consultez la documentation de référence sur
action.devices.traits.TemperatureSetting
.
{ "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
Pour en savoir plus sur les paramètres de commande, consultez la documentation de référence sur
action.devices.traits.TemperatureSetting
.
{ "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
Pour en savoir plus sur les paramètres de commande, consultez la documentation de référence sur
action.devices.traits.TemperatureSetting
.
{ "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 } } ] } }
ERREURS de l'appareil
Consultez la liste complète des erreurs et exceptions.inHeatOrCool
: les commandes de chauffage/climatisation/plage de température ont échoué, car l'appareil est en mode chauffage ou climatisation explicite.inHeatCool
: les commandes de chauffage ou de climatisation ont échoué, car l'appareil est en mode chauffage ou climatisation.lockedToRange
: l'appareil est verrouillé sur une plage de températures ou un mode, et le changement demandé ne peut pas être effectué.rangeTooClose
: les points de température d'une plage de chauffage/climatisation sont trop proches les uns des autres.