Piloter Jeedom à l’aide de Telegram

53

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.

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

telegram_app_02Ensuite, 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.

telegram_app_03Une 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.

telegram_app_04Ensuite, 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.

telegram_app_05

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:

telegram_jeedom_01Comme d’habitude, on l’active:

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

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

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

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

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

telegram_jeedom_07Ici, 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).

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

telegram_app_07

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

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

telegram_app_08Pratique, 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:

scenario_onsonne_globalEn 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 ;-)

telegram_ifttt

Partager

53 commentaires

  1. Merci pour ce bel article. Petite question, comment fais tu pour qu’il comprenne la question de la température et te renvoie la bonne information ?

  2. Tout se passe dans la configuration des interactions dans Jeedom. Faudrait que je fasse un tuto à ce sujet, car une fois maitrisé, on fait vraiment des trucs supers avec.
    Si ca peut te mettre sur la voie, dans mon interaction pour la température, j’ai:
    En demande: #commande# [dans la|dans le| |de l’|de la|du|à l’] #objet#
    En synonyme: température=combien fait-il,il fait combien,quelle est la température,donne moi la température|jardin=terrain,dehors,extérieur
    En réponse: il fait #valeur# #unite# dans #objet#

    Ainsi la même interaction me permet de connaitre la température de n’importe où à la maison, et avec des demandes différentes, histoire de pas chercher la phrase exacte que j’aurai défini.

  3. Bonjour,
    Merci pour cette article super bien expliqué…
    J’ai installé Telegram sur Jeedom il y a 1 semaine, et avec cette article j’aurai gagné du temps !! :-)
    Je suis intéressé pour ajouter un utilisateur (un autre mobile) dans le même groupe afin de pouvoir envoyer des messages séparés et à tous mais impossible à faire … si j’installe un autre bot sur un autre smartphone, j’ai un autre token … mais quoi en faire !!
    Si jamais tu sais comment faire, je suis preneur !!!

  4. Bonjour,

    J’ai bien suivi le tuto, mais je n’ai pas la case à cocher « interactions » à côté de l’expéditeur.
    Quelqu’un a-t-il eu ce problème ?

    Merci et bonne soirée.

    Nicolas

  5. @hetneo, c’est simple tu laisse cocher « créer les nouveaux contacts » tu interpelle ton bot avec un nouvel utilisateur (puisque celui-ci est aussi publique comme tous les bot telegram) et tu le trouve dans les liste des commandes puis tu décoches « créer les nouveaux contacts »

    • Pour ma part j’ai eu ce problème car je n’avais pas de « surnom » associé à mon compte Telegram. En l’aoutant, il faut retester l’interpellation puis recharger le module sous Jeedom … tout devrais être ensuite OK !

  6. Bonjour,

    J’ai trouvé pourquoi je n’avais pas la case interactions. Je n’avais pas associé de nom d’utilisateur à mon Telegram. Du coup il ne remontait que le numéro d’utilisateur. Après l’avoir rajouté et recommencé la procédure d’ajout sur Jeedom tout fonctionnait :)

    Bonne journée.

  7. Bonjour,

    Déjà merci pour le tuto.
    Je suis incapable de faire fonctionner telegram ( problème https).
    Mes connaissances dans ce domaine sont limitées.
    Connaîtriez-vous un logiciel de communication similaire, mais sans la securité « https », et qui, tout comme telegram, permet d’afficher le choix des réponses directement « cliquable » sans avoir à saisir la réponse.

    Merci d’avance.

    • Vous ne pouvez pas utiliser les DNS Jeedom ? Comme expliqué, en passant par eux, on bénéficie automatiquement du https, sans avoir besoin de faire quoique ce soit.
      Sinon, sans utiliser le https, et qui permette le choix des réponses « cliquables », je ne connais malheureusement rien d’autre. Si quelqu’un d’autre a une idée ?

      • Merci de votre réponse.

        Je suis en pack community je n’ai donc pas les DNS Jeedom.
        Mais le passage au pack power me coûterait 50 € juste pour me rajouter l’ajout des DNS, donc pas prévu.

        Merci.

  8. Super tuto. Dans le client telegram sur mac, le choix oui,non s’affiche comme un bouton. Est-ce qu’il est possible de générer deux boutons ce qui permettrait d’interagir par clique sur un bouton oui ou un bouton non ?

  9. Juste génial !!!

    Merci, manque plus qu’à trouver une solution pour appeler des scénario ou des interactions depuis Telegram … c’est prévu ? Une idée ?

      • Heu j’ai loupé un truc ???

        Oui avec une requête HTTP mais ca, c’est pas géré dans Télégram ! Je me trompes ?

      • Va vraiment falloir que je fasse un tuto sur les interactions Jeedom ;-)
        En fait, dans Telegram, quand tu envoies un message à Jeedom, tu déclenches une interaction. Et une interaction pilote un appareil ou un scénario. Dans mon exemple, quand je répond « oui » au message que m’envoie Jeedom, je lui demande en fait de déverrouiller la gache électrique. C’est une interaction, il n’y a pas d’appel http ou autre.

      • OK je résume :

        Ton portique envoi bien une requete HTTP qui appel un scénario
        Dans ton scénario, tu as un ASK qui envoi la question à Telegram
        La réponse saisie sur Télégram est interpretée en interaction et le scénario continue en prenant en compte la valeur de la réponse

        C’est bien ca ? Moi j’ai essayé de créer une interaction qui se déclenche à l’envoi d’un message depusi Télégram mais ca marche pas …

      • Pour le cas de mon portail, oui.
        Mais j’ai d’autres interactions comme par exemple « quelle est la température de telle pièce », « fais le ménage », ouvre les volets », etc… Je saisie directement ces phrases dans Telegram, et cela déclenche un scénario sur Jeedom.
        La case interaction à côté de l’utilisateur Telegram, dans Jeedom, est bien cochée ?
        Tu as bien un nom d’utilisateur sur Telegram, et pas juste un numéro ?

        Quand tu envoies un message à Jeedom via Telegram, ca te répond quoi ?

      • Oui j’ai bien tout ça mais Télégramme ne répond rien ! Veux tu que je crée un post sur le forum ?

  10. Bonjour,

    J’ai l’erreur suivante, le plugin ne fonctionne pas:

    https://MON_IP_LOCAL:443/plugins/telegram/core/api/jeeTelegram.php?apikey=MACLEF=41
    {« ok »:false, »error_code »:400, »description »: »Bad Request: bad webhook: Ip is reserved »}

    J’utilise mon IP interne, je n’ai pas ouvert le flux ( externe vers interne )
    Le certificat est bien installé, je n’ai pas de nom de domaine également.

    Ce plugin, ne fonctionne pas comme telegram-cli ?

    Merci par avance pour votre aide…

  11. Bonjour,
    Merci pour le tutoriel, que j’ai suivi.
    Cependant dans « commande » j’ai 4 lignes: une avec mon pseudo et j’ai bien « interactions » sélectionné, une « Message » et une « Tou »s mais également une « Expediteur ».
    J’ai l’impression que cette dernière perturbe les échanges car du coup je reçois des réponses « Je ne comprend pas » malgré que « interactions » soit bien coté.
    Une idée de pourquoi j’ai une entrée « Expediteur » que je n’arrive pas à supprimer ? Quand je la supprime, elle est automatiquement régénérée.
    Merci pour votre aide.

  12. Personne n’a une idée pourquoi j’ai 1 entrée « expéditeur » dans Commandes en plus de mon pseudo (avec interaction cochée), « message » et « tous » ?
    J’ai tout installé de zero mais même résultat.

  13. Bonjour

    J’ai déroulé tout le tuto, installé le certificat SSL. Le Jeedom est bien accessible de l’exterieur (bien que j’ai NOK dans Configuration / Reseaux, la santé du plugin Telegram est bien OK). J’ai recréé plusieurs fois le bot, modifié le token,… Mais impossible de recevoir le moindre message. Quelqu’un aurait une idée ?

  14. Merci pour l’article, j’ai crée le même scénario mais pour mon aspirateur Neato, ça me pose bien la question, mais si je réponds Oui (ou Non) la variable n’est pas prise en compte (La variable reste vide) du coup c’est le Else qui rentre toujours en compte… une idée?

  15. Bonjour,

    Merci pour le tuto, il est génial.
    Néanmoins, je bloque pour la prise en compte de mon utilisateur par le plugin sous Jeedom.
    La santé Telegram est bien OK.
    Lorsque j’envoie « hello », j’ai bien les 2 petites encoches qui disent que le message est parti et lu.
    Mais dans mon équipement Telegram créé, quand je vais dans les commandes, je n’ai que les lignes « expéditeur », « message » et « tous ».
    Je suis sous iOS.

    Qu’est-ce que j’ai pu rater ?
    Merci.

      • Antoine Maugy le

        Non.
        J’avais commencé à m’y intéresser car j’avais des soucis pour faire fonctionner les notifications PushBullet sur mon iPhone.
        Mais, après avoir recréé mes devices dans le plugin PushBullet, ça a fonctionnée nickel.
        Donc j’ai abandonné l’utiliation de Telegram.

  16. Bonjour Cédric,

    Je relance un peu le sujet voulant de nouveau essayer Telegram.
    Ma config actuelle est un Jeedom 2.4.6 sur Raspberry et un iPhone7 à jour.
    J’ai bien suivi ta doc (encore) et ça ne fonctionne pas au moment où j’envoie le message à Jeedom depuis mon iPhone.
    Sur l’iPhone, le message semble envoyé et lu.
    Mais sous Jeedom, je ne vois pas apparaître mon utilisateur avec mon n° de téléphone.

  17. Pour ceux qui ont des soucis et ne voient pas le nom d’utilisateur apparaître, mais ont la double coche dans l’application telegram, verifiez dans la config reseau de Jeedom que votre adresse externe est bien sous la forme résolue, et pas sous forme d’adresse IP. Genre marchintruc.dyndns.org et non 123.123.123.123
    Après avoir corrigé cela j’ai reçu la totalité des réponses télégram instantanément…

  18. Merci Cedric,
    je viens de suivre ton Tutoriel pas à pas et j’ai eu le résultat escompté !
    C’est génial cette trouvaille.

    Maintenant, j’étudie les interactions dans Jeedom.

    A+
    Phil

  19. Merci RPOUETPOUET pour l’info.

    Pour ma part, ça ne fonctionne toujours pas car je n’arrive pas à attaque mon Jeedom en HTTPS (malgré la redirection du port 443 vers mon raspberry dans ma box internet).
    dèes que je saisis l’URL du type https://mon.jeedom.com, ça me dit que le site est inaccessible.
    En revanche, en HTTP, la redirection du port 80 se fait bien et http://mon.jeedo.com me renvoie bien sur l’interface web de jeedom.
    D’ailleurs, quand je renseigne l’accès externe, dans la config réseau de Jeedom, avec du HTTPS et port 443, ça me marque « NOK ».
    Et « OK » si je laisse HTTP et port 80.

  20. Bonsoir,
    Super tuto, tout fonctionne parfaitement.
    Juste un point au niveau confidentialité de Telegram, tu ne parle pas des modes « Allow Groups » et « Group Privacy », qui permette de privatiser le Bot.
    C’est a dire que personne peut ajouter le bot créé à un groupe, et du coup cela évite d’être spamer.
    Cela se trouve dans « botfather, /mybots, selection du bot, bot settings ».

  21. Bonjour à tous,

    L’application doit elle fonctionner en arrière plan sur iPhone ? Lorsque l’application est coupée, je ne reçois pas, obligé de l’ouvrir….
    Une solution ?

    merci !

  22. Bon,bon bon…. bonjour

    je suis bien en HTTPS
    configuration du bot -> OK
    copie du token -> OK
    ( les logs disent OK )
    Nom et Prénom ( et username) dans telegram -> OK
    Envoie du message de telegram à mon bot -> OK ( 2 coches vertes )
    Par contre, je ne vois rien dans jeedom….. rien dans mes logs….

    Quelqu’un aurait une idée ?

    MErci

Laisser un commentaire

Ne ratez plus aucune news !

Inscrivez vous à notre newsletter, et recevez chaque mois toute l'actualité du blog pour ne plus rien louper: actualité, guides, tutoriaux, concours !

Merci pour votre inscription !