Dans ce billet, nous allons voir comment intégrer via un script Eedomus l’alarme Myfox.
Eh oui, depuis l’intégration des scripts PHP dans l’eedomus, la team ne cesse d’ajouter de nouveaux objets connectables avec la box domotique, en voici un qui ne l’est pas encore, mais qui le sera à la fin de ce tuto, la centrale d’alarme MyFox!
Le but est de pouvoir connaître l’état de l’alarme, gérer les scénarios.
Etape 1, la récupération des ID API MyFox
Il faut commencer par aller récupérer ses identifiants API sur le site api.myfox.me. Dans l’onglet, « My applications », vous pourrez créer votre « Personal application », vous aurez besoin du « Client ID » et du « Secret ID » pour la suite.
Vous verrez au passage que la documentation de l’api est située au même endroit :
Etape 2, le script
Téléchargez le script sur notre github via le bouton ci-dessous
Télécharger les fichiersAvant de le mettre sur l’eedomus, il faut modifier 4 lignes dans le script
$GLOBALS['api_url'] = 'https://api.myfox.me:443/v2/'; $api_url = 'https://api.myfox.me:443/v2/'; $ClientId =''; $ClientSecret=''; $getToken_url = 'https://'.$ClientId.':'.$ClientSecret.'@dev.myfox.me'; $UserName ='' ; $UserPassword=''; $access_token='';
Ligne 18 : $ClientSecret='<votre client secret>’; -> remplacer par le client secret de l’étape 1
Ligne 20: $UserName ='<username Myfox>’ ; -> remplacer par votre username myfox
Ligne 21: $UserPassword='<password Myfox>’; -> remplacer par votre password myfox
Vous pouvez ensuite uploader le script dans l’eedomus en utilisant le site web http://@ip_eedomus/script.
Le script se charge ensuite de faire toute la partie authentification initiale et re-négociation de l’authentification toutes les heures de manière automatique.
Tous les appels à l’api Myfox utilisent l’identifiant de votre installation, il faut le récupérer en lançant la commande suivante
Notez le nombre situé entre les balises siteId
On passe ensuite à la création des périphériques eedomus, le premier qui remontera le statut de l’alarme est un capteur http, dont l’url est:
Et le chemin
/root/payload/statusLabel
Il faut entrer dans [VAR1], le siteId que vous avez récupéré juste avant.
Votre eedomus vous remonte désormais le statut de votre alarme, on peut cependant aller un peu plus loin et actionner l’alarme via des règles eedomus, pour cela, créer un deuxième périphérique (actionneur http).
Vous rentrez là-aussi le siteId de votre installation dans [VAR1]
Puis vous pouvez définir différentes actions :
Désarmement :
Armement partiel :
[php]http://localhost/script/?exec=myfox_oauth.php&action=api_get&query=site/[VAR1]/security/set/partial[/php]Armement total :
[php]http://localhost/script/?exec=myfox_oauth.php&action=api_get&query=site/[VAR1]/security/set/armed[/php]Le script est générique ce qui signifie que vous pouvez avoir accès à toute l’api Myfox, simplement en utilisant comme URL et paramètres de votre actionneur http, le type suivant d’url :
[PHP] http://localhost/script/?exec=myfox_oauth.php&action=api_get&query= [/php]si l’appel à l’api Myfox est en « GET »
Ou
[php]http://localhost/script/?exec=myfox_oauth.php&action=api_set&query=<requete> [/php]si l’appel à l’api Myfox est en « POST » (c’est le paramètre action qui change)
Voilà comme promis, vous disposez à présent d’un nouvel objet connecté à votre box eedomus.
Conclusion
Et voilà, à présent votre alarme Myfox interagit avec votre système eedomus!
Très belle article Pierre;)
Merci !
Superbe !
Et oui je crois que nous sommes tous pareils, essayer de convaincre nos femmes de l’utilité de nos reves 🙂
Bravo
[…] – Intégration de l’alarme Myfox avec l’eedomus : Domo-blog […]
[…] – Intégration de l’alarme Myfox avec l’eedomus : Domo-blog […]
Bonjour je trouve effectivement votre article vraiment bien fait mais je me pose une question.
L’alarme maison My Fox ne dispose pas d’origine de la possibilité de créer des scénarios programmables ?
Pour ce qui est de la domotique et de l’alarme personnellement je préfère opter pour deux systèmes bien distincts.
EDIT ppollet73: lien commercial supprimé
L’alarme Myfox dispose en effet de la possibilité de créer des scénarios, je trouve malheureusement que les possibilités offertes sont:
– très pauvres par rapport aux autres box
– bugguées
Bonjour,
Je n’y connais pas grand chose mais j’ai essayé d’installer ton script sur wampserver pour pouvoir utiliser l’API Myfox.
A chaque fois j’arrive au message suivant :
Fatal error: Call to undefined function loadVariable() in C:\wamp\www\APIMyfox\myfox_oauth.php on line 25
Call Stack
# Time Memory Function Location
1 0.0000 155512 {main}( ) ..\myfox_oauth.php:0
Je sais que ce n’est pas le but premier de ce tuto, mais si une âme charitable pouvait bien m’aider je lui en serais très reconnaissant…
Bonjour,
le script est prévu pour fonctionner sur la box domotique eedomus. Un serveur wampserver n’a pas les mêmes fonctions (entre autres la fonction load_variable). Il faut le ré-écrire pour arriver à le faire fonctionner sur un serveur php standard. Le plus simple peut-être d’aller voir ce que font ces fonctions spécifiques (doc.eedomus.com) afin de le ré-écrire pour un serveur standard.
j’ai un soucis j’ai bine modifié les script mais lorsque je le lance via
http://192.168.11.23/script/?exec=myfox_oauth.php&action=api_get&query=/client/site/items"
j’ai ce message d’erreur
# ERROR: Querying [https://:@dev.myfox.me/oauth2/token] Error 35: error:14077458:SSL routines:SSL23_GET_SERVER_HELLO:reason(1112) Erreur lors de l'authentification
j’ai bien revérifié mes Client ID et Client Secret ils sont bons
plus ça vas et plus je regrette cet achat de MyFox …..
Il ne faut pas regretter ;-), c’est un peu galère au début (vécu) mais une fois en place, ça roule !
Myfox a récemment supprimé dev.myfox.me, dans le script il faut modifier les références à dev.myfox.me par api.myfox.me
merci de l’info mais ne marche pas non plus voici le message de retour
ap^res avoir remplcé l’adresse dev.myfox.me par api.myfox.me par
Erreur lors de l'authentification: invalid_grant (grant_type = password)
ce qui me rassure c’est que même sur IFTTT ça ne fonctionne pas … voila qui me conforte dans la déception de la myfox 🙁
j’en discutais justement cet après-midi sur le forum Myfox, et depuis 10 jours, le channel ifttt fonctionne désormais sans problème
en passant par le site api.myfox.me on peu tester l’API et voila ce que cela me retourne
Request URL
https://api.myfox.me:443/v2/client/site/items?access_token=*************************************
Response Body
{
"status": "OK",
"timestamp": 1408898083,
"payload": {
"items": []
}
}
Avez-vous créer les identifiants API myfox ?
@Madoma73 je dispose d’une HC1 est-ce que c’est de la que viendrai mon soucis ??
sur IFTTT je n’ai rien dans la liste “Site identifier” juste un message “optionunavailable, please try again later”
oui certainement !!
Je pensais que tu venais que l’achat de l’alarme était récent….
Je bloque sur l’identification du siteID. J’ai pourtant scrupuleuement modifié dans les étapes précédentes le ClientId, ClientSecret, UserName, UserPassword, je ne vois pas comment uploader le script afin de déterminer le siteID. Pouvez-vous m’aider?
Bonjour, impossible de charger le script –> Parse error: syntax error, unexpected ‘>’ in myfox_oauth.php on line 21
Bonjour ! Merci pour le tuto et pour l’ensemble de votre oeuvre ! Je n’arrive pas à télécharger le script. Si je clique sur le lien j’ai une page avec “Invalid File Type (.php)!” et si je clique-droit pour enregistrer la cible, ça m’enregistre la page .html (tant sur Safari que Firefox et Chrome). Où me plante-je ? Bonne journée.
Bonjour, en effet, c’est corrigé à présent, vous pouvez de nouveau télécharger l’archive.
A bientôt 😉
Bonjour,
J’ai un (gros) soucis concernant le script… il ne se lance pas, j’ai une page blanche qui arrive. Lorsque je fais mon Upload et que je le Run, j’ai une page blanche. Quand je l’édite, j’ai pourtant bien le script. Et lorsque je tape l’url http://localhost/script/?exec=myfox_oauth.php&action=api_get&query=site/%5BVAR1%5D/security j’ai le même soucis, page blanche et quand je vérifie le code source, c’est vide ! Une idée ?
Il serait bon de mettre à jour le script pour remplacer l’url dev.myfox.com par api.myfox.com 😉
Bonjour,
C’est moi où le script n’est plus présent du tout ?
Je ne le vois nul par
Bonjour,
l’article à été mis à jour, le script est de nouveau disponible.
Merci, j’avais développé le mien du coup mais niveau implémentation du protocol oauth2 je n’étais pas certain
Bonjour, merci beaucoup pour ce script 🙂 Désolé de partager mes soucis, mais je ne parviens pas à l’utiliser avec l’alarme Somfy. Pourtant le début fonctionne bien : myFox API fonctionne bien, me fournit le client ID et le Client secret. Je modifie les 4 lignes de script mais lorsque j’exécute la ligne http://@ip_eedomus/script/?exec=myfox_oauth.php&action=api_get&query=/client/site/items dans le navigateur, j’obtiens juste une page blanche… Merci pour votre aide 🙂