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.

myAPIFox - mise en place sur le serveur

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.

bravo-prerequis-myAPIFox

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.

myAPIFox - fichier de configuration

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 :

myAPIFox - test dans un navigateur

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

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