Node Red configuration

Je vient d’essayer de faire en sorte que quand j’appuie sur un bouton les autres se désactive, mais ma solution n’est pas très concluante, es ce qu’il y aurait un autre moyen plus simple.
Mon tableau:

Boutons

Mon flow:

Je ne vois pas trop le rapport entre ce point et les trucs d’avant.
Il faudrait vraiment te plonger dans la doc de nodered et du flot qui fait le lien entre ha et nodered…
Tel que tu le fais la, ce flot se déclenche quand tu cliques sur le noeud inject. Donc pas quand tu cliques sur le bouton dans l’interface.
A partir de là, ca ne fait pas ce que tu voudrais. Faut lire les docs, les comprendre et tester! Bon courage!

Oui, merci, je fais mon possible et j’ai beaucoup de réponses ici également. Les deux questions sont en lien, mais merci, je vais faire mon maximum pour arriver a ce que je souhaite.

[quote=« pyloutom, post:21, topic:16034, full:true »]
Je vient d’essayer de faire en sorte que quand j’appuie sur un bouton les autres se désactive, mais ma solution n’est pas très concluante, es ce qu’il y aurait un autre moyen plus simple.
Mon tableau:

Boutons

J’étais parti sur une idée équivalente qui s’est avérée trop complexe, j’ai fini par une idée plus simple pour gérer différentes options mutuellement exclusive avec une entité de type input_select incluant les différentes options choisies, exemple ici avec l’entité chauffage_cuisine qui a 4 options chez moi:

Puis un bouton qui affiche l’entité input_select et appelle un service de type select_next:


Quand on appuie sur le bouton, on passe séquentiellement d’un mode à l’autre.

Ce n’est pas exactement pareil mais ça permet de gérer efficacement les différentes options en un point centrale (l’entité input_select) de façon automatique et sans avoir besoin de NodeRED.

On peut ensuite créer des push_button, un par option, qui seront affichés sur l’interface et qui activeront directement l’option choisie via un set_option:

A noter que si l’on veut gérer les boutons individuellement qui s’activent et se désactivent mutuellement, on arrive vite à des NodeRED usines à gaz (par expérience, voir ici, mais je n’utilise plus ce flow):

Ma recommendation serait donc de partir sur un moteur simple et robuste (une entité input_select) et d’ajouter les graphismes et interfaces après, une fois que cela fonctionne, il est toujours possible d’améliorer l’interface au fur et à mesure de l’apprentissage HA (voici mon dashboard d’aujourd’hui, tout ce qui est gestion des modes de chauffage et clim utilise le principe mentionné):

Bonjour, merci beaucoup pour ce retour d’expérience, superbe ton dashboard impressionnant.
Je vais revoir mon idée et essayer de configurer un bouton comme toi avec HA, ce sera plus simple et exactement ce que ce je voulais faire. Je voulais tout faire par nod red, mais tant pis si cela est plus simple.

Après avoir essayé, je ne comprends pas comment faire, j’ai fait comme tu m’as conseillé, mais cela ne fonctionne pas, j’ai dû faire des erreurs de configuration (pourrais-tu me donner ton code yaml stp) pour que je puisse essayer de l’intégrer, mais je dois ensuite lui dire l’action qu’il doit faire en fonction de l’appui sur le bouton, mais je n’ai jamais fait une seule automatisation par HA…

La création du input_select:

La création d’un input_button qui serivira à activer le mode Normal, il faut en créer un par mode:

image

Le code du bouton dans l’interface qui permet de faire varier séquentiellement les modes:

show_name: true
show_icon: true
type: button
tap_action:
  action: call-service
  service: input_select.select_next
  data: {}
  target:
    entity_id: input_select.chauffage_cuisine
entity: input_select.chauffage_cuisine
show_state: true

A noter que si l’on n’affiche pas le nom et l’icône, on obtient un simple voyant qui affiche l’état:
image

Le code d’un push_button dans l’interface qui active directement le mode Normal:

show_name: true
show_icon: true
type: button
tap_action:
  action: call-service
  service: input_select.set_options
  data:
    options: Normal
  target:
    entity_id: input_select.chauffage_cuisine
entity: input_button.chauffage_cuisine_normal
icon: mdi:radiator
1 « J'aime »

Alors ça, c’est top, j’ai commencé à le mettre en place, je pense que cela devrait fonctionner un très grand merci pour ta réponse si rapide, c’est vraiment sympa… Je vois ce que je peux faire, mais je pense que je vais l’utiliser pour pas mal d’intiter à contrôler. :smiley: et peut être l’utiliser avec Nod red finalement à voir…

