Une API pour piloter sa box MyFox HC2 !

Comme vous le savez, à la maison je tourne sur les deux HC2: la box HC2 de MyFox pour la partie sécurité, et la box HC2 de Fibaro pour la partie domotique / confort. C’est un choix que j’ai fait, de séparer ces deux domaines. Malheureusement il y a une chose très intéressante que j’ai perdu lors de mon passage de eedomus (qui regroupait sécurité et domotique) vers les deux HC2: l’activation de la simulation de présence quand j’active l’alarme, ainsi que l’extinction de tous les appareils de la maison. Forcément, car les deux box ne savent pas communiquer ensemble ! Etant donné que la sécurité est gérée par la HC2 de MyFox, et que mes éclairages, appareils, etc… sont gérés par la box de Fibaro, difficile de mettre en place une simulation de présence (à moins d’installer des modules Chacon et de tout gérer avec MyFox, bien sûr).

Mais ca, c’était avant ;-) Notre ami Hotfirenet a en effet développé un script PHP pour créer une API pour la box HC2 de MyFox ! Et cela tombe bien, puisque je vous ai expliqué la semaine dernière comment héberger ce type de script sur votre NAS Synology (ou Proliant avec Xpenology, en l’occurence, ce qui revient au même). Nous allons donc voir aujourd’hui comment l’utiliser.

 

I. Mise en place du script

Le script pour l’API de Hotfirenet est disponible directement sur son blog ici.

Pour l’installer, rien de très difficile: il suffit de décompresser le fichier téléchargé, puis de le copier sur votre hébergement. Sur le Nas Synology, nous le mettrons donc dans le répertoire « web ».

 

repertoire

 

Pour la configuration, une seule chose est vraiment importante: le login et mot de passe de votre compte MyFox, qu’il faudra renseigner dans le fichier myFox.php. Ce fichier contient vos informations de connexion au site myfox.me, et également un paramètre pour choisir d’avoir un retour au format texte, jSon (pratique pour la box Fibaro) et XML (plutot utilisé pour l’eedomus ou la Zibase par exemple). Ici, j’en profite donc pour indiquer que je veux le résultat des requêtes en Json (format par défaut).

 

myfox

 

Si vous prévoyez d’utiliser le script depuis l’extérieur, l’API permet aussi d’utiliser une clé de sécurité pour plus de … sécurité. Je ne l’utilise pas ici (utilisation uniquement dans mon réseau local), mais je vous invite à lire les explications de Hotfirenet à ce sujet.

Enfin, dans votre navigateur web, tapez l’adresse http://adresseip-serveur/myAPIFox Une page devrait s’afficher indiquant « Bravo »: félicitations, le script a été configuré correctement.

C’est tout pour la mise en place.

 

II. Commandes disponibles

 

Plusieurs commandes ont été prévues dans cette API (plusieurs ont été ajoutées depuis la toute première version d’ailleurs, Hotfirenet étant très à l’écoute des utilisateurs ;-)

  • http//adresseIpDuSrvWeb/myAPIFox/etat : remonte l’état de l’alarme
  • http//adresseIpDuSrvWeb/myAPIFox/protection/desactivee: désactive l’alarme
  • http//adresseIpDuSrvWeb/myAPIFox/protection/partielle: active l’alarme en mode partielle
  • http//adresseIpDuSrvWeb/myAPIFox/protection/totale: active l’alarme en mode totale
  • http//adresseIpDuSrvWeb/myAPIFox/liste_equipement: liste les équipements installés sur MyFox
  • http//adresseIpDuSrvWeb/myAPIFox/pilote_equipement/on/id_equipement : permet de piloter un équipement en indiquant son ID (obtenu via la commande précédente)
  • http//adresseIpDuSrvWeb/myAPIFox/liste_scenario: liste les scénarios configurés sur MyFox
  • http//adresseIpDuSrvWeb/myAPIFox/joue_scenario/id_scenario: permet de lancer un scénario en indiquant son ID (obtenu via la commande précédente)

 

Pour mon besoin, j’utiliserai surtout les quatre premières commandes, mais le principe sera le même pour les suivantes.

 

III. Liaison avec la HC2 de Fibaro

 

Maintenant que cette API est disponible, l’idée est bien sûr de pouvoir récupérer le statut de l’alarme MyFox dans l’interface Fibaro, voire même de pouvoir la piloter via des scénarios domotiques.

Pour commencer, il vous faudra d’abord créer une variable sur la box de Fibaro:

 

variable

 

Ensuite, il faudra créer un module virtuel sur la HC2 de Fibaro:

 

creer_module

 

On lui donne un nom, puis on crée 3 boutons pour piloter l’alarme, et un « label » pour récupérer et afficher son statut actuel.

 

config1

 

