en en fr en en fr fr vi fr en fr en en fr en fr fr en en en en fr fr en fr fr fr en fr fr fr fr fr fr fr fr fr fr fr fr fr fr fr fr fr hbs_lat fr fr fr fr fr fr en fr fr fr en fr en en en en en fr en fr fr fr fr fr fr fr en fr fr fr fr fr fr fr fr fr en fr fr fr fr en fr fr fr fr fr fr fr fr fr fr fr en fr fr fr fr en fr fr en fr
Comme expliqué lors de mon installation de Node-RED, j’utilise maintenant Node-RED pour réaliser les automatisations de Home Assistant.
Nous verrons donc ici comment réaliser une automatisation par un exemple : celui réglant le problème de mon sèche-linge.
Un des programmes de séchage de mon sèche-linge ne s’interrompt jamais en fin de cycle. Forcément, c’est celui que j’utilise le plus et celui qui est le plus efficace : le programme “jeans”.
Du coup, il faut que je prévoie d’aller l’arrêter en temps et en heure afin que mes vêtements ne finissent pas comme des nouilles instantanées !
Ma première solution était de mettre un minuteur sur mon téléphone et d’aller interrompre le cycle sans fin dès que les 2h10 de séchage sont écoulé.
Ce système me demande donc d’être présent à mon domicile lors de la fin du séchage.
Ayant une prise connectée (celle-ci), j’ai eu l’idée d’y mettre le sèche-linge dessus pour couper le courant à la fin du cycle.
Pour réalisé cela, j’ai crée un timer sur HA et utilisé Node-RED pour gérer le mécanisme.
Ma prise Gosund SP1 est équipée d’un bouton et de deux LED (rouge et bleu) qui sont indépendantes (le bouton et les LED n’ont aucune influence sur le relais de la prise). Je peux donc les utiliser pour faire ce que je veux.
Dans mon implémentation, la LED bleue indique que le timer est en fonctionnement et la rouge signifie que le timer est terminé (donc que le relais est coupé).
Le bouton sert à déclencher le timer et aussi à remettre le relais en fonctionnement (quand le cycle est terminé).
De ce fait, le scénario décrit est le suivant :
Lancement du cycle “jean” du sèche-linge
Appuie sur le bouton de la prise
Le relais se coupe
[Quand je vais retirer les linges]
Remise du sèche-linge sur “OFF” (via sa molette)
Appuie sur le bouton de la prise
Le relais redevient actif
Nous allons donc voir ici comment mettre cela en place.
Bien qu’on peut utiliser les timers sur Node-RED, je préfère utiliser celui d’HA car cela me permet de consulté le temps restant sur Lovelace (via une carte de la communauté).
On crée donc notre timer sur HA :
1 2 3 4
# configuration.yaml timer: seche_linge_jeans: duration: "02:10:00"
L’intégration de ma prise connectée me donne les entités suivantes sur HA :
Voici donc le flow au complet que j’ai réalisé :
Ce dernier est composé de deux séquences : une pour la gestion du bouton et l’autre pour l’extinction du timer.
Dans un premier temps, nous allons voir le scénario de déclanchement :
Cas : Déclanchement du timer
On commence alors par récupérer les évènements liés au bouton de la prise.
On glisse donc un node “events: state” et on inscrit le nom de l’entité (merci l’autocomplétion).
Ecoute de l’état du boutton
Dans le champ “If State”, on sélectionne “is” et l’on inscrit on afin que le node ait une sortie pour l’état “on” (lorsque le bouton est pressé).
Le conditionnement (ex: “If State”) crée une sortie réalisant cette condition. On peut multiplier les conditions comme ça nous chante.
Une dernière condition s’ajoute automatiquement, celle qui ne répond pas aux autres.
De ce fait, si on crée une condition VRAI, une sortie VRAI sera créée ainsi qu’une autre sortie : FAUX.
Ensuite, on vérifie le statut du relais avec un node “current state”.
On fait de même pour celui de la LED bleue.
Si ce dernier est bien éteint (donc que le timer n’est pas déjà lancé), on lance le timer via un node “call service” :
On finit ce premier cas avec une notification Gotify grâce au service notify d’HA :
Détail champs data de la notification
Toujours à l’appui du bouton, si le relais est coupé, c’est que l’on est dans le cas où il faut remettre le système à son état initial.
On active alors le relais :
Je vous laisse comprendre le reste de cette séquence… 🧐
Passons maintenant au cas du timer qui vient de finir.
Cas : Timer terminé
Ici, c’est assez particulier.
Pour récupérer la fin du timer, j’ai crée un node qui écoute tous les évènements de fin de timers d’HA et de filtrer si ce dernier correspond a celui fait pour mon sèche-linge (timer.seche_linge_jeans).
On récupère donc les fins de timers :
Ecoute fin des timers
On filtre nos résultats via un node “switch” (couleur ocre) via la propriété msg.payload.entity_id == timer.seche_linge_jeans. En effet, comme on peut le voir dans la définition du node précédant, les données reçues (event.data) sont transmises via la sortie msg.playload.
Filtrage pour le timer du sèche-linge
Lorsque notre timer spécifié est terminé, on coupe le relais et la LED bleue, on allume la rouge et l’on envoie une notification.
Le flow terminé, on le déploie via le bouton Deploy en haut à droite.
Cet exemple d’application permet de voir la prise en main l’application Node-RED. Je me suis mis à utiliser cet outil car je n’aimais pas la façon de faire des automatisations sur HA.
Il faut savoir que certaines personnes utilisent seulement Node-RED pour gérer l’ensemble de leur domotique (cela prouve la force de cet outil). Pour ma part, j’aime bien avoir un frontend pour visualiser mes informations. De ce fait, Node-RED sera pour moi une évolution de mon système plutôt qu’une refonte.
Ce logiciel montre que le low-code ouvre pas mal de possibilités en tout genre. Il serait peut-être intéressant pour moi de regarder l’autre solution qu’est n8n.