L’un n’empêche pas l’autre, derrière la gestion par HA des boutons et des options, j’ai du NodeRED pour définir les actions associées:

A titre d’exemple, j’ai 2 splits Daikin qui peuvent fonctionner suivant tout un tas de mode avec une télécommande digne d’un Airbus, j’ai réussi à simplifier le tout avec 2 boutons, clim_mode et clim_puissance, mais derrière, il y a du code NodeRED:

1 « J'aime »

Super quel travail avant d’arriver à faire ce que tu as fait ça donne des idées. Je vais donc utiliser les deux car j’aime beaucoup les possibilités de Nod Red bien que j’en maîtrise que 2 % :confused:. Je reviendrai vers toi si tu veux bien si je bloque dans mes automatismes :blush:

Suite de la programmation grâce à ton aide, j’ai créé un bouton qui me permet de changer le mode:
(off, eco, normal, boost) Celui-ci me permet de chauffer ma maison en fonction du soleil et de ma consommation. J’ai passé pas mal d’heure, mais je vais pouvoir configurer ma charge de voiture par le même système, je suis ravi merci beaucoup. Juste une petite question avec les limit msg/1m par exemple, comment je peux configurer ce nod pour que si l’état rechange avant la minute il annule son flux pour ne pas distribuer son message, je sais pas si je suis claire à 1h30 du mat.

Mon flow pour la PAC de la maison en fonction du mode choisi:

1 « J'aime »

Je reformule ma demande, je ne trouve pas le nod ou la configuration qui me permettrais d’enclencher un compte à rebours quand le message arrive et si celui-ci change avant la fin de la minute il annule le premier message. Avec ces nod:

Nod delay

Je souhaite l’utiliser pour éviter le changement d’état de ma PAC si ma production solaire varie dans la minute.

PAC auto normal

Je souhaite remplacer limit msg/m pour ce compte à rebours qui ce réinitialise si le message change dans la minute.

Oui, Trigger est fait pour ça:

Je l’utilise souvent pour éviter d’envoyer des commandes en rafale lorsqu’on appuie sur les boutons, j’attends le dernier appui.

Salut,

Il y a peut être une fonction plus simple, mais chez moi cela marche comme ça :


image

Bien vu, c’est encore plus simple comme ça ! merci pour l’astuce au passage :wink:

1 « J'aime »

Salut, je n’utilisais pas ce nod et ne le comprenais pas bien, mais c’est ce que je recherche super. Si je comprends bien si je configure mon nod comme toi sur 1 min dès qu’un nouveau message arrive, celui-ci relance le décompte d’une minute?

1 « J'aime »

Merci pour l’astuce, je n’y avais pas pensé cool, mais si le mode trigger fonctionne à pareil, c’est peut-être plus simple… Tellement de solutions avec nod red :smiley:

Exactement, par contre dans ton exemple, il enverra le caractère « 0 » en remplacement du msg reçu, sinon il faut utiliser cette option:

image

D’accord merci, mais si je souhaite que le message ne parte pas, dans mon exemple, je ne souhaite pas que ma PAC s’arrête si dans la minute la conso est inferieure à 1,8kw

Voilà ce que ça donne si ma conso est inférieure à 1,8kw le trigger n’arrête pas la PAC car mise à jour du sensor toutes les 30 sec je pense?
Si la conso dépasse 1,8kw le trigger distribue le message qu’en pensez vous ?

Mon système à l’air de fonctionner si cela peut servir ou par curiosité d’amélioration…