On utilisera le langage Lua pour envoyer les requêtes HTTP nécessaires au pilotage de l’alarme, par exemple:

 

script

 

Pour aller plus vite, maintenant que Fibaro permet l’export des modules virtuels, je vous met à disposition celui que j’ai configuré pour piloter mon alarme et récupérer son statut.

[box_download]Télécharger le module Virtuel MyFox[/box_download]

 

Importez ensuite le fichier du module virtuel sur la box de Fibaro: il vous suffira de changer dans chaque commande l’adresse IP par celle de votre Nas Synology (ou autre serveur hébergeant le script PHP de l’API), ainsi que l’ID du module virtuel par le votre (ici 187). C’est tout !

 

script_complet

 

Vous avez ainsi 3 boutons pour activer / désactiver l’alarme, et une étiquette qui affichera l’état en cours. A noter que pour ne pas surcharger la box ou le serveur en requêtes inutiles, le script ne vérifie l’état de l’alarme qu’une fois toutes les minutes. Ainsi, si vous changez l’état de l’alarme via votre télécommande MyFox, par exemple, le statut sur la box Fibaro ne se mettra à jour que dans la minute. A priori c’est suffisant pour la plupart des utilisations, si vous avez besoin de réduire le délai, il faudra regarder dans le champ « Main » et modifier la valeur du « sleep ».

 

affichage

 

Pour résumer:

  • l’étiquette du module affiche l’état de l’alarme, vérifié toutes les minutes
  • les trois boutons permettent de piloter l’alarme, et mettent immédiatement à jour l’étiquette, en interrogeant le site MyFox, il s’agit donc de l’état réel de l’alarme.
  • dès que l’alarme change d’état, la variable créée sur la box Fibaro se met à jour.

 

Grâce à cette dernière variable, il sera facile de lancer des actions en conséquence sur la box Fibaro, comme par exemple fermer automatiquement les volets quand on active l’alarme en « Total ».

 

fermeture_volets

 

Voilà, nos deux box sont maintenant capables de communiquer ensemble :D

 

IV. Autres utilisations

 

Je vous ai présenté ici un exemple concret qui répondait à mon besoin, mais cette API peut permettre de faire bien des choses. Hotfirenet nous en a d’ailleurs fait une petite démonstration avec SARAH, qui permet donc de piloter son alarme MyFox à la voix:

 

 

On peut imaginer faire la même chose avec son Karotz, un scénario Tasker sur son smartphone Android, etc…

 

V. Conclusion

 

Que dire ? Hotfirenet a fait là un excellent travail, qui nous ouvre de nombreuses possibilités en attendant une éventuelle API « officielle »  délivrée par MyFox.

Un script « simple » avec juste quelques commandes, mais qui nous permettent de faire tout ce qu’on souhaitait. Que demander de plus ? Juste un grand merci à Hotfirenet pour son partage.


5 Commentaires
  1. bjr, tres beau travail,,,,vous avez les logos officiels aussi…lol
    ou méme se les bricolées …

  2. re: je n’ai pas de changement de variable,,, est ce normal, tout est ok , sauf la variable..
    le Main Loop n’effectue pas .?? une idee,( bien changer id,,,mot de cryptage /apiMYFox/123456789/etat.)

  3. Merci Cédric pour cet article très instructif.
    J’aurais néanmoins une question à te poser et je pense ne pas être le seul à vouloir en connaître la réponse :

    – Pourquoi avoir migrer de la box eedomus vers Fibaro et MyFox ?
    En somme, qu’elles sont les critères qui on poussez ton choix à changer ? (Voir autres choses… box autonome etc…)

    Merci pour ta réponse et tes articles toujours au Top :)

  4. +1 :-)
    Cela nécessite d’avoir deux capteurs sur les portes ? une pour Myfox et l’autre pour Fibaro ?

  5. Pour MyFox, je l’ai expliqué ici: http://maison-et-domotique.com/books/installation-lalarme-myfox-hc2/ Essentiellement parce que c’est une vraie solution de sécurité, avec des services adaptés derrière.
    Pour la partie domotique, la Fibaro m’a fait de l’oeil avec son application iPad que je trouve superbe, l’arrivée des plugins avec la V4, ses scripts Lua, et le fait qu’elle soit autonome. La HC2 est un mini PC, donc puissant et très réactif. Je viens par exemple d’installer une douzaine de détecteurs de mouvement Fibaro pour gérer mon éclairage, c’est précis et rapide, quelque chose que j’attendais depuis longtemps. Avec les box qui passent par le cloud, il y a ces 1 ou 2s de latence qui font toute la différence dans ce genre d’application. Mais l’eedomus reste l’une de mes box préférées, d’autant plus qu’aujourd’hui elle supporte aussi les scripts et les plugins.

    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 !