Aide ! Gérer la température avec la présence SI Sinon dans Node Red avec HA

Bonjour à tous,

Novice sur Node-red, j’arrive à l’utiliser de manière simple mais dès que je souhaite faire un peu plus compliqué, cela coince.

J’essaye de gérer la température de la maison en fonction de la présence, mon but est ; Si Sébastien et Christelle ou que l’un de nous deux sont à la maison, j’active la température à 20°c et si personne, je descends la température à 18°c. je pense qu’il faudrait que j’utilise la cellule Function dans node red mais je sais pas coder.

Pouvez-vous expliquer si la function peut convenir ou une alternative ? merci

1 « J'aime »

perso j’utilise un trigger states plutot qu’un event state.
dans le trigger je définie si personne est présente ou non (is home, is not home)

ensuite, si c’est le cas, le chauffage passe en mode eco (ou baisse de la température)
si ce n’est pas le cas, donc il y a une présence, le chauffage passe en mode chauffe.
avec un peu plus de detail tu mettre gérer les zones, c’est à dire, si tu arrives à 5 km de ton domicile, le chauffage passe en chauffe par exemple.

l’avantage du trigger states est que que tu as deux sortie, allowed et blocked :wink:

ca te donnerai un truc un peu comme ca:

dans mon exemple, si quelqu’un est present la pac se met en route en mode eco la journée, et mode confort à partir de la soirée. Si tout le monde est absent, alors, quelque soit l’heure, ca passe en mode eco.

1 « J'aime »

Bonsoir,
Chez moi, j’ai crée un groupe de personne.
Quand ce groupe est Not Home, je passe la température à 18.
La deuxième sortie passe la température à 20.
image

2 « J'aime »

Et une troisième solution, pour la route. Du « pur » Node-Red sans utiliser la notion de groupe de HA:

[{"id":"1af612a846520d6b","type":"or-gate","z":"fa7ec82ed1316c30","name":"","rules":[{"t":"eq","v":"on","vt":"str","propertyType":"msg","property":"payload","topic":"monsieur"},{"t":"eq","v":"on","vt":"str","propertyType":"msg","property":"payload","topic":"madame"}],"outputTopic":"","gateType":"or","emitOnlyIfTrue":false,"x":560,"y":1420,"wires":[["4c86fe528833b069"]]},{"id":"0ad9b8c6b89502a2","type":"inject","z":"fa7ec82ed1316c30","name":"","props":[{"p":"payload"},{"p":"topic","vt":"str"}],"repeat":"","crontab":"","once":false,"onceDelay":0.1,"topic":"monsieur","payload":"on","payloadType":"str","x":330,"y":1360,"wires":[["1af612a846520d6b"]]},{"id":"0e77437ca22963fe","type":"inject","z":"fa7ec82ed1316c30","name":"","props":[{"p":"payload"},{"p":"topic","vt":"str"}],"repeat":"","crontab":"","once":false,"onceDelay":0.1,"topic":"monsieur","payload":"off","payloadType":"str","x":330,"y":1400,"wires":[["1af612a846520d6b"]]},{"id":"e14c8de71723c178","type":"inject","z":"fa7ec82ed1316c30","name":"","props":[{"p":"payload"},{"p":"topic","vt":"str"}],"repeat":"","crontab":"","once":false,"onceDelay":0.1,"topic":"madame","payload":"on","payloadType":"str","x":330,"y":1440,"wires":[["1af612a846520d6b"]]},{"id":"073e56932f77d5d5","type":"inject","z":"fa7ec82ed1316c30","name":"","props":[{"p":"payload"},{"p":"topic","vt":"str"}],"repeat":"","crontab":"","once":false,"onceDelay":0.1,"topic":"madame","payload":"off","payloadType":"str","x":330,"y":1480,"wires":[["1af612a846520d6b"]]},{"id":"4c86fe528833b069","type":"switch","z":"fa7ec82ed1316c30","name":"","property":"bool","propertyType":"msg","rules":[{"t":"true"},{"t":"false"}],"checkall":"true","repair":false,"outputs":2,"x":710,"y":1420,"wires":[["3cb3d6005e36a390"],["a3ad02919418c2ba"]]},{"id":"3cb3d6005e36a390","type":"debug","z":"fa7ec82ed1316c30","name":"","active":true,"tosidebar":true,"console":false,"tostatus":false,"complete":"\"Chauffage = 20\"","targetType":"jsonata","statusVal":"","statusType":"auto","x":880,"y":1400,"wires":[]},{"id":"a3ad02919418c2ba","type":"debug","z":"fa7ec82ed1316c30","name":"","active":true,"tosidebar":true,"console":false,"tostatus":false,"complete":"\"Chauffage = 18\"","targetType":"jsonata","statusVal":"","statusType":"auto","x":880,"y":1440,"wires":[]}]

Le « or gate » vient de la palette node-red-contrib-bool-gate (node) - Node-RED qui peut être bien pratique pour faire des ou/et avec NodeRed, qui par nature est séquentiel.

2 « J'aime »

Du coup, j’ai créé un groupe « Parents » et j’ai fait un mix entre la solution 1 et 2. Par contre cela ne fonctionne pas, voir ci dessous : je pense que j’ai un soucis dans ma vérification. Je précise pour ma localisation, j’utilise Life360.



Ca ne marche pas… Mais ou et pourquoi?
Avec NodeRed, c’est très facile de mettre des noeuds debug pour essayer de comprendre ce qu’il se passe.
Par exemple, là, tu semble vouloir mettre la température à 20 mais, dans la commande il y a 19. Déjà, ça…
Le principe c’est de tester les étapes une à une pour comprendre l’erreur.

Sur HA:
Pour ta localisation, tu peux combiner plusieurs sources.
Tu as la liste ici: https://www.home-assistant.io/integrations/#presence-detection
Une fois les trackers en place (nmap, Bluetooth, life360, OwnTracks, Google Maps,…)
Ils peuvent être associés aux personnes (Sébastien et Christelle)
Aprés tu crées le groupe des 2 personnes.
Tu regardes l’état du groupe si une des deux personnes est présente.

Passons sur NR:
Sur le premier Node (Event State) tu pistes sur le groupe et tu adaptes ta config en t’inspirant de ca:


Une fois ceci fais, tu positionnes tes 2 autres node (Call service) pour affecter la bonne temperature.
Celui du pion supérieur sera si vous êtes absents (18 degres) et l’inférieur sera si un de vous est présent (20 degrés)
Au final, tu n’utilises que 3 Node pour fixer ta consigne température en fonction de ta présence.

Excellent, ça simplifie grandement la configuration.
Encore merci !