Il y a quelques temps je vous avais expliqué comment utiliser Slack avec Jeedom, notamment pour recevoir une notification quand quelqu’un sonne au portail. Jeedom nous envoyait une capture de la caméra pour voir qui sonnait et nous demandait si on souhaitait ouvrir. Un simple « oui », et le tour était joué. Aujourd’hui je vous propose quelque chose d’assez similaire, mais cette fois avec l’application Telegram.
Si vous ne connaissez pas Telegram, et bien il s’agit d’une application de messagerie connue pour son aspect sécurisé: les conversations sont chiffrées via un protocole nommé MTProto. Ainsi il est très difficile, voire impossible, de récupérer une conversation à travers cette application. Et ceci même sur l’appareil utilisé, car Telegram propose également des conversations secrètes qui se suppriment automatiquement selon un intervalle donné.
Aujourd’hui, près de 100 Millions d’utilisateur lui font confiance chaque mois et ce chiffre ne cesse de grossir. Pratique, l’application est disponible est peu partout: sur IOS, Android, Windows Phone, à travers un site web, et sur ordinateur via une application native (Windows, Mac, linux). Du coup on peut vraiment l’avoir à disposition partout.
Nous allons donc voir aujourd’hui comment communiquer avec Jeedom grâce à Telegram: nous pourrons donner des instructions à Jeedom, et celui ci pourra également nous informer de différentes choses, et même nous poser des questions…
I. Installation et création d’un bot Telegram
On commence donc par installer Telegram, sur la plateforme qu’on souhaite. Ici je l’ai fait sur mon smartphone Android.
Bien sûr, au démarrage, aucune discussion ni aucun contact ne sont disponibles. On va commencer par donner un nom à notre utilisateur. Par défaut, Telegram nous affecte un numéro, un ID, pour nous identifier sur le réseau Telegram. Mais pour plus de facilité, on peut y ajouter un nom d’utilisateur, ce qui permettra de nous identifier plus facilement (et qui sera repris par Jeedom plus loin). Ca se règle simplement dans les paramètres du compte:
Ensuite, on va cliquer sur la loupe en haut à droite pour chercher « BotFather ». Il s’agit en fait d’un bot, c’est à dire un robot, qui va nous permettre de créer d’autres bots. On va justement en créer un pour notre Jeedom.
Une fois trouvé, on clique sur « start » en bas, pour commencer la discussion avec lui. Là, BotFather nous donne une série de commandes possibles pour créer et gérer les bots. Pour lancer une commande, on peut cliquer directement dessus, ou bien la taper. Ici on commence par /newbot pour créer un nouveau bot. BotFather nous demande à alors le nom qu’on souhaite donner à notre bot. Ce sera le nom affiché dans nos discussions.
Ensuite, il faut indiquer un nom « public », qui permettra de le retrouver dans l’annuaire. Oubliez « Jeedom » tout court, c’est déjà pris ;-) Il faudra trouver quelque chose de plus unique. Attention, il faut que le nom se termine par « bot » pour bien identifier qu’il s’agit d’un robot. Enfin, on peut personnaliser le bot, notamment en lui affectant une image. En tapant /mybots, BotFather nous propose la liste de nos robots, et les commandes pour les personnaliser. « Edit Botpic » permet de charger une photo de profil. Ici j’ai simplement chargé le logo Jeedom.
II. Configuration de Jeedom
La configuration de Telegram étant terminée, il ne nous reste plus qu’à configurer Jeedom. On commence par installer le plugin Telegram (gratuit), via le market Jeedom:
Comme d’habitude, on l’active:
De part son aspect sécurisé, pour communiquer avec Telegram, il faudra bien sûr utiliser une connexion HTTPS. Autrement dit, il faudra que l’adresse extérieure pour accéder à votre Jeedom soit quelque chose du genre https://majeedom.quelquechose
Si on se rend dans le menu Analyse / Santé de Jeedom, on trouvera une ligne de ce type:
Bien sûr, si l’état est à « NOK », cela signifie que votre connexion extérieure n’est pas sécurisée, et que Telegram ne peut donc pas fonctionner.
Pour résoudre ce problème il y a deux possibilités;
- installer un certificat SSL sur votre box Jeedom, comme ceux fournis par Let’s Encrypt, gratuitement. Ainsi vous restez indépendant, mais il faudra mettre un peu les mains dans les lignes de commandes. Vous trouverez une méthode dans la doc Jeedom.
- la méthode facile: utiliser les DNS Jeedom, si vous avez un service pack. Grâce à cela, vous avez déjà une adresse https://votrejeedom.dns1.jeedom.com , et il n’y a rien de plus à configurer.
Si vous vous connectez à votre box Jeedom avec cette adresse, vous devriez obtenir un statut OK pour Telegram:
On va donc pouvoir commencer la configuration. On se rend dans le menu Plugins / Communication / Telegram et on ajoute un nouvel équipement. Ici je le nomme simplement « Telegram », vous pouvez lui donner le nom que vous souhaitez. On l’active, on coche bien « Créer les nouveaux contacts », et enfin on renseigne le token relevé plus haut lors de la création de notre bot sur Telegram:
On enregistre, et on retourne dans l’application Telegram sur notre smartphone (ou celle que vous avez utilisé tout à l’heure, ca n’a pas d’importance).
Là, on recherche notre bot Jeedom que nous avons créé précédemment. Une fois trouvé, on engage la conversation avec lui. Un simple « Hello », par exemple:
On revient sur Jeedom, dans notre équipement Telegram créé il y a quelques minutes. On se rend sur l’onglet « Commandes », et là normalement votre utilisateur Telegram, celui avec lequel vous avez envoyé « Hello », doit apparaitre:
Ici, en face de l’utilisateur, il faut bien cocher « Interactions ». Cela signifie que les messages envoyés par cet utilisateur pourront passer par le moteur d’interactions de Jeedom, et donc déclencher des actions. C’est une bonne sécurité, car votre bot Telegram pouvant être trouvé publiquement, il ne faudrait pas que quiconque puisse piloter votre Jeedom. Si cette case en face de l’utilisateur n’est pas cochée, l’utilisateur recevra toujours un message du type « je ne comprend pas la demande ».
Maintenant que votre utilisateur a été reconnu, vous pouvez d’ailleurs décocher la case « créer automatiquement les contacts » sur l’écran principal de l’équipement.
Sur votre tableau de bord Jeedom, vous pouvez maintenant voir s’afficher ce widget, qui permettra d’envoyer un message à un utilisateur précis de Telegram, ou à tous (vous pouvez en effet avoir un compte pour chaque membre de la famille par exemple).
Si on revient sur l’application Telegram, on peut maintenant discuter avec notre Jeedom. Il faut bien sûr que vous ayez quelques règles d’interactions déjà créées.
Exemple chez moi, si je demande à allumer la lumière, ou encore la température du jardin, Jeedom me répond instantanément:
III. Interaction entre Jeedom et Telegram
Pour l’exemple, je vais reprendre le cas de mon portier vidéo Mobotix. Je ne reviendrai pas sur la configuration de celui ci, je l’ai déjà expliquée dans l’article avec Slack, je vous invite donc à consulter celui ci.
Je pars donc du principe que mon portier est correctement configuré. Quand on sonne sur celui ci, un scénario Jeedom est donc lancé, via une requête HTTP. Le scénario en question est celui ci (cliquez pour zoomer):
On utilise donc la commande Ask, qui permet à Jeedom de nous poser une question. Pour l’utiliser, on doit tout d’abord créer une variable, ici « asknSonneTelegram ».
Ensuite, j’envoie une capture photo de la caméra de mon portier (ca pourrait être tout aussi bie une caméra tout simple pointant vers votre entrée), via Telegram.
J’attend 5s pour que les infos arrivent dans le bon ordre sur Telegram.
Puis j’envoie une commande « Ask » sur Telegram me demandant si je veux ouvrir le portail. Les réponses possibles sont Oui ou Non, et j’ai 5min pour répondre (300 secondes). La réponse est stockée dans la variable « askOnSOnneTelegram »
Là, si je répond « Oui », Jeedom déverrouille la gâche électrique du portillon. Si je répond non ou que je met plus de 5min à répondre, il me répond simplement « OK » et ne fait rien.
Concrètement, dans Telegram, on recoit ceci:
Pratique, les réponses possibles s’affichent directement en bas de l’écran: ici nous avons donc deux boutons « Oui » et « Non ». Il suffit de cliquer dessus pour répondre. Même pas besoin de taper sa réponse :)
On peut ainsi déclencher n’importe quelle action, comme par exemple demander s’il faut activer l’alarme quand plus aucune présence n’est détectée, fermer les volets si du mauvais temps est annoncé, etc…
IV. Conclusion
Je ne connaissais pas tellement Telegram avant de m’être penché dessus pour cette utilisation, mais je dois dire que l’application est pratique, facile à utiliser, et sécurisée, point très important. Le fait qu’elle soit disponible sur tous les systèmes est également un vrai plus. Personnellement, Telegram vient en complément de Slack, pour une utilisation différente:
- la journée, quand je travaille, je suis la plupart du temps sur l’ordinateur, avec Slack qui est utilisé pour communiquer avec les collègues. Il est donc pratique de recevoir les messages de Jeedom également sur Slack: tout est regroupé, cela m’évite d’avoir plusieurs logiciels (car j’aurai pu avoir aussi l’application Telegram sur l’ordinateur).
- en dehors du travail, en revanche, Slack n’est pas toujours lancé. Du coup je suis plus facilement joignable sur mon mobile. Certes, Slack est disponible aussi sur mobile, mais les boutons préconfigurés avec les actions Jeedom est un vrai plus à mon avis pour simplifier encore l’utilisation, notamment pour madame ;-)
Au final, j’ai modifié un peu la configuration de mon portier. Il déclenche ce scénario:
En fonction du mode de la maison « Absent » ou « Present », Jeedom me contacte via un canal différent, Slack ou Telegram.
Accessoirement, si vous utilisez également IFTTT, sachez que Telegram a un canal dédié depuis peu, qui vous permet de recevoir des messages de divers services sur Telegram via IFTTT ;-)