Récupérer consigne thermostat dans le déclencheur d'une scène

Bonjour,
Je ne vois pas très bien comment renvoyer la consigne du « thermostat gladys » dans le déclencheur d’une scène.
Je m’explique, si je veux comparer la température actuelle à la valeur de consigne j’ai l’impression que je ne peux pas :

J’avais vu dans un tuto qu’avec des { } on pouvait récupérer des valeurs mais j’ai pas réussi.

J’ai peut être loupé un truc …

Je ne sais pas si ça peut résoudre le problème mais pour récupérer une valeur c’est avec {{

1 Like

Merci @tiboys pour la réponse.

Si j’ai un thermostat qui est référencée dans gladys:
image
la syntaxe est bien : {{ Thermostat maison }}

Je ne sais pas si je raconte des bêtises mais il me semble que pour utiliser le {{ , il faut en amont l’action « récupérer le dernier état »…

Et du coup ca ne peut pas le faire sur un déclencheur !

J’ai testé et franchement ça me paraît compliqué, en fait j’ai pas réussi.

Donc on doit créer une scène pour récupérer le dernier état du capteur et là, on a accès à la valeur dans une autre scène. Mais du coup quelle le nom de la valeur?

EDIT : je crois que j’ai pratiquement retrouvé ma question ici : Utiliser la fonctionnalité d'un device comme valeur dans "Continuer seulement si" et "Changement d'état" - #4 par guim31

Salut @Fabic :slight_smile: J’ai déplacé le sujet dans un nouveau topic.

Ce n’est pas possible de récupérer une valeur dans le déclencheur d’une scène

Ce serait pour faire quoi ? Peut-être qu’il est possible de le faire autrement

Bonjour @pierre-gilles ,

Je pensais pouvoir réaliser la fonction « thermostat d’ambiance » avec Gladys, c’est à dire couper ou allumer un appareil en fonction de la température et de la consigne du thermostat.

Pour cela, selon moi la solution la plus simple était de « déclencher » une scène de cette façon:
Si variable température inférieure à la valeur de consigne alors action (avec gestion de l’hystérésis par une condition)

Après documentation on peut le faire comme @b3n.0 dans ce post Utiliser la fonctionnalité d'un device comme valeur dans "Continuer seulement si" et "Changement d'état" - #6 par Tlse-vins mais avec un déclencheur temporel (qui est moins propre).

Peut-être que le plus facile pour l’instant est de passer par node-red via MQTT?

Sinon qu’est ce qui t’empêche de faire ça:

Tu mets une condition fantaisiste dans le déclencheur.

Ici j’ai mis QUAND « température » inférieur à 120°C, qui sera toujours vrai (sauf si tu vis dans un four)

Et après tu mets ta logique, et ça sera toujours exécutée

@pierre-gilles , je pense qu’il veut comparer la température de la pièce à la température de consigne.
Mais la consigne n’est pas juste une valeur que tu règles dans ta scène mais la valeur de l’objet thermostat que tu as développé.

Oui c’est bien ça

En effet, ça devrait fonctionner en ajoutant un « récupérer le dernier état » de la consigne et l’injecter ensuite en valeur

Oui mais justement ce n’est pas géré actuellement !

Avec l’astuce de @b3n.0 ça marchera par contre : Utiliser la fonctionnalité d'un device comme valeur dans "Continuer seulement si" et "Changement d'état" - #7 par b3n.0

Bon finalement j’ai fini par un node-red en lien avec MQTT Gladys et ça marche vraiment bien. En bonus une modification de la consigne la nuit si jour rouge Tempo:

[{"id":"7be11ef3ccc79547","type":"tab","label":"Regul chauffage","disabled":false,"info":"","env":[]},{"id":"00c5cce50b84dd0b","type":"change","z":"7be11ef3ccc79547","name":"","rules":[{"t":"set","p":"vartemp","pt":"global","to":"payload.AM2301.Temperature","tot":"msg"}],"action":"","property":"","from":"","to":"","reg":false,"x":430,"y":380,"wires":[["5dcfdfd8a863da79"]]},{"id":"5a697c78a69d9724","type":"change","z":"7be11ef3ccc79547","name":"","rules":[{"t":"set","p":"varconsigne","pt":"global","to":"payload","tot":"msg"}],"action":"","property":"","from":"","to":"","reg":false,"x":440,"y":460,"wires":[["5dcfdfd8a863da79"]]},{"id":"5dcfdfd8a863da79","type":"change","z":"7be11ef3ccc79547","name":"","rules":[{"t":"set","p":"payload","pt":"msg","to":"$globalContext(\"vartemp\")-$globalContext(\"varconsigne\")","tot":"jsonata"},{"t":"set","p":"topic","pt":"msg","to":"","tot":"str"}],"action":"","property":"","from":"","to":"","reg":false,"x":760,"y":400,"wires":[["69b4ef9e8f01c17c"]]},{"id":"59a48089d39711d8","type":"inject","z":"7be11ef3ccc79547","name":"temp","props":[{"p":"payload"},{"p":"topic","vt":"str"}],"repeat":"","crontab":"","once":false,"onceDelay":0.1,"topic":"","payload":"22","payloadType":"num","x":150,"y":380,"wires":[["00c5cce50b84dd0b"]]},{"id":"ccaab92a746fe040","type":"inject","z":"7be11ef3ccc79547","name":"consigne","props":[{"p":"payload"},{"p":"topic","vt":"str"}],"repeat":"","crontab":"","once":false,"onceDelay":0.1,"topic":"","payload":"21","payloadType":"num","x":160,"y":540,"wires":[["5a697c78a69d9724"]]},{"id":"69b4ef9e8f01c17c","type":"switch","z":"7be11ef3ccc79547","name":"hysteresis","property":"payload","propertyType":"msg","rules":[{"t":"lt","v":"0","vt":"num"},{"t":"gt","v":"0.3","vt":"num"}],"checkall":"true","repair":false,"outputs":2,"x":990,"y":400,"wires":[["dc951c01368595ce"],["5bc434c29dca52c2"]]},{"id":"ea617ed9c13c0a8d","type":"debug","z":"7be11ef3ccc79547","name":"debug 15","active":true,"tosidebar":true,"console":false,"tostatus":false,"complete":"false","statusVal":"","statusType":"auto","x":1460,"y":320,"wires":[]},{"id":"6739c40be43d3488","type":"mqtt in","z":"7be11ef3ccc79547","name":"consigne","topic":"topic gladys thermostat","qos":"2","datatype":"auto-detect","broker":"ca0557c2.d52418","nl":false,"rap":true,"rh":0,"inputs":0,"x":140,"y":480,"wires":[["083fe666d0024601","5a697c78a69d9724"]]},{"id":"ace5a1d0a89dff2d","type":"mqtt out","z":"7be11ef3ccc79547","name":"","topic":"topic gladys chauffage","qos":"0","retain":"false","respTopic":"","contentType":"","userProps":"","correl":"","expiry":"","broker":"ca0557c2.d52418","x":1500,"y":380,"wires":[]},{"id":"dc951c01368595ce","type":"change","z":"7be11ef3ccc79547","name":"","rules":[{"t":"set","p":"payload","pt":"msg","to":"1","tot":"num"}],"action":"","property":"","from":"","to":"","reg":false,"x":1200,"y":340,"wires":[["ace5a1d0a89dff2d","ea617ed9c13c0a8d"]]},{"id":"5bc434c29dca52c2","type":"change","z":"7be11ef3ccc79547","name":"","rules":[{"t":"set","p":"payload","pt":"msg","to":"0","tot":"num"}],"action":"","property":"","from":"","to":"","reg":false,"x":1200,"y":440,"wires":[["ace5a1d0a89dff2d","ea617ed9c13c0a8d"]]},{"id":"083fe666d0024601","type":"debug","z":"7be11ef3ccc79547","name":"debug 16","active":true,"tosidebar":true,"console":false,"tostatus":false,"complete":"false","statusVal":"","statusType":"auto","x":400,"y":320,"wires":[]},{"id":"0c8130f2f9645336","type":"mqtt in","z":"7be11ef3ccc79547","name":"temp","topic":"capteur température","qos":"0","datatype":"auto-detect","broker":"ca0557c2.d52418","nl":false,"rap":true,"rh":0,"inputs":0,"x":130,"y":320,"wires":[["00c5cce50b84dd0b","083fe666d0024601"]]},{"id":"b693e20d6c67348b","type":"comment","z":"7be11ef3ccc79547","name":"Relais on/off si température<consigne","info":"","x":170,"y":260,"wires":[]},{"id":"00142a0f421ec69e","type":"comment","z":"7be11ef3ccc79547","name":"Consigne spéciale nuit jour rouge","info":"","x":150,"y":620,"wires":[]},{"id":"366c8f9d1d101463","type":"cronplus","z":"7be11ef3ccc79547","name":"22h","outputField":"payload","timeZone":"","persistDynamic":false,"commandResponseMsgOutput":"output1","outputs":1,"options":[{"name":"schedule1","topic":"topic1","payloadType":"default","payload":"","expressionType":"cron","expression":"0 0 22 * * * *","location":"","offset":"0","solarType":"all","solarEvents":"sunrise,sunset"}],"x":120,"y":680,"wires":[["4b22112740b52e12"]]},{"id":"99ea54f88f5d8c41","type":"debug","z":"7be11ef3ccc79547","name":"debug 18","active":true,"tosidebar":true,"console":false,"tostatus":false,"complete":"false","statusVal":"","statusType":"auto","x":1140,"y":660,"wires":[]},{"id":"4b22112740b52e12","type":"change","z":"7be11ef3ccc79547","name":"couleur du jour","rules":[{"t":"set","p":"payload","pt":"msg","to":"couleurjour","tot":"global"}],"action":"","property":"","from":"","to":"","reg":false,"x":450,"y":720,"wires":[["1bd1509583558337","99ea54f88f5d8c41"]]},{"id":"1bd1509583558337","type":"switch","z":"7be11ef3ccc79547","name":"si jour rouge","property":"payload","propertyType":"msg","rules":[{"t":"eq","v":"RED","vt":"str"},{"t":"neq","v":"RED","vt":"str"}],"checkall":"true","repair":false,"outputs":2,"x":720,"y":720,"wires":[["99ea54f88f5d8c41","c8e04a4de0c117e3"],["8fa24f5c0fb9d604"]]},{"id":"da765ecac0e3f39e","type":"mqtt out","z":"7be11ef3ccc79547","name":"vers consigne gladys","topic":"topic gladys consigne","qos":"","retain":"","respTopic":"","contentType":"","userProps":"","correl":"","expiry":"","broker":"f3b05caa30697468","x":1180,"y":780,"wires":[]},{"id":"c8e04a4de0c117e3","type":"change","z":"7be11ef3ccc79547","name":"consigne 22°C","rules":[{"t":"set","p":"payload","pt":"msg","to":"22","tot":"num"}],"action":"","property":"","from":"","to":"","reg":false,"x":930,"y":720,"wires":[["da765ecac0e3f39e","99ea54f88f5d8c41","5a697c78a69d9724"]]},{"id":"4251162afaa2fe75","type":"inject","z":"7be11ef3ccc79547","name":"Manuel","props":[{"p":"payload"},{"p":"topic","vt":"str"}],"repeat":"","crontab":"","once":false,"onceDelay":0.1,"topic":"","payload":"","payloadType":"date","x":110,"y":740,"wires":[["4b22112740b52e12"]]},{"id":"380a3b67ae3b4754","type":"cronplus","z":"7be11ef3ccc79547","name":"6h","outputField":"payload","timeZone":"","persistDynamic":false,"commandResponseMsgOutput":"output1","outputs":1,"options":[{"name":"schedule1","topic":"topic1","payloadType":"default","payload":"","expressionType":"cron","expression":"0 0 6 * * * *","location":"","offset":"0","solarType":"all","solarEvents":"sunrise,sunset"}],"x":150,"y":820,"wires":[["8fa24f5c0fb9d604"]]},{"id":"8fa24f5c0fb9d604","type":"change","z":"7be11ef3ccc79547","name":"consigne 19°C à partir de 6h","rules":[{"t":"set","p":"payload","pt":"msg","to":"19","tot":"num"}],"action":"","property":"","from":"","to":"","reg":false,"x":920,"y":860,"wires":[["da765ecac0e3f39e","5a697c78a69d9724","99ea54f88f5d8c41"]]},{"id":"0d42db205ff2380f","type":"inject","z":"7be11ef3ccc79547","name":"Manuel","props":[{"p":"payload"},{"p":"topic","vt":"str"}],"repeat":"","crontab":"","once":false,"onceDelay":0.1,"topic":"","payload":"","payloadType":"date","x":150,"y":880,"wires":[["8fa24f5c0fb9d604"]]},{"id":"ca0557c2.d52418","type":"mqtt-broker","name":"","broker":"localhost","port":"1883","clientid":"","autoConnect":true,"usetls":false,"protocolVersion":"4","keepalive":"60","cleansession":true,"birthTopic":"","birthQos":"0","birthPayload":"","birthMsg":{},"closeTopic":"","closePayload":"","closeMsg":{},"willTopic":"","willQos":"0","willPayload":"","willMsg":{},"userProps":"","sessionExpiry":""},{"id":"f3b05caa30697468","type":"mqtt-broker","name":"","broker":"192.168.1.124","port":"1883","clientid":"","autoConnect":true,"usetls":false,"protocolVersion":"4","keepalive":"60","cleansession":true,"birthTopic":"","birthQos":"0","birthPayload":"","birthMsg":{},"closeTopic":"","closeQos":"0","closePayload":"","closeMsg":{},"willTopic":"","willQos":"0","willPayload":"","willMsg":{},"userProps":"","sessionExpiry":""}]

Sujet complètement différent, dans gladys l’appareil « clic bouton » en MQTT ne fonctionne pas sur mon instance. C’est normal?

Bonsoir,
J’utilise déjà Gladys pour mon chauffage et me suis finalement penché sur le ‹ nouveau › Thermostat développé par @pierre-gilles il y a quelques mois.
Pour le rendre utile, il faut que je puisse choisir une valeur avec ce thermostat, ajouter un degré pour la consigne haute et enlever un degré pour la consigne basse (ex: si je choisis 20°C, le chauffage s’allume à 19°C et s’éteint à 21°C).
Je fais donc une scène dans laquelle je récupère la valeur du thermostat, j’envoie l’opération via mathjs et puis…
Mathjs ne veut pas de ma variable ‹ Thermostat › alors que ça fonctionne avec des nombres et puis…
Je ne sais pas choisir le résultat dans ‹ contrôler un appareil › vers un appareil MQTT fictif.
Ce que j’essaye de faire correspond au problème cité plus haut? Ce n’est pas géré? A quel point suis-je à côté de la plaque?
Edit: j’ai vu ici que @bertrandda avait travaillé sur le sujet, vaut-il mieux que je range mon projet et attende?

Tu teste bien en exécutant la scène globale, et pas en faisant « Essayer » sur le bouton requête HTTP ? Le bouton essayer n’envoie pas les variables car il n’exécute que ce bout de la scène

Effectivement actuellement ce n’est pas possible. Je ne sais pas où en est @bertrandda sur le sujet, après je ne crois pas que ce soit en développement actif, donc si tu veux reprendre le sujet, tu peux ! :smiley:

1 Like

J’avais quelque chose de fonctionnel, il me restait à écrire les tests. J’essaie de pousser le code rapidement pour voir si ça vous convient

4 Likes

Oui, et le message d’erreur est : ‹ Error: Syntax error in part " + 1" (char 10) ›.
Mon bloc scène ressemble à ça :


Si je mets ‹ 20 › au lieu de la variable, ça fonctionne…
En soit, ce n’est pas grave dans la mesure où les fonctions mathématiques vont être intégrées mais j’aimerais savoir ce que je fais mal…

Si je savais le faire, ce serait avec grand plaisir! :wink:

@GBoulvin J’ai testé chez moi en faisant cette scène :

Je lance la scène et dans mes messages :

Tout semble bon !

Je ne sais pas ce que tu fais de différent mais il doit y avoir quelque chose :smiley:

Pour info

3 Likes