Cette page n’est plus d’actualité depuis la sortie officielle de l’api Myfox
En janvier 2014 j’ai sorti mon plus beau Notepad++ et j’ai écrit une petite API pour la centrale d’alarme My Fox en PHP. Vous voulez savoir le pourquoi du comment ?
Version 1.0:
- Changer le niveau de protection,
- Retour en texte ou JSon
Version 1.1 du 20 janvier 2014:
- Refonte de la partie URI
- Simplification de la partie URL
- Mise en place d’un fichier de paramètres
- Ajout de l’état du niveau de protection
Édit du 21 janvier 2014:
Le site de My Fox à une limite de connexion sur la durée. je vais essayer de quantifier.
Version 1.2 du 29 janvier 2014:
- Correction d’une erreur de variable dans le constructeur
- Mise en place d’un système de log
- Modification de la méthode CheckProtectionState pour être plus juste sur la recherche de l’état
- Ajout de la partie sécurité de Cyril LOPEZ
- Amélioration du système de connexion
- Ajout d’une méthode qui liste vos équipements
- Ajout d’une méthode qui pilote vos équipements
- Amélioration du système d’URI qui supprime le problème de NOTICE
Version 1.2.1 du 03 février 2014:
Mise en place d’une pseudo installation qui:
- Vérifie que le module Rewrite d’apache soit activé
- Vérifie que l’extension curl soit bien activée
- récupère le path ou est installé le dossier myAPIFox et renseigne le .htaccess.install
- Renomme le fichier .htaccess.install en .htaccess
Version 1.3 du 09 février 2014:
- Mise en place d’un système de cache suite à un problème remonté par Cédric LOCQUEUNEU
- Ajout d’un retour en XML (pour Alban)
- Ajout d’une méthode qui liste les scénarios
- Ajout d’une méthode qui joue les scénarios
- Refonte de la méthode getMessage celle-ci renvoie txt, json et XML
- Ajout d’un paramètre debug dans le fichier myFox.php
- Mise en public de la variable etat
- Ajout d’une nouvelle fonction qui active ou désactive suivant l’état.
Version 1.3.1 du 13 février 2014:
- Correction d’un bug mineur de retour sur le changement d’état.
Pré requis pour le bon fonctionnement de l’API MyFox:
- Une centrale MyFox HC2,
- Un compte MyFox,
- Un serveur web apache avec PHP,
- Activer le module rewriting dans la config d’apache,
- La librairie CURL d’activée.
Installation de l’API sur votre serveur
Il vous suffit de déziper l’archive et de copier le contenu sur votre serveur web.
Configurer l’API
Avant toutes choses je vous invite à ouvrir un navigateur et saisir:
http://adresseIpDuSrvWeb/repertoireSiIlya/myAPIFox
Si vous obtenez cette page, c’est tout bon ! Sinon le message d’erreur est explicite.
Maintenant que vous avez pu voir si les prérequis étaient respectés vous devez éditer le fichier myFox.php, celui-ci contient vos informations de connexions au site myfox.me, et également un paramètre pour choisir d’avoir un retour au format texte, jSon et XML.
Le 29 janvier 2014:
Une clé de sécurité a été ajoutée pour protéger le script. L’idée et le code ont été fourni par Cyril LOPEZ. ce paramètre est optionnel. Vous pouvez la configurer depuis le fichier myFox.php.
La clé doit se trouver dans l’url en première position, ce qui donne:
http://adresseIpDuSrvWeb/repertoireSiIlya/cleDeSecurite/etat
Pour utiliser et vérifier que tout fonctionne, ouvrez un navigateur web (firefox, chrome) et faites :
http://adresseIpDuSrvWeb/repertoireSiIlya/etat
Exemple :
http//192.168.1.22/myAPIFox/etat avec la clé de sécurité http//192.168.1.22/myAPIFox/ZNnKLP351dULF6R0GW3j/etat
Vous devriez avoir :
Exemple d’utilisation de l’API:
L’utilisation de l’API se fait par URL pour vous faciliter la vie. chaque url possède un message de retour soir au format texte soit au format jSon.
Connaitre le niveau de protection de l’alarme:
http//adresseIpDuSrvWeb/myAPIFox/etat avec la clé de sécurité http//adresseIpDuSrvWeb/myAPIFox/ZNnKLP351dULF6R0GW3j/etat
Changer le niveau de protection de la centrale My Fox:
http//adresseIpDuSrvWeb/myAPIFox/protection/desactivee http//adresseIpDuSrvWeb/myAPIFox/protection/partielle http//adresseIpDuSrvWeb/myAPIFox/protection/totale avec la clé de sécurité http//adresseIpDuSrvWeb/myAPIFox/ZNnKLP351dULF6R0GW3j/protection/desactivee
Pour piloter un équipement vous devais connaitre l’identifiant de celui-ci.
J’aurais pu utiliser le nom comme identifiant mais je ne l’ai pas fait car il peut y avoir plusieurs équipement avec le même nom mais pas avec le même type. Je ne suis pas en mesure pour le moment de remonter le type.
Pour palier au problème, je vous ai fait une méthode qui remonte le nom de l’équipement et son identifiant. Son ordre d’affichage est identique à celui qui est affiché sur le site myFox.me.
Lister vos équipements avec un retour en jSON:
http//adresseIpDuSrvWeb/myAPIFox/liste_equipement avec la clé de sécurité http//adresseIpDuSrvWeb/myAPIFox/ZNnKLP351dULF6R0GW3j/liste_equipement
Piloter un équipement:
http//adresseIpDuSrvWeb/myAPIFox/pilote_equipement/on/61521 avec la clé de sécurité http//adresseIpDuSrvWeb/myAPIFox/ZNnKLP351dULF6R0GW3j/pilote_equipement/on/61521
Pour jouer un scénario, vous devais connaitre l’identifiant de celui-ci.
C’est le même principe que les équipements, on commence par lister les scénarios pour récuperer l’identifiant.
Lister vos scénarios avec un retour en jSON:
http//adresseIpDuSrvWeb/myAPIFox/liste_scenario avec la clé de sécurité http//adresseIpDuSrvWeb/myAPIFox/ZNnKLP351dULF6R0GW3j/liste_scenario
Jouer un scénario:
http//adresseIpDuSrvWeb/myAPIFox/joue_scenario/33254 avec la clé de sécurité http//adresseIpDuSrvWeb/myAPIFox/ZNnKLP351dULF6R0GW3j/joue_scenario/33254
Les dangers:
L’API My Fox se connecte de façon sécurisée au site de My Fox, elle se connecte comme si vous le faisiez depuis un navigateur, vu que vous hébergez et que vous allez développer votre propre page web je vous conseille fortement de la protéger pour qu’elle ne soit pas utilisable depuis l’extérieur.
L’ajout de la clé de sécurité est un premier pas vers la sécurité.
Exemples d’utilisations
Ma montre #Pebble affiche maintenant l'état de mon alarme @myfox #HC2 via l'api de @Hotfirenet pic.twitter.com/nNMCBDN2kl
— Cyril Lopez (@CyrilLopez) January 26, 2014
Todo:
-
connaitre le niveau de protection, mettre à on ou à off un équipement,jouer un scénario,- récupérer l’historique,
- renvoyer l’image des caméras.
Si vous avez des idées d’amélioration, que vous trouvez des bugs ou toutes autres critiques je laisse les commentaires ouverts.
Télécharger la version en cours:
Cette version n’est plus d’actualité depuis la sortie officielle de l’api Myfox