
Accéder à Jeedom à distance sans DynDNS
Contents
Introduction
Il peut être intéressant d’accéder à Jeedom à distance. Pour prendre des nouvelles de la maison, de l’installation ou des enfants. Ou alors pour bosser dessus pendant un creux au boulot… (non, pas bien !).
Je vais te proposer proposer ici une astuce que j’avais mis en place il y a quelque temps. Elle ne me sert plus parce que mon environnement techniques a évolué mais peut être pourra-t-elle t’être utile. Pour ce faire, je vais expliquer quelques principes de bases. Si tu veux aller à l’astuce directement, Tu peux aller directement à mon astuces si tu connais déjà tout ça.
Pour me passer de DynDNS je m’envoyais l’IP Publique par notification PushBullet.
Principes
Pour accéder à Jeedom à distance, ou n’importe quel équipement IP sur son réseau domestique il faut l’IP Publique de la box. C’est une IP routable sur internet, contrairement à celles des équipements de ton LAN (réseau domestique).
Pour pouvoir aller sur internet depuis un LAN, il y a un mécanisme qu’on appel NAT (par abus de langage, en réalité il s’agit de PAT) qui permet d’emprunter l’IP Publique de ta box pour sortir. La box sait ou vont les machines et sait les différencier. Sinon on retrouverai la page Facebook de sa femme ou le porno de son colocataire.
Ce qui t’intéresse ici, pour accéder à Jeedom à distance, ce n’est pas de sortir, mais de rentrer dans le réseau. Il faut donc l’IP de la box, tu peux la trouver sur ifconfig.me/ip.
On a une bonne base, mais la box de ton opérateur à une mission: te protéger. Alors pour sortir, tu fais ce que tu veux… mais les trucs qui rentrent… elle aime pas, elle bloque. Et quand bien même elle ne bloquerait pas, tu te retrouverai sur la page d’administration de ton modem. Ce n’est clairement pas ce qui t’intéresse.
Alors du coup, il faut configurer ta box pour qu’elle accepte de laisser entrer certaines choses et où les rediriger. On appelle ça une ouverture de ports ou translation de port dans le cas ou celui d’entrée n’est pas le même que celui de sortie.
Comment
Deux cas de figure, soit tu as une ip publique fixe (qui ne change jamais), soit une ip dynamique (qui change régulièrement ou à chaque redémarrage de la box).
Pour savoir dans quel cas tu es:
- Si tu es chez Orange et Fibré, c’est un ip fixe
- Chez Orange, dans les autres cas c’est du dynamique (sauf cas particulier, contrat, option etc)
- Pour les autres opérateurs, je ne sais pas. Le mieux est de vérifier ton ip publique sur ifconfig.me/ip, redémarrer ta box et revérifier l’IP, si elle a changé tu es fixé =)
Cas d’une IP Fixe
Facile, tu as juste a enregistrer l’adresse (http://ip:port/chemin) dans tes favoris. Ne manque que la configuration de la box. Bien que cela soit une ouverture de ports ou une translation de port, cette configuration se trouve dans la partie NAT/PAT de ta box, voila pourquoi je t’ai embêté avec ça =)
Du coup tu n’as pas besoin de mon astuce, juste à configurer ta box.
Cas d’une IP Dynamique
Moins facile… vu quelle change et qu’on ne peut pas la deviner à distance. On va devoir ruser et faire en sorte de recevoir l’info… de jeedom lui même. Il y a la solution DunDNS mais comme le titre le dis « accéder à jeedom sans DynDNS »…. C’est tellement casse pied, soit faut payer, soit faut les réactiver tout les X temps… une calamité.
Sauf si tu as ton propre nom de domaine et que ton hébergeur te propose des zones Dynamiques la ça va, ou encore mieux, t’es un maso et tu as ton propre serveur DNS.
PushBullet
PushBullet est un service « gratuit » qui permet d’envoyer des notifications sur des appareils. Il permet aussi (accessoirement) de lier son compte avec des amis pour discuter comme dans un chat.
Je t’invite à créer ton un compte ajouter le plugin dans Jeedom. Une fois le plugin ajouté il faudra l’access token:
Dans Settings:
Account:
Et enfin, « Create access token »:
Copie le code dans la configuration du plugin de PushBullet:
Evidemment, on peut utiliser plusieurs autres services de communications. Slack, Pushover, mail etc…
Partie Jeedom
On va utiliser le plugin Script. On ajoute un objet script, on lui donne un petit nom et le programmer pour s’exécuter tous les jours.
Dans les commandes, on redonne un nom, on choisi le type HTTP, Info et type d’info à Autre. La requête: ifconfig.me/ip
Ensuite, on fait un scénario pour s’envoyer l’information (l’IP publique) quotidiennement via PushBullet:
Il enregistre l’ancienne valeur d’IP récupérée à la dernière occurrence dans une variable « -1 », il rafraîchit la valeur d’IP et compare l’ancienne avec la nouvelle. Si elles sont différentes, il t’envoie une notification avec l’info sinon rien.
Ou Port est le port externe configuré sur la box. Moi j’ajoute /jeedom parce que je l’ai mis dans le dossier… si ce n’est pas ton cas, ne met rien =)
Enfin, programmé tous les jour à 10h00 pour pas être réveillé par la notification:
Configuration de la Box
Orange
En général ce paramètre ce trouve dans « Paramètres avancés > NAT/PAT ». Sur la V4 c’est la « Roue dentée > Réseau > NAT/PAT ».
La, tu trouveras un tableau (vide normalement). Dans l’ordre, choisir un service ou en donner un nom, les deux cases suivantes sont les ports internes et externes respectivement le port que t’utilise habituellement pour accéder à Jeedom et le port que tu voudras utiliser pour accéder à jeedom à distance une fois tout ça fini (le même en général). La dernière case c’est le protocole, dans ton cas c’est du TCP.
Comme ça par exemple:
Jeedom | 80 | 80 |tcp
T’enregistre et c’est bon.
Attention toute fois, si tu mets plusieurs règles d’ouverture de port. Un même port externe ne peut pas être utilisé plusieurs fois. Si les machines sur lesquels tu voudrais avoir accès à distance utilise le même port tu devras utiliser un autre port externe ou modifier celui de ta machine.
SFR
La, je ne suis pas expert du tout, j’ai été client SFR pendant un an mais je ne me rappelle plus vraiment comment faire.
Donc, de mémoire, dans le menu « résau > NAT », pareil il fazut nommer la règle de NAT, ensuite c’est la même philosophie. Port Interne, port Externe, ip de destination (celle de la jeedom). Il me semble qu’il y a des histoire d’activation enfin c’est plus clair.
Je suis tombé sur cette image pour me rappeler:
Il semblerait que SFR propose un « type », choisis « Port ». L’autre devrait être adresse je pense pour rediriger tous les flux vers une machine.
Bouygues
Littéralement aucune idée, je n’en ai jamais eu. J’ai été client mobile longtemps, mais jamais fixe…
Je t’ai trouvé ça, il est pas très à jour sur les interfaces de ceux que je connais mais comme je l’expliquais avant, les opérateurs aiment bien garder leur « philosophie »:
https://craym.eu/tutoriels/utilitaires/ouvrir_les_ports_de_sa_box.html#bbox
Un mot sur les interractions
Alors bien entendu, on peut remplacer le scénario par une interaction. Ça économiserait des ressources (l’éxécution quotidienne du scénario, du script). Mais, soucis d’automatisation passe au dessus de l’utilisation des ressources. D’autant que ces ressources son minimes et exécutées, dans 90% des cas, à des moments ou elles sont moins nécessaires.
Néanmoins voici un exemple d’interactions:
Ne pas oublier de cocher « ce device recevra les réponses d’interaction » dans votre objet Pushbullet (ou autre) si tu veux passer par le champs réponse.
Conclusion
Ben voila, tu vas recevoir tous les jours le lien pour accéder à jeedom à distance.
Pour être honnête je ne trouve pas ça très propre. Mais les service DynDNS ne sont vraiment pas top. Cette méthode la n’est pas fiable à 100% (si l’IP change après l’envoi de l’info). Mais, pas a avoir à payer, ou a réactiver le service tous les mois.
A+ =)
Bonjour,
Avec Slack il y aura un problème car sa configuration pour envoyer des messages vers Jeedom, demande un nom DNS. (http://mon-domaine:80/plugins/slack/core/php/jeeSlack.php?apikey=Cxxxxxxx la clés)
Il y a t’il une solution de mettre à jours le champ automatiquement avec l’ip et non le DNS ?
Salut Ska,
Il faudrait, pour ça pouvoir modifier à la volée l’outgoing webhook de slack. Ce qui risque d’être difficile, le mieux je pense, serait de regarder si une API permet de le faire chez eux. Mais je n’y crois pas trop 🙁
A+
Pourquoi ne pas utiliser les dns de Jeedom ? https://www.jeedom.com/blog/2687-le-dns-jeedom/
L’avantage est que cela fonctionne très bien. et que cela va permettre d’être en HTTPS, Une fois en https, on peut utiliser un service comme Telegram pour interagir avec la box (notifications ou commandes).
Bonjour Nicolas,
Pour être honnête, je ne m’y suis jamais intéressé. Partant du postulat que le DDNS n’est pas un service que j’apprécie.
Mais, les personnes chez qui j’ai installé Jeedom sont en ADSL je verrai pour tester la solution de Jeedom avec leur machine. Si c’est possible, je te ferai un petit retour.
Il faut aussi avouer que j’aime bien Jeedom car il tourne sans reposer sur un service externe. Cette méthode permet de maintenir ce cap.
L’astuce peut aussi servir de solution de secours en cas de problème.
Merci, à bientôt =)
Je pense que c’est justement le but de l’article, ne pas utiliser de DNS.
Hello ça fonctionne toujours cette méthode ? J’obtiens un access denied sur /ip
Salut,
Non, effectivement, le user agent a du être bloqué par le site puisque j’y ai accès avec un navigateur… je vais chercher une alternative.
En même temps, j’ai une ip fixe moi donc je ne m’en sers vraiment plus.
Cdt,
Hello,
EN attendant il semblerai que « ipinfo.io/ip » puisse être utilisé. J’ai vu pas mal de script sur le net qui scrappent dessus, ils ne semblent pas pas bloquer avec le temps.
Cdt,
Hello, pour info dans mon script je prends uniquement ce lien et c’est ok
checkip.amazonaws.com
À+