Notifications instantanées avec NodeRed et Telegram

J’utilise Node-Red pour la gestion des scénarios « complexes » de ma domotique (chauffage, éclairage en fonction de la position du soleil, …). Node-red est finalement beaucoup plus facile à gérer qu’un gros fichier de yaml de Home Assistant.

Mais, lorsque tout ne se passe pas comme prévu, il faut un moyen de notification facile, rapide, user-friendly, histoire de ne pas se retrouver en plein milieu de l’hiver avec « tient, il commence à faire froid. Zut la chaudière à planté, elle ne répond plus depuis 3h et je n’ai rien vu ! » (toute ressemblance avec la réalité est fortuite, hum).

Alors, on peut choisir la méthode simple de « s’auto-envoyer un email », c’est déjà bien. Mais c’est pas sexy, et moi je suis un geek. Et j’ai découvert Telegram, et toutes ses fonctionnalités. Telegram, c’est un peu comme WhatsApp ou Google Hangout, dans lequel on peut avoir des « bots » qui répondent à des commandes prédéfinies. Top claassse pour les geeks !

Comment mettre Telegram en place

Sur Node-Red, rien de plus simple. Il suffit d’installer le paquet node-red-contrib-telegrambot

On se retrouve avec une série de nouvelles fonctions :

A partir de là, on comprend qu’on peut gérer Telegram de deux façons : on analyse les messages reçus (receiver, command & event) ou on envoie des messages (sender, reply). Dans le cas qui nous occupe ici, on va utiliser la commande « sender », car on veut envoyer une notification dans un cas précis. J’expliquerais plus en détail comment on pourra gérer toute sa domotique avec des commandes via Telegram (et comment le sécuriser un minimum aussi).

Là difficulté ici va être de créer un nouveau « bot ». Mais en fait, c’est très facile. On se connecte avec un client Telegram (sur Android, IOS, pc ou même la version web), et il faut commencer une conversation avec le « bot father », le père de tous les bots ! C’est lui qui permettra de créer un bot en posant quelques questions hyper faciles. Il suffit de commencer par /start puis de créer un nouveau bot avec /newbot.Il faut ensuite répondre à quelques questions et on reçoit un token qui permettra de gérer le bot. C’est ce token qu’il faut indiquer dans la configuration du bot de Node-Red.

Avec node-red configuré, on peut avancer.

Envoyer un message avec Node-Red

Une fois le noeud Telegram configuré, il faut encore comprendre quoi lui envoyer.

L’aide du plugin est assez bien faite et je vous l’invite à la consulter.

En gros, j’ai fait une petite fonction javascript pour envoyer un message vers le node « sender », libre à vous de l’adapter à votre besoin. Il faut simplement que le payload soit un object avec chatId, content, type.

msg.payload={}
msg.payload.chatId ="ID_DU_CHAT";
msg.payload.content = "Youpie ca marche !!";
msg.payload.type = "message";
return msg

Pour retrouver l’id du chat (parce que je ne souhaite parler qu’avec le compte télégram lié à mon téléphone et pas à la planète entière), j’ai utilisé un noeud « Telegram Receiver » où la sortie est dirigée vers un debug. On envoie un message à son bot à partir de son téléphone et le chatId apparaît dans le payload dans la console de débug de nodered. C’est magique !

Si cet article vous a plu, inscrivez-vous à la newsletter pour être informé de la publication d'autres articles.

Vous pouvez aussi partager cet article sur les réseaux sociaux

Laisser un commentaire