Objectif :
Utiliser une puce, badge ou carte NFC pour activer un flow, dans cet exemple activation / désactivation de l’alarme
Prérequis :
- des badges NFC (quelques centimes sur ali)
- le lecteur de badge NFC avec un D1 mini
- envie d’un truc qui marche bien
- des doigts
- plein d’idées (ici on traitera d’une alarme sur node red, mais vous pourrez utiliser le principe pour caster de la musique, ouvrir un la porte d’un garage ou je ne sais quoi encore)
Budget : quelques euros pour le lecteur de badge (- de 10€)
Procédure :
Les ID de vos tags badgés sont dans le menu > Configuration > Balises. Je vous conseil de procéder à l’enrollement de tout vos badges, vous aurez ainsi la liste des id de vos badges, pour cela il suffit de passer vos badges à la suite sur le lecteur, il apparaitront automatiquement dans Balises
flow final :
Tout commence avec un noeud Event all :
l’Event type est tag_scanned puisque c’est l’évènement utilisé par HA du passage du tag sur le lecteur, pour rappel, vous le trouvez dans le menu > Outils de développement > Evènements.
Le deuxieme noeud est un noeud Delay :
configurer comme tel :
pourquoi?
Tout simplement parce que le lecteur de badge est super réactif, quand on appose le badge il peut arriver qu’il soit bippé deux fois de suite, donc en pratique : on badge une fois pour activer l’alarme et celle ci se désactive aussitôt car j’ai laissé mon badge un chouilla trop longtemps sur le lecteur qui me l’aura pris en compte une deuxième fois, d’où le délais de 1 message par 5 secondes maximum.
Ensuite un noeud Switch :
configurer de cette manière :
vous retrouvez donc vos ID NFC dans HA > Configuration > Balises :
Configurer donc le noeud Switch tel que :
pour explication, il s’agit ici de faire en sorte que chaque ID ressortent du noeud avec une sortie personnalisée :
Nous allons avoir deux parties à traiter, celle du haut, l’activation de l’alarme ensuite celle du bas avec la notification Telegram.
La partie du haut : activation de l’alarme :
Verifions que l’alarme est activée ou non avec un Current State :
Si l’alarme est déjà active, alors le passage du badge le flow ira vers le noeud pour désactivera l’alarme, et à l’inverse si l’alarme n’est pas active le flow ira vers le noeud pour activer l’alarme.
les deux noeuds « Désactiver alarme » et « Activer alarme » : (il s’agit de noeud Call Service)
Ensuite vous enchainez avec votre scenario d’alarme, vous aussi rajouter un petit message TTS sur votre google home par exemple indiquant l’activant de l’alarme ou vous souhaitant la bienvenu quand vous la désactivez :
je vous conseil également d’utilisez le noeud Link Out et Link In pour relier ce flow au flow de votre alarme, chacun y verra midi à porte.
La partie du bas : notification Telegram :
Je souhaites savoir, sous forme de notification Telegram, qui a activé ou désactivé l’alarme :
Si vous placez un noeud Debug à une sortie du switch (sortie qui correspond au badge avec lequel vous faites mumuse) :
vous obtiendrez son ID qui se trouve bien dans msg.payload.event.tag_id :
Le noeud « Change » permettra de modifier cet ID en une suite de caractères :
je remplace donc l’ID « 51-xx-xx-02 » par " Noé a utilisé badge 51-xx-xx-02"
Grosso merdo, je recupere un message , je lui demande de chercher l’ID et de le remplacer par cette phrase. J’aurais donc un message non pas un ID qui ne veut pas dire grand chose pour moi mais avec une phrase que j’aurais personnalisé.
Faites en de meme pour les autres badges en cliquant sur le + add :
Je place maintenant un debug (bah oui c’est un super copain!) apres mon noeud Change et je test :
c’est glop ! :
j’ai bien l’ID qui a été remplacé par ma phrase !
Partez pas, c’est presque fini et super interessant !!!
maintenant que nous avons notre phrase personnalisée dans le message msg.payload.event.tag_id et que Telegram vas envoyer le msg.payload nous allons tout betement convertir le msg.payload.event.tag_id en msg.payload avec un autre noeud Change :
et placer aussi Debug, il vous aime aussi…
apres un deploy et un test de badge voila :
Nous avons bien l’ID remplacé par une phrase, ensuite le contenu du message msg.payload.event.tag_id dans msg.payload
Telegram :
On peut donc rajoute son noeud de notification, ici Telegram Sender (de la palette Telegram)
et voici la notif :
voili voilou !
A retenir :
- Vous avez plusieurs lecteurs de badge ? : tous les lecteurs auront les meme effets, en effet seulement les badges nfc ouvrent à des scenarios ou automatisations.
Liens :
Guide sur la gestion des messages msg. dans node red :
https://nodered.org/docs/user-guide/messages
plans et montages
clin d’oeil :