[{"id":"9ad266bc61eefab0","type":"group","z":"e849edfbed05891e","style":{"stroke":"#999999","stroke-opacity":"1","fill":"none","fill-opacity":"1","label":true,"label-position":"nw","color":"#a4a4a4"},"nodes":["734ef675bb27457c","9786937c1e9ec7cb","f1b882f77fdff45d","beebac67479a4eb0","cd5ace47a20339db","121b5845a2b0bc5e","7f698991cff36037","f641dc67eee1685e","f971e8a6238ec603","e606fdc587cebf33","27da0cda639b4e50","085abb5f0830940b","60359887b22ec046","87906b278244a79e","2f83471989daf492","1c1171911211597b","f9b761fe4e5f78fa","33f14653f22f92fe","947b551689c20ac9","b63a951a0e5f893d","99b62bb2da28a699","7bc5f91902fca3e8","dcfa36d5e7fe7316","a30809489983c2cf","4f16dcfd7538fd12","435e85cd681409c1","11d395f53ea4264c"],"x":194,"y":1279,"w":1752,"h":282},{"id":"734ef675bb27457c","type":"debug","z":"e849edfbed05891e","g":"9ad266bc61eefab0","name":"OFF","active":true,"tosidebar":true,"console":false,"tostatus":false,"complete":"payload","targetType":"msg","statusVal":"","statusType":"auto","x":1850,"y":1320,"wires":[]},{"id":"9786937c1e9ec7cb","type":"debug","z":"e849edfbed05891e","g":"9ad266bc61eefab0","name":"ECO","active":true,"tosidebar":true,"console":false,"tostatus":false,"complete":"payload","targetType":"msg","statusVal":"","statusType":"auto","x":1830,"y":1440,"wires":[]},{"id":"f1b882f77fdff45d","type":"debug","z":"e849edfbed05891e","g":"9ad266bc61eefab0","name":"NORMAL","active":true,"tosidebar":true,"console":false,"tostatus":false,"complete":"payload","targetType":"msg","statusVal":"","statusType":"auto","x":1840,"y":1520,"wires":[]},{"id":"beebac67479a4eb0","type":"debug","z":"e849edfbed05891e","g":"9ad266bc61eefab0","name":"BOOST","active":true,"tosidebar":true,"console":false,"tostatus":false,"complete":"payload","targetType":"msg","statusVal":"","statusType":"auto","x":1840,"y":1380,"wires":[]},{"id":"cd5ace47a20339db","type":"api-call-service","z":"e849edfbed05891e","g":"9ad266bc61eefab0","name":"OFF PAC Maison","server":"795cbd51.9e8064","version":5,"debugenabled":false,"domain":"switch","service":"turn_off","areaId":[],"deviceId":[],"entityId":["switch.chauffe_eau_studio","switch.pompe_a_chaleur_switch_1"],"data":"","dataType":"jsonata","mergeContext":"","mustacheAltTags":false,"outputProperties":[],"queue":"none","x":1650,"y":1320,"wires":[["734ef675bb27457c"]]},{"id":"121b5845a2b0bc5e","type":"api-call-service","z":"e849edfbed05891e","g":"9ad266bc61eefab0","name":"ON PAC Maison","server":"795cbd51.9e8064","version":5,"debugenabled":false,"domain":"switch","service":"turn_on","areaId":[],"deviceId":[],"entityId":["switch.chauffe_eau_studio","switch.pompe_a_chaleur_switch_1"],"data":"","dataType":"jsonata","mergeContext":"","mustacheAltTags":false,"outputProperties":[],"queue":"none","x":1640,"y":1380,"wires":[["beebac67479a4eb0"]]},{"id":"7f698991cff36037","type":"api-current-state","z":"e849edfbed05891e","g":"9ad266bc61eefab0","name":"SI conso - de 500w","server":"795cbd51.9e8064","version":3,"outputs":2,"halt_if":"500","halt_if_type":"num","halt_if_compare":"lt","entity_id":"sensor.shelly_shem_485519c9c2da_1_current_consumption","state_type":"str","blockInputOverrides":true,"outputProperties":[],"for":"0","forType":"num","forUnits":"minutes","override_topic":false,"state_location":"payload","override_payload":"msg","entity_location":"data","override_data":"msg","x":1190,"y":1440,"wires":[["1c1171911211597b","99b62bb2da28a699"],[]]},{"id":"f641dc67eee1685e","type":"api-call-service","z":"e849edfbed05891e","g":"9ad266bc61eefab0","name":"ON PAC Maison","server":"795cbd51.9e8064","version":5,"debugenabled":false,"domain":"switch","service":"turn_on","areaId":[],"deviceId":[],"entityId":["switch.chauffe_eau_studio","switch.pompe_a_chaleur_switch_1"],"data":"","dataType":"jsonata","mergeContext":"","mustacheAltTags":false,"outputProperties":[],"queue":"none","x":1640,"y":1440,"wires":[["9786937c1e9ec7cb"]]},{"id":"f971e8a6238ec603","type":"api-current-state","z":"e849edfbed05891e","g":"9ad266bc61eefab0","name":"SI conso - de 1,8kw","server":"795cbd51.9e8064","version":3,"outputs":2,"halt_if":"1800","halt_if_type":"num","halt_if_compare":"lt","entity_id":"sensor.shelly_shem_485519c9c2da_1_current_consumption","state_type":"str","blockInputOverrides":true,"outputProperties":[{"property":"data","propertyType":"msg","value":"","valueType":"entityState"}],"for":"0","forType":"num","forUnits":"minutes","override_topic":false,"state_location":"payload","override_payload":"msg","entity_location":"data","override_data":"msg","x":1190,"y":1520,"wires":[["f9b761fe4e5f78fa","7bc5f91902fca3e8"],[]]},{"id":"e606fdc587cebf33","type":"api-call-service","z":"e849edfbed05891e","g":"9ad266bc61eefab0","name":"ON PAC Maison","server":"795cbd51.9e8064","version":5,"debugenabled":false,"domain":"switch","service":"turn_on","areaId":[],"deviceId":[],"entityId":["switch.chauffe_eau_studio","switch.pompe_a_chaleur_switch_1"],"data":"","dataType":"jsonata","mergeContext":"","mustacheAltTags":false,"outputProperties":[],"queue":"none","x":1640,"y":1520,"wires":[["f1b882f77fdff45d"]]},{"id":"27da0cda639b4e50","type":"switch","z":"e849edfbed05891e","g":"9ad266bc61eefab0","name":"Test Mode PAC maison","property":"payload","propertyType":"msg","rules":[{"t":"eq","v":"OFF","vt":"str"},{"t":"eq","v":"BOOST","vt":"str"},{"t":"eq","v":"ECO","vt":"str"},{"t":"eq","v":"NORMAL","vt":"str"}],"checkall":"true","repair":false,"outputs":4,"x":730,"y":1440,"wires":[["11d395f53ea4264c"],["435e85cd681409c1"],["33f14653f22f92fe"],["947b551689c20ac9"]]},{"id":"085abb5f0830940b","type":"inject","z":"e849edfbed05891e","g":"9ad266bc61eefab0","name":"","props":[{"p":"payload"},{"p":"topic","vt":"str"}],"repeat":"","crontab":"","once":false,"onceDelay":0.1,"topic":"","payload":"","payloadType":"date","x":300,"y":1440,"wires":[["87906b278244a79e"]]},{"id":"60359887b22ec046","type":"comment","z":"e849edfbed05891e","g":"9ad266bc61eefab0","name":"PAC Maison 1","info":"","x":470,"y":1340,"wires":[]},{"id":"87906b278244a79e","type":"api-current-state","z":"e849edfbed05891e","g":"9ad266bc61eefab0","name":"Mode PAC maison","server":"795cbd51.9e8064","version":3,"outputs":1,"halt_if":"","halt_if_type":"str","halt_if_compare":"is","entity_id":"input_select.pac_maison","state_type":"str","blockInputOverrides":false,"outputProperties":[{"property":"payload","propertyType":"msg","value":"","valueType":"entityState"},{"property":"data","propertyType":"msg","value":"","valueType":"entity"}],"for":"0","forType":"num","forUnits":"minutes","override_topic":false,"state_location":"payload","override_payload":"msg","entity_location":"data","override_data":"msg","x":470,"y":1440,"wires":[["27da0cda639b4e50"]]},{"id":"2f83471989daf492","type":"link in","z":"e849edfbed05891e","g":"9ad266bc61eefab0","name":"link in 10","links":["26a6fcc138e50d62"],"x":335,"y":1400,"wires":[["87906b278244a79e"]],"icon":"node-red-contrib-modbus/modbus-icon.png"},{"id":"1c1171911211597b","type":"api-current-state","z":"e849edfbed05891e","g":"9ad266bc61eefab0","name":"Si Solaire + 1,5kw","server":"795cbd51.9e8064","version":3,"outputs":2,"halt_if":"1500","halt_if_type":"num","halt_if_compare":"gte","entity_id":"sensor.shelly_shem_485519c9c2da_2_current_consumption","state_type":"str","blockInputOverrides":true,"outputProperties":[],"for":"0","forType":"num","forUnits":"minutes","override_topic":false,"state_location":"payload","override_payload":"msg","entity_location":"data","override_data":"msg","x":1430,"y":1440,"wires":[["f641dc67eee1685e"],[]]},{"id":"f9b761fe4e5f78fa","type":"api-current-state","z":"e849edfbed05891e","g":"9ad266bc61eefab0","name":"Si Solaire + 1,5kw","server":"795cbd51.9e8064","version":3,"outputs":2,"halt_if":"1500","halt_if_type":"num","halt_if_compare":"gte","entity_id":"sensor.shelly_shem_485519c9c2da_2_current_consumption","state_type":"str","blockInputOverrides":true,"outputProperties":[],"for":"0","forType":"num","forUnits":"minutes","override_topic":false,"state_location":"payload","override_payload":"msg","entity_location":"data","override_data":"msg","x":1430,"y":1520,"wires":[["e606fdc587cebf33"],[]]},{"id":"33f14653f22f92fe","type":"change","z":"e849edfbed05891e","g":"9ad266bc61eefab0","name":"Set","rules":[{"t":"set","p":"payload","pt":"msg","to":"","tot":"str"}],"action":"","property":"","from":"","to":"","reg":false,"x":1010,"y":1440,"wires":[["7f698991cff36037"]]},{"id":"947b551689c20ac9","type":"change","z":"e849edfbed05891e","g":"9ad266bc61eefab0","name":"Set","rules":[{"t":"set","p":"payload","pt":"msg","to":"","tot":"str"}],"action":"","property":"","from":"","to":"","reg":false,"x":1010,"y":1520,"wires":[["f971e8a6238ec603"]]},{"id":"b63a951a0e5f893d","type":"link out","z":"e849edfbed05891e","g":"9ad266bc61eefab0","name":"link out 17","mode":"link","links":["dcfa36d5e7fe7316"],"x":1015,"y":1360,"wires":[]},{"id":"99b62bb2da28a699","type":"link out","z":"e849edfbed05891e","g":"9ad266bc61eefab0","name":"link out 18","mode":"link","links":["dcfa36d5e7fe7316"],"x":1355,"y":1420,"wires":[]},{"id":"7bc5f91902fca3e8","type":"link out","z":"e849edfbed05891e","g":"9ad266bc61eefab0","name":"link out 19","mode":"link","links":["dcfa36d5e7fe7316"],"x":1355,"y":1500,"wires":[]},{"id":"dcfa36d5e7fe7316","type":"link in","z":"e849edfbed05891e","g":"9ad266bc61eefab0","name":"link in 11","links":["b63a951a0e5f893d","99b62bb2da28a699","7bc5f91902fca3e8"],"x":1155,"y":1360,"wires":[["a30809489983c2cf"]]},{"id":"a30809489983c2cf","type":"trigger","z":"e849edfbed05891e","g":"9ad266bc61eefab0","name":"Décompte de 1 min si plus de messages","op1":"","op2":"","op1type":"nul","op2type":"payl","duration":"1","extend":true,"overrideDelay":false,"units":"min","reset":"","bytopic":"all","topic":"topic","outputs":1,"x":1360,"y":1360,"wires":[["cd5ace47a20339db"]]},{"id":"4f16dcfd7538fd12","type":"junction","z":"e849edfbed05891e","g":"9ad266bc61eefab0","x":1100,"y":1440,"wires":[[]]},{"id":"435e85cd681409c1","type":"junction","z":"e849edfbed05891e","g":"9ad266bc61eefab0","x":960,"y":1380,"wires":[["121b5845a2b0bc5e","b63a951a0e5f893d"]]},{"id":"11d395f53ea4264c","type":"junction","z":"e849edfbed05891e","g":"9ad266bc61eefab0","x":960,"y":1320,"wires":[["cd5ace47a20339db"]]},{"id":"795cbd51.9e8064","type":"server","name":"Home Assistant","version":4,"addon":true,"rejectUnauthorizedCerts":true,"ha_boolean":"y|yes|true|on|home|open","connectionDelay":true,"cacheJson":true,"heartbeat":false,"heartbeatInterval":"30","areaSelector":"friendlyName","deviceSelector":"friendlyName","entitySelector":"friendlyName","statusSeparator":"at: ","statusYear":"hidden","statusMonth":"short","statusDay":"numeric","statusHourCycle":"h23","statusTimeFormat":"h:m"}]
1 « J'aime »

Bonsoir, je souhaite configurer le nod Big Timer. Comme ci-dessous, quand c’est les heures creuses si mon « Test Mode Leaf » est sur la nuit, c’est seulement là que passe le message. Mais actuellement, un message est envoyé à l’entrée du nod qui ne sert a rien, je ne sais pas comment le configurer. Quelqu’un l’utilise s’il vous plaît.

Si quelqu’un a une solution pour mon souci, je n’arrive vraiment pas à configurer ce nod Big Timer, s’il vous plaît.
Merci d’avance. Je souhaite l’utiliser pour ma PAC et ma voiture. Il n’est pas encore relier car l’info passe même si il n’y a pas de message d’entrée.