..:: Domotique Store : Le Blog ::..
Articles Clients Box Domotique Tous les articles

Piloter sa Freebox Révolution avec sa box domotique – Acte 2 : FreeboxOS

Suite à la mise à jour de nos Freebox Révolution survenue il y a quelques semaines, je vous propose aujourd’hui une mise à jour de la classe PHP que je vous avais proposé peu avant le passage sous Freebox OS (vous pouvez retrouver mon article ici) et qui vous permettait de faire communiquer vos box domotique et internet.

La mise à jour proposée par les développeurs de chez Free, en plus d’amener une nouvelle interface graphique, des applis Androïd et Apple ainsi que de nouvelles fonctionnalités, intègre l’ajout d’un serveur REST API permettant de développer sa propre application s’interfaçant avec sa Freebox. La création de cette API officielle va rendre obsolète le script PHP que je vous avais proposé il y a peu.

L’API Freebox OS :

Ce qu’il faut savoir tout d’abord, c’est qu’une documentation officielle pour développeurs est disponible ici  pour pouvoir dialoguer avec la Freebox facilitant ainsi les développements locaux.

Cette API rend disponibles de nombreuses actions / informations du boitier Server et cela en par fonctions classées en différents groupes : Téléchargements, Système de fichiers, Air Media, RRD, Appels / Contacts, Configuration, Stockage, Filtre parental, etc…

Elle fait aussi appel à une authentification différente. En effet, il n’est plus nécessaire de renseigner son mot de passe Freebox pour pouvoir utiliser l’application. Il vous faudra l’autoriser directement depuis la face avant de votre Server, en cliquant sur la flèche droite (= Oui) lorsque le message s’affichera.

NB : par défaut, l’accès aux parties Configuration et Contrôle parental de l’API n’est pas autorisé. Il faudra les aussi les valider via mafreeebox.freebox.fr -> Paramètres de la Freebox -> Gestion des accès.

Enfin, l’authentification se fait via un système de jetons (tokens). Si l’authentification ne fonctionne plus, je vous invite à supprimer le fichier « token » qui a été créé dans le même dossier que les fichiers de la classe PHP et de retenter une authentification.

La classe PHP Freebox :

Cette classe PHP (téléchargeable ici) permet d’accéder à tout ce que propose l’API Freebox OS. Chaque groupe de l’API Freebox OS est traité dans une sous-classe PHP dédiée. Ainsi, pour avoir accès aux fonctions de la partie « Configuration » de l’API Freebox OS, on fera appel (on va voir comment un peu plus bas) à la sous-classe « Configuration » stockée dans le fichier « Configuration » du dossier API.

Afin de faciliter le développement PHP, j’ai repris les mêmes noms de fonctions de l’API Freebox OS. Ainsi, pour connaitre l’état de la connexion Internet, on va utiliser la fonction « Get the current Connection Status » de l’API Freebox OS, fonction du groupe Configuration. En PHP, on fera alors appel à la fonction « GetConnnectionStatus() » de la classe PHP « Configuration ».

 

Dans la classe PHP que je vous propose, vous retrouvez, en plus des fichiers de classe, un fichier freebox.php qui reprend les mêmes exemples que lors de mon précédent article. Seuls les chemins Xpath ont été amenés à changer.

Ainsi, pour accéder à l’état de sa connexion internet, le chemin Xpath sera désormais :

/freeboxOS/Configuration/GetConnnectionStatus/state

Pour connaitre l’espace disque disponible, il vous faudra patienter quelques jours le temps que j’inclue le module « Storage » de l’API Freebox OS dans cette classe PHP.

Toutefois, dès aujourd’hui, il vous est possible de consulter la liste des appels (entrants, sortants, manqués). Le chemin Xpath sera (pour le dernier appel) :

/freeboxOS/Calls_Contacts/GetCallsList/id-0

Pour lancer une commande sur la Freebox, rien de plus facile, il vous suffit de reprendre les mêmes commandes que précédemment, légèrement modifiées :

  • Eteindre la carte wifi : https://IP/freebox.php?do=wifi&val=off
  • Allumer la carte wifi : https://IP/freebox.php?do=wifi&val=on
  • Rebooter la box : https://IP/freebox.php?do=reboot
  • Rebooter la box après XX secondes : https://IP/freebox.php?do=reboot&val=XX  -> Cette commande n’est plus disponible
  • Régler la luminosité de l’afficheur LCD à XX% : https://IP/freebox.php?do=lcd_brightness&val=XX

Je vous invite à jeter un coup d’oeil dans le code PHP du fichier freebox.php pour avoir la liste de toutes les commandes actuellement disponibles, et dans la documentation de l’API Freebox pour toutes celles nouvellement possibles.

Pour les développeurs, ne travaillez que sur un seul fichier PHP, sinon il y aura autant de demandes d’accès à l’API (et donc d’appli différentes  vu de la Freebox) que de fichier différents que vous appelez.

Tutoriaux à venir :

Cette API Freebox OS étant plus développée que celle qui était utilisée jusqu’alors, je vais vous proposer au travers de quelques articles à paraitre ces prochains jours, des petits tutoriels très simples pour exploiter à fond cette nouvelle classe PHP.

0
0
Fabien

J'ai découvert la domotique un peu par hasard en 2011. J'ai eu l'occasion de tester diverses solutions grand public ou home made. Aujourd'hui ma domotique est basée sur une eedomus avec quelques scripts développés localement.

Laisser un commentaire