Jeedom Netgear : Etat de connexion de vos appareils

Je vais décrire dans cet article comment remonté dans Jeedom le status des appareils connectés à un routeur Netgear. J’ai utilisé deux versions de routeur qui ont des versions firmwares différentes. Le premier était un WNR3500L et le second un WNDR3700v5. L’accès à la configuration du WNR3500L ce fait via une interface web classique alors que le WNDR3700v5 dispose d’une interface basé sur des services web SOAP. La version SOAP est très spécifique Netgear par contre la version http doit être adaptable à d’autre type de routeur qui ont une interface web de configuration.

Diagramme des composant

Partie Routeur

Les scripts sont disponible sur gitHub
Les deux scripts font la même chose seul la méthode d’accès aux données du routeur change. Le but est d’interroger le routeur pour obtenir la liste des équipements connectés et leur IP et adresse MAC.

La version http utilise la lib httplib2 pour ouvrir la page device de l’appli web. Le script va ensuite parser la page pour retrouver la liste des équipements connectés    https://github.com/chevalir/cabraJeedom/tree/master/script/netgearHttp

La version Genie utilise elle l’API Soap via un Reverse Engineering proposé ici : https://github.com/balloob/pynetgear

https://github.com/chevalir/cabraJeedom/tree/master/script/netgearGenie

L’équipement est identifié grâce à son adresse MAC ou IP au choix.

Vous aurez donc à éditer le code python pour définir les valeurs des adresses MAC. Pour mettre à jour Jeedom le script  et les ID des commandes jeedom que nous feront dans la partie Jeedom

#                     MacID            OFF  ON   setIP   Name
devicesMng = {'B4:88:P8:85:O6:5P' : (8809, 8808, 8884, 	'iPhone B')
         	, 'B8:O7:5P:A5:5O:8E' : (8844, 8840, 8880, 	'iPod')

 

Partie JEEDOM

Le plus simple est de montrer ce que cela donne en final dans Jeedom :

 

Chaque objet est un équipement créé avec le plugins Virtuel.

Deux info : une pour l’IP l’autre pour le Status ( present ).

Deux actions de type Default pour changer le status (setOn/setOff), une action de type Message (setIP) pour pouvoir définir la valeur de l’info IP.

Se sont les ID ( 2065, 2066, 2092) des actions setOn, setOff, setIP qu’il faudra reporter dans script.

 

Certains équipements n’apparaisse pas dans la liste fournie par mon routeur, les ponts Wifi par example dans ce cas j’ai utilisé le plugins Ping.

Dernière chose à faire est d’appeler le script régulièrement pour que status des équipement soit mise à jour. Une des solution est de le faire avec le plugins Script. Enfin j’ai un scénario qui lance le script et les équipement Ping toutes les 5min.

Voila grâce à tout cela j’ai l’état en temps réel des équipements connectés, cela me permet par exemple de déclencher des scénarios en fonction du retour à la maison des occupants.

chevalir

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *