Tag NFC et activation/désactivation de scénarios avec notification Telegram

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 :

image

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 :
image

configurer comme tel :
image

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 :

image

configurer de cette manière :

image

vous retrouvez donc vos ID NFC dans HA > Configuration > Balises :

image

Configurer donc le noeud Switch tel que :

image

pour explication, il s’agit ici de faire en sorte que chaque ID ressortent du noeud avec une sortie personnalisée :

image

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 :

image

image

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)

image

image

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) :

image

vous obtiendrez son ID qui se trouve bien dans msg.payload.event.tag_id :

image

Le noeud « Change » permettra de modifier cet ID en une suite de caractères :

image

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 :

image

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 :

image

et placer aussi Debug, il vous aime aussi…

image

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)

image

image

et voici la notif :

image

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 :

1 « J'aime »

Très jolie travail.
Dommage que tu ne l’ai pas posté avant, j’ai effectué le même travail hier soir de mon coté :wink:

Pour l’instant j’utilise mon iPhone comme lecteur de TAG NFC et tout cela fonctionne très bien aussi !
Avec le 1111 de Aliexpress j’ai commandé tous les composants pour me monter ce lecteur de tag que tu décris dans ton post.

A ce sujet, tu n’as pas rencontré de problème de montage ou de configuration pour l’assemblage de ce lecteur DIY ?

oui en effet, on aurait pu mettre en commun notre expérience. n’hesite pas a completer avec tes info si tu as envie :wink:

non pas de problématique particulière au contraire (juste le mini D1 à flasher qui d’ordinaire se branche en usb sans clé TTL, là j’ai du en utiliser une, mais c’est surement à mon ordi pour le coup)
sinon le montage est super simple et pour tout faire rentrer dans le boitier c’est quand meme un tout petit peu juste lol.

Tu me rassures, j’aime entendre que c’est simple :wink:

Ok, au cas ou j’ai aussi chez moi une clé TTL. Comme je ne suis pas un expert en soudure, peut-être que je reviendrais vers toi à ce moment la ! haha

Au sujet du boitier, tu l’as acheté en plus ou tu l’as imprimé de ton côté ?

pour le boitier j’ai demandé du coté du salon impression 3D du discord de madmartigan Domotique & DIY si une âme charitable pouvait me le faire :slight_smile:
pour les soudures, pas compliqué, en general je fais de la dentelle avec un fer à souder, mais j’ai acheté une bonne station de soudure et je ne suis pas deçu ^^

Merci des infos !
Niveau soudure moi je suis plus adepte des gros pâtés :wink:

2 « J'aime »

merci pour ce tuto. Ca fait gagner bcp de temps :slight_smile:
J’adapte ton flow. Car quand plusieurs personnes ont un badge et ne font pas gaffe. J’imagine le scenario d’activation d’alarme car un s’en va et a badgé sans faire attention que d’autres restent dans la maison …
et inversement. J’ai des automatismes qui activent l’alarme quand nos telephones s’éloignent de la maison. Que qq1 ai badgé qqes heures avant ou pas ca n’y changerai rien.
Et on a pris l’habitude d’avoir une alarme sans s’en occuper. Obliger le retour au badge serait pas pratique.
J’ai crée un input boolean par badge (et donc par personne) qui s’allume ou s’éteint quand on scan le badge selon l’état precedent.
J’ai crée un groupe qui regroupe tout ces booleans. Apres je rajoute un current state de ce group sur mes autres flows alarme
Je suis toujours en phase de test avec (j’ai recu mon tag reader hier, et on recoit pas bcp d’invités en ce moment avec le confinement :slight_smile: )

1 « J'aime »

en effet le but est de ne pas s’en occuper. elle s’active également par geolocalisation mais… les enfants… autant le plus grand au lycée a son tel, les autres ont un tel mais n’ont plus le droit de l’emmener au college, et celui en primaire n’a pas de tel. Donc un badge rfid ou une pastille papier rfid collé à la carte de bus est top :slight_smile:

c’est mon idée pour le futur (j’ai le temps, 6ans et 4 an les petits). Eux en badgeant, nous avec les tel :slight_smile:

1 « J'aime »