Aller au contenu

Récuperer info api eedomus dans un VD


pixynico

Messages recommandés

bonjour à tous

 

J'espère ne pas faire doublon en créant ce sujet.

J'essaie désespéramment de récupérer des infos venant de l'api eedomus vers ma HC2 mais je n'aboutie à rien.

Je veux récupérer l'état d'une variable type Armement prenant les valeurs On ou Off sur Eedomus et les ajouter d'une variable Armement dans ma HC2 afin de sécuriser ma maison.

Voici ce que j'ai mis dans le bouton de MAJ d'un VD :

--[[
%% properties
%% globals
--]]
HC2= Net.FHttp("http://api.eedomus.com");

response, status, errorCode = HC2:GET("/get?api_user=xxxxxx&api_secret=xxxxxxxxxxxxx&action=periph.caract&periph_id=743577")
response = json.decode(response)

fibaro:setGlobal('Armement', response.body.last_value)

fibaro:log("Armement : "..fibaro:getGlobalValue("Armement")..)

fibaro:call(fibaro:getSelfId(), "setProperty","ui.Label1.value", response.body.last_value..)

 

J'ai créé une variable Armement. Je ne sais pas trop si je dois la laisser vide ou 0 ou la prédéfinir à On ou Off.

J'ai tout essayé sans résultat.

 

Le retour de mon API fonctionne :

{ "success": 1, "body":{"periph_id": "743577", "name": "Armement alarme Hall Entrée", "last_value": "Off", "last_value_text": "Alarme désarmée", "last_value_change": "2017-11-06 21:39:16"}}

 

Je débuté en lua en m'inspirant des exemples.

Quelqu'un peut-il me donner un coup de main ?

Merci d'avance

Lien vers le commentaire
Partager sur d’autres sites

Bonsoir, 

 

Le 10/11/2017 à 19:07, pixynico a dit :

response = json.decode(response)

si tu rajoutes ceci : 

tu as une réponse ? 

fibaro:debug(response.body.last_value)

 

Essaie de remplacer : 

jsonTable =  json.decode(response)
fibaro:debug(jsonTable)

 

Modifié par pepite
Lien vers le commentaire
Partager sur d’autres sites

Merci pepite de ton intérêt pour mon pb.

J'ai essayé avec 


response = json.decode(response)

fibaro:debug (response.body.last_value)

ou 

jsonTable = json.decode(response)
fibaro:debug(jsonTable)

 

Sans aucun retour de resultat
 

Je suis le tuto https://domotique34.com/blog/2014/10/02/recuperation-de-certaines-donnees-eedomus-sur-la-home-center-2/

Dans le tuto c'est une valeur qui évolue, moi je veux le retour d'une variable prenant les valeurs On ou Off

Lien vers le commentaire
Partager sur d’autres sites

Tu n'as aucun retour de ton api avec ton code ?

Essaie juste ceci, as tu quelquechose dans le debug ? pas d'erreur ?

 --[[
%% properties
%% globals
--]]
HC2= Net.FHttp("http://api.eedomus.com");

response, status, errorCode = HC2:GET("/get?api_user=xxxxxx&api_secret=xxxxxxxxxxxxx&action=periph.caract&periph_id=743577")
jsonTable = json.decode(response)
fibaro:debug(jsonTable)

Pour info, ceci

 

Le 10/11/2017 à 19:07, pixynico a dit :

fibaro:log("Armement : "..fibaro:getGlobalValue("Armement")..)

 

s'écrit

fibaro:log("Armement : "..fibaro:getGlobalValue("Armement"))

 

Et ceci

fibaro:call(fibaro:getSelfId(), "setProperty","ui.Label1.value", response.body.last_value..) 

 

S'ecrit

fibaro:call(fibaro:getSelfId(), "setProperty","ui.Label1.value", response.body.last_value) 

 

Lien vers le commentaire
Partager sur d’autres sites

J'ai lancé le debug en m'arrêtant à fibaro:debug(jsonTable) et j'ai rien du tout qui s'affiche. 

Pourtant ma ligne fonctionne

http://api.eedomus.com/get?api_user=xxxxxxx&api_secret=xxxxxxxxxxxx&action=periph.caract&periph_id=743577

{ "success": 1, "body":{"periph_id": "743577", "name": "Armement alarme Hall Entrée", "last_value": "Off", "last_value_text": "Alarme désarmée", "last_value_change": "2017-11-06 21:39:16"}}

 

Ai-je autre chose à paramétrer dans mon module virtuel ?

Lien vers le commentaire
Partager sur d’autres sites

Non, je me demandais si tu pouvais te connecter sans authentification. SI c'est le cas, tu aurais pu passer par Net.FHttp, mais avec une authentification tu vas devoir utiliser Net.HTTPClient

Bon faut chercher un peu je viens de voir l'article sur domestique 34..alors la. 

 

 

ou ca

 

HC2= Net.FHttp("http://api.eedomus.com");
HC2:setBasicAuthentication("user","password");
response, status, errorCode = HC2:GET("/get?action=periph.caract&periph_id=743577")
jsonTable = json.decode(response)
fibaro:debug(jsonTable)
fibaro:debug(jsonTable.body.last_value)

 

Modifié par pepite
Lien vers le commentaire
Partager sur d’autres sites

Bon j'ai réessayé sans plus de succès. Il me faut l'authentification pour lancer le test api.

J'ai réessayé avec FHttp ou HTTPClient mais pas plus de résultat.

Le tuto date de 2014 peut-être que cela ne fonctionne plus. Je sais pas si c'est possible que l'api eedomus ne soit plus reconnu par la HC2. Je ne dis peut-être une connerie.

Lien vers le commentaire
Partager sur d’autres sites

J'ai essayé le code que tu as mis sans résultat.

J'ai vu que si je prend Net.HTTPClient il faut que je revois la syntaxe en effet.Par j'ai un doute au vu de ce que je lis sur le forum HTTPClient c'est bon sur un VD c'est pas valable seulement sur les scenes ? C'est un peu confus pour moi.

J'ai pas trop le temps de m'y atteler en semaine en ce moment. 

Je te remercie de m'aider en tout cas c'est sympa. Tu penses que c'est encore possible ?

Lien vers le commentaire
Partager sur d’autres sites

Je suis boulet je savais pas comment on debuggais un bouton dans VD, je pars de loin^_^

 

J'ai exécuté ceci comme tu m'as dit et j'ai l'erreur ci-dessous en réponse, on avance 

--[[
%% properties
%% globals
--]]

HC2= Net.FHttp("http://api.eedomus.com");
HC2:setBasicAuthentication("xxxxxx","xxxxxxxx");
response, status, errorCode = HC2:GET("/get?action=periph.caract&periph_id=743577")
jsonTable = json.decode(response)
fibaro:debug(jsonTable)
fibaro:debug(jsonTable.body.last_value)

 

image.png.09523668f5c903459af1a2c68fdb463d.png

 

 

Modifié par pixynico
Lien vers le commentaire
Partager sur d’autres sites

×
×
  • Créer...