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. Ils sont ainsi distincts des appareils de chauffage et de climatisation, qui ne peuvent comporter que des modes et des réglages (élevé/faible, par exemple) et une température cible.
Ce type indique que l'appareil reçoit l'icône du thermostat, ainsi que certains synonymes et alias associés.
Les appareils de ce type contrôlent la température, tandis que certaines unités de chauffage/climatisation proposent des commandes et des modes haut/bas différents, mais pas de contrôle de la température.Fonctionnalités de l'appareil
Reportez-vous à la documentation sur les fonctionnalités correspondantes pour obtenir des détails sur l'implémentation, tels que les attributs et les états que votre service doit prendre en charge, et pour découvrir comment créer des réponses EXECUTE et QUERY.
Traits obligatoires
Ces traits et commandes sont requis, le cas échéant. Si votre appareil n'est pas compatible avec ces traits, saisissez le code d'erreur de functionNotSupported
dans une réponse QUERY ou EXECUTE. Pour en savoir plus, consultez la section Erreurs et exceptions.
Les commandes du thermostat sont souvent enchaînées dans les intents EXECUTE
. Un utilisateur qui dit *Régler le chauffage sur 22* génère une commande de mode suivie d'une température définie.
Exigences de qualité
- La latence doit être inférieure ou égale à 700 ms.
- Fiabilité: la valeur 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 décrites ci-dessus. Si vous ajoutez ou supprimez des caractéristiques dans votre implémentation, modifiez vos réponses en conséquence pour refléter ces modifications.
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 la 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 la 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 la 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 sur l'appareil
Consultez la liste complète des erreurs et exceptions.inHeatOrCool
: les commandes de chauffage/climatisation/plage ont échoué, car l'appareil est en mode chauffage ou climatisation explicite.inHeatCool
: les commandes de chauffage ou de climatisation échouaient, car l'appareil est en chauffage ou de climatisation.lockedToRange
: l'appareil est verrouillé sur une plage de températures ou un mode, et la modification demandée ne peut pas être effectuée.rangeTooClose
: les points de température d'une plage de chauffage et de climatisation sont trop proches les uns des autres.