Myfox Home Alarm et Eedomus

Discussion et échanges de scripts pour la box eedomus

Re: Myfox Home Alarm et Eedomus

Messagepar xianghua » 27 Oct 2017 07:20

np :D
xianghua
 
Messages : 305
Inscription : 11 Juil 2015

Re: Myfox Home Alarm et Eedomus

Messagepar nicolascurnier » 31 Oct 2017 17:32

xianghua a écrit:np :D


décidément tu es très actif sur le forum... c cool...

bon j'en profite pour revenir sur l’intégration de l alarme myfox dans eedomus.

je me suis aperçu que lorsque j'active mon alarme via le digicode myfox, l'état n'est pas remonté vers eedomus... une idée ?
nicolascurnier
 
Messages : 31
Inscription : 14 Oct 2017

Re: Myfox Home Alarm et Eedomus

Messagepar xianghua » 01 Nov 2017 18:07

nicolascurnier a écrit:
xianghua a écrit:np :D


décidément tu es très actif sur le forum... c cool...

bon j'en profite pour revenir sur l’intégration de l alarme myfox dans eedomus.

je me suis aperçu que lorsque j'active mon alarme via le digicode myfox, l'état n'est pas remonté vers eedomus... une idée ?


Très actif... c'est par période.. :D
Et je viens de migrer vers une autre solution domotique (même si je garde ma Eedomus je pense)

Concernant ton digicode, théoriquement ça remonte aussi...
Perso j'ai la HC2 de Myfox et je passe par les télécommandes pour porte clés, mais l'état remonte que je clique sur l'interface web myfox, les télécommandes, IFTTT, ou tout autre moyens...

ça remonte dans tout les cas sauf ton digicode? et ça remonte bien dans l'interface web myfox?
xianghua
 
Messages : 305
Inscription : 11 Juil 2015

Re: Myfox Home Alarm et Eedomus

Messagepar nicolascurnier » 02 Nov 2017 08:45

L actionneur fonctionne, je peux armer ou désarmer mon alarme mais je n ai pas (ou plus ) de retour d état quelle que soit la méthode de mise en route de l alarme (site myfox ou digicode).

Par ailleurs, je me suis aperçu que la fréquence de la requête était à 0. je l'ai donc mise à 3 comme dans ton exemple.... et depuis j'ai de nouveau le message d'erreur "impossible de parser le xml"

je te mets ci dessous les image de l'actionneur et le script, si tu peux jeter un coup d’œil...
https://screenshots.firefox.com/nUKJdDfyJgzSGV2T/secure.eedomus.com
https://screenshots.firefox.com/2ggmqzi4glwOWmdL/secure.eedomus.com

mon script :
<?php

$GLOBALS['api_url'] = 'https://api.myfox.me:443/v2/';
$api_url = 'https://api.myfox.me:443/v2/';
$ClientId ='bad9b22bad9da4006f81fc234xxxxx';
$ClientSecret='T2gecRnJTDE5aB3Q74bnkqc9Kcxxxx';
$getToken_url = 'https://'.$ClientId.':'.$ClientSecret.'@api.myfox.me';
$UserName ='xxxxxxx' ;
$UserPassword='xxxxxxx';
$access_token='';

// on reprend le dernier refresh_token seulement s'il correspond au même code
$refresh_token = loadVariable('refresh_token');
$expire_time = loadVariable('expire_time');
// s'il n'a pas expiré, on peut reprendre l'access_token
if (time() < $expire_time)
{
$access_token = loadVariable('access_token');
//echo "re-utilisation du token existant";
}


// on a déjà un token d'accés non expiré pour le code demandée
if ($access_token == '')
{
if (strlen($refresh_token) > 1)
{
// on peut juste rafraichir le token
$grant_type = 'refresh_token';
$postdata = 'grant_type='.$grant_type.'&refresh_token='.$refresh_token;
$url=$getToken_url;
}
else
{
// 1ère utilisation aprés obtention du code
$grant_type = 'password';
$postdata = 'grant_type='.$grant_type.'&username='.$UserName.'&password='.$UserPassword;
$url=$getToken_url;
}

$response = httpQuery($url.'/oauth2/token', 'POST', $postdata);
$params = sdk_json_decode($response);
//var_dump($params);


if ($params['error'] != '')
{
die("Erreur lors de l'authentification: <b>".$params['error'].'</b> (grant_type = '.$grant_type.')');
}

// on sauvegarde l'access_token et le refresh_token pour les authentifications suivantes
if (isset($params['refresh_token']))
{
$access_token = $params['access_token'];
saveVariable('access_token', $access_token);
saveVariable('refresh_token', $params['refresh_token']);
saveVariable('expire_time', time()+$params['expires_in']);

}
else if ($access_token == '')
{
die("Erreur lors de l'authentification");
}

//extraire le code du site
$siteId=loadVariable('siteId');
if ($siteId == '')
{
$request="client/site/items";
$response = httpQuery($api_url.$request."?access_token=".$access_token, 'GET');
$params2 = sdk_json_decode($response);
$siteId=$params2['siteId'];
saveVariable('siteId', $siteId);
}
}

function sdk_myfox_query($request, $method = 'GET', $post = NULL, $return_xml = true)
{
$access_token= loadVariable('access_token');
if ($post == '')
{
$response = httpQuery($GLOBALS['api_url'].$request."?access_token=".$access_token, 'GET');
//echo "GET: ". $GLOBALS['api_url'].$request."?access_token=".$access_token;
}
else
{
$response = httpQuery($GLOBALS['api_url'].$request."?access_token=".$access_token, 'POST');
echo "GET: ". $GLOBALS['api_url'].$request."?access_token=".$access_token;
}

$json = sdk_json_decode($response);

if ($return_xml)
{
// permet d'avoir une mise en forme plus lisible dans un browser
sdk_header('text/xml');
echo jsonToXML($response);
}
else
{
return $json;
}
}

switch($_GET['action'])
{
case 'api_get':
$query = getArg('query');
sdk_myfox_query($query,'');
break;
case 'api_post':
$query = getArg('query');
sdk_myfox_query($query,'POST');
break;
}
?>
nicolascurnier
 
Messages : 31
Inscription : 14 Oct 2017

Re: Myfox Home Alarm et Eedomus

Messagepar xianghua » 02 Nov 2017 13:51

J'ai fait un diff entre nos deux scripts en ignorant les problèmes d'espaces avec l'option -w et il ne trouve pas de différences.

T'as bien mis le script de domo-blog sans le modifier/recréer? (Peut être un problème d'indentation, me semble que le PHP est sensible là dessus)

Sinon ma requête de mise à jour est différente de la tienne:

Code : Tout sélectionner
http://localhost/script/?exec=myfox_oauth.php&action=api_get&query=site/[VAR1]/security


C'est quoi tes
Code : Tout sélectionner
&amp;
qui sont dans ta requête de mise à jour?

C'est ok sur tes disarmed, armed et partial mais pas la mise à jour.
xianghua
 
Messages : 305
Inscription : 11 Juil 2015

Re: Myfox Home Alarm et Eedomus

Messagepar nicolascurnier » 02 Nov 2017 17:39

OK c tout bon ct les &amp qui foutaient le bordel... Et comme je connais pas le php, j ai juste colle la requête depuis le site domo blog vers mon périf sans en comprendre la syntaxe. ..

https://www.domo-blog.fr/integration-lalarme-myfox-leedomus/

Dans les lignes de requetes que l on peut recopier (étape 3), il y a les &amp... mais si on fait attention ils n apparaissent plus dans les images du perif... peut être un pb d encodage (utf8/ansi ou autre).

Bref désolé de te prendre du temps pour ce genre de conneries...

Et la ça marche... encore merci...
(Je pars sur le sujet Denon pour voir la suite :) )
nicolascurnier
 
Messages : 31
Inscription : 14 Oct 2017

Re: Myfox Home Alarm et Eedomus

Messagepar xianghua » 02 Nov 2017 18:43

nicolascurnier a écrit:OK c tout bon ct les &amp qui foutaient le bordel... Et comme je connais pas le php, j ai juste colle la requête depuis le site domo blog vers mon périf sans en comprendre la syntaxe. ..

https://www.domo-blog.fr/integration-lalarme-myfox-leedomus/

Dans les lignes de requetes que l on peut recopier (étape 3), il y a les &amp... mais si on fait attention ils n apparaissent plus dans les images du perif... peut être un pb d encodage (utf8/ansi ou autre).

Bref désolé de te prendre du temps pour ce genre de conneries...

Et la ça marche... encore merci...
(Je pars sur le sujet Denon pour voir la suite :) )


np, le principal c'est que ça fonctionne :)
xianghua
 
Messages : 305
Inscription : 11 Juil 2015

Re: Myfox Home Alarm et Eedomus

Messagepar nicolascurnier » 03 Nov 2017 12:00

Bonjour
Je viens d implémenter mon système eedomus avec la google mini home. L ensemble des fonctionnalités sont OK (allume, éteint, volet, portail...) sauf l alarme myfox...

La valeur sous eedomus est "sécurité maison", le pseudo sous Google home est identique...

Mais la mini home ne sait pas faire....

Quelqu un a une idée ?
nicolascurnier
 
Messages : 31
Inscription : 14 Oct 2017

Re: Myfox Home Alarm et Eedomus

Messagepar xianghua » 03 Nov 2017 12:08

nicolascurnier a écrit:Bonjour
Je viens d implémenter mon système eedomus avec la google mini home. L ensemble des fonctionnalités sont OK (allume, éteint, volet, portail...) sauf l alarme myfox...

La valeur sous eedomus est "sécurité maison", le pseudo sous Google home est identique...

Mais la mini home ne sait pas faire....

Quelqu un a une idée ?


Honnêtement, passes par ifttt
xianghua
 
Messages : 305
Inscription : 11 Juil 2015

Re: Myfox Home Alarm et Eedomus

Messagepar nicolascurnier » 03 Nov 2017 12:25

ok. je connais pas mais je vais essayer. merci
nicolascurnier
 
Messages : 31
Inscription : 14 Oct 2017

Re: Myfox Home Alarm et Eedomus

Messagepar nicolascurnier » 03 Nov 2017 16:39

c top iftt !!! ca marche !
si j'ai bien compris on relit la mini home à l'alarme myfox sans passer par eedomus...

autre question, peut on mettre dans " la phrase à prononcer " un code du type "active la sécurité 9898", 9898 correspond à une personne de la maison, avec la réponse correspondante "Ok Nicolas, l'alarme est activée"... et éventuellement envoyer un email disant " alarme activé par Nicolas"

mon pb c'est de mettre ce code dans la phrase...

une idée ?
nicolascurnier
 
Messages : 31
Inscription : 14 Oct 2017

Re: Myfox Home Alarm et Eedomus

Messagepar xianghua » 03 Nov 2017 17:06

C'est possible pour moi l'histoire du code pour une personne car tu peux mettre plusieurs phrases pour une action.

Par contre le mail avec le user ce n'est pas possible avec IFTTT, d'un point de vue MyFox c'est l'API qui désactive l'alarme et pas un user.. (contrairement à un badge/télécommande myfox)
Pour que ce soit possible faudrait plusieurs actions pour une condition sur IFTTT.

Genre "Si Désactiver MyFox 123 par Google assistant, désactiver l'alarme et envoyer un message sur telegram"
xianghua
 
Messages : 305
Inscription : 11 Juil 2015

Re: Myfox Home Alarm et Eedomus

Messagepar nicolascurnier » 03 Nov 2017 17:27

OK compris pour le mail.

Pour l histoire du "code", quand je mets un chiffre dans la phrase du type "ceci est un test 1234", il ne comprend pas...
nicolascurnier
 
Messages : 31
Inscription : 14 Oct 2017

Re: Myfox Home Alarm et Eedomus

Messagepar lhu » 30 Déc 2017 16:55

Bonjour à tous,

Je suis novice avec eedomus, je commence seulement à l'utiliser depuis noël.

Je voulais lier la box eedomus à mon alarme MyFox, j'ai donc suivi le tuto de Domo-Blog et lorsque j'arrive au moment de récupérer le siteID je lance la requête :

http://192.168.1.6/script/?exec=myfox_o ... site/items

je n'ai pas le siteID, j'ai seulement :

<root>
<status>OK</status>
<timestamp>1514649169</timestamp>
<payload>
<items></items>
</payload>
</root>

j'ai recommencé plusieurs fois, j'ai regardé sur les forums, mais pas de solutions.

Avez-vous déjà eu le problème? avez-vous une solution?

Merci d'avance de votre aide , ;)

Loïc
lhu
 
Messages : 1
Inscription : 30 Déc 2017

Re: Myfox Home Alarm et Eedomus

Messagepar xianghua » 30 Déc 2017 21:09

Y'a un plugin sur le store, utilises le il fonctionne
xianghua
 
Messages : 305
Inscription : 11 Juil 2015

Re: Myfox Home Alarm et Eedomus

Messagepar labussiere » 24 Mai 2018 16:01

Bonjour à tous,
J'ai pu relier, il y a quelques années, ma Myfox HC à eEdomus grâce au script et l'aide de Madoma73. Tout a bien fonctionné et ce jusqu'il y a 2 mois. En effet, un message s'affiche de temps à autre : " Gestion Myfox en erreur: [Impossible de parser le XML]. Aperçu du contenu. La fréquence de cette notification est maintenant réduite." Que s'est-il passé ? Avez-vous une solution à ce problème ?
Je vous remercie par avance pour toute aide .
Dernière édition par labussiere le 25 Mai 2018 09:05, édité 1 fois.
François
labussiere
 
Messages : 46
Inscription : 18 Juil 2014

Re: Myfox Home Alarm et Eedomus

Messagepar labussiere » 25 Mai 2018 09:04

En réalité, le problème est le suivant : "Erreur lors de l'authentification: invalid_client (grant_type = refresh_token)".
Comment résoudre ce problème ?
François
labussiere
 
Messages : 46
Inscription : 18 Juil 2014

Re: Myfox Home Alarm et Eedomus

Messagepar Toyoda » 27 Mai 2018 18:34

Bonjour,

Je suis dans le même cas, mais j'en connais la raison.
L'autorisation de l'API Myfox, appelé le Jeton doit être renouvelé car périmé.

Alors j'ai essayé d'effectuer la régénération de ce jeton via l'interface de API MyFox mais, j'ai échoué car trop technique pour moi.

Si quelqu'un peut nous simplifier la vie, genre copier collé, d'avance Merci

Autrement il reste la possibilité de passer par IFTTT mais là aussi mes connaissances en script sont trop faible.

Snif

Je l'aurai un jour, je l'aurai...
Toyoda
 
Messages : 19
Inscription : 10 Mars 2018
Localisation : Valence

Re: Myfox Home Alarm et Eedomus

Messagepar labussiere » 27 Mai 2018 20:17

Merci pour votre réponse.
En effet, après avoir, point par point, révisé mon ma configuration, j'ai eu la même conclusion.
J'ai donc essayé d'avoir un nouveau jeton de l'api myfox qui me le refuse car pour l'instant je suis "blacklisté". Je vais attendre demain pour un nouvel essai.
Si quelqu'un pouvait nous aider et nous guider dans nos recherches, il serait le bienvenu.
Je vous tiendrai au courant de mes expériences.
Bien cordialement
François
labussiere
 
Messages : 46
Inscription : 18 Juil 2014

Re: Myfox Home Alarm et Eedomus

Messagepar mitch » 27 Mai 2018 21:49

labussiere a écrit:En réalité, le problème est le suivant : "Erreur lors de l'authentification: invalid_client (grant_type = refresh_token)".
Comment résoudre ce problème ?


Bonjour,
C'est bien cela et vous n’êtes pas le seul dans ce cas
J'utilise ce script depuis plusieurs années sans soucis et depuis le 18 avril j'ai le message:
Erreur lors de l'authentification: <b>invalid_client</b> (grant_type = password)
ou "Erreur lors de l'authentification: invalid_client (grant_type = refresh_token)"
J'ai tenté de débuguer le script :
si je fournis au script un access token valide, il fonctionne correctement.
si le script doit demander ou rafraichir un token, on obtient ce type de message.
Quelle différence entre les 2 requetes? la première est en GET, les autres en POST.
J'ai ajouté le paramètre $Infos à la fonction HTTPQuerry qui exécute la requête
$response = httpQuery($url.'/oauth2/token', 'POST', $postdata, NULL, NULL, false, false, &$infos);
ensuite je fais un var_dump de $Infos pour voir ce qu'elle a dans le ventre
print "infos ";
var_dump($infos);

en voici un extrait:
infos array(21) {
["url"]=>
string(99) "https://<mon client ID>:<Mon client secret>@api.myfox.me/oauth2/token"
["content_type"]=>
string(16) "application/json"
["http_code"]=>
int(400)
["header_size"]=>
int(346)
["header"]=>
string(346) "HTTP/1.1 400 Bad Request
Date: Thu, 24 May 2018 20:32:21 GMT
Server: Apache
Access-Control-Allow-Origin: *
Access-Control-Allow-Methods: GET,POST,HEAD,DELETE,PUT,OPTIONS
Access-Control-Allow-Headers: X-Accept-Charset,X-Accept,Content-Type
X-Host: tag-web-01
Connection: close
Transfer-Encoding: chunked
Content-Type: application/json

ensuite je fais un var_dump de $params (la réponse du serveur)
$params = sdk_json_decode($response);
var_dump($params);
voici le résultat:
array(2) {
["error"]=>
string(14) "invalid_client"
["error_description"]=>
string(56) "Client credentials were not found in the headers or body"

Le serveur n'a donc jamais trouvé mon username et password qui étaient pourtant bien présents dans la variable $Postdata.
J'en déduis que la fonction httpQuery ne fonctionne plus correctement en méthode POST et mes recherches s'arrêtent là, je n'ai pas la possibilité de débuguer une fonction spécifique du langage de script eedomus.
mitch
 
Messages : 12
Inscription : 27 Mai 2018

PrécédentSuivant

Retour vers Scripts & Périphériques du store

Qui est en ligne ?

Utilisateurs parcourant ce forum : Aucun utilisateur inscrit et 32 invité(s)