Aller au contenu

Recommended Posts

Bonjour à tous,

 

Malgré avoir parcouru depuis plusieurs jours le(s) forums en quête de solutions et d'infos...... je ne me sors pas de l'installation, pourtant basique, du VD Ecodevise dans mon environnement HC2.

 

Je souhaite simplement récupérer la conso instantanée et l'abonnement en cours.

 

J'ai bien créé les variables.

 

J'ai copier le VD simple que l'on trouve sur le forum.

Malheureusement les variables ne bougent pas....

 

Particularité : pour interroger mon Ecodevise : je dois ajouter le port à l'IP : http://192.168.1.XX:XXX/api/xdevices.json?cmd=10

 

Première question : que doit on renseigner en entête du VD : Adresse IP : celle de l'ecodevise je suppose ? Port TCP : que dois je mettre à cette endroit la ?

 

Si vous avez des pistes, des idées et du temps a perdre : je suis à votre écoute....

 

D'avance merci

Partager ce message


Lien à poster
Partager sur d’autres sites

je n'ai ni l'un, ni l'autre, mais je dirais que dans le port du VD, tu dois renseigner le port du ton écodevice.

Partager ce message


Lien à poster
Partager sur d’autres sites

Voici le report d'erreur que je reçois...

 

[ERROR] 20:51:37: line 6: Expected value but found T_END at character 1

 

Merci Jojo Pour la reponse.

 

Dans l'interrogation :

HC2 = Net.FHttp("192.168.1.88")
response = HC2:GET("/api/xdevices.json?cmd=10")

 

Dois aussi ajouter le port ? comme ceci :

 

HC2 = Net.FHttp("192.168.1.88:120")
response = HC2:GET("/api/xdevices.json?cmd=10")

 

J'ai essayé : sans succès.....

 

 

Partager ce message


Lien à poster
Partager sur d’autres sites

Ca ressemble au vieux bug du JSON incomplet.

Commence par mettre à jour le firmware de ton Eco-Devices, tu trouveras ça sur le site de GCE.

Partager ce message


Lien à poster
Partager sur d’autres sites

Merci Lazer pour ta réponse :

 

Il est a jour : Version 1.05.24

 

Voici la réponse direct de l'écodevise quand je l'interroge directement via un navigateur.

 

{"product":"Eco-devices","T1_PTEC":"HPJB","T1_PAPP":3160,"T1_BBRHCJB":6344180,"T1_BBRHPJB":10050370,"T1_BBRHCJW":520313,"T1_BBRHPJW":919796,"T1_BBRHCJR":182366,"T1_BBRHPJR":354852,"T1_DEMAIN":"----","T2_PTEC":"----","T2_PAPP":0,"T2_BBRHCJB":0,"T2_BBRHPJB":0,"T2_BBRHCJW":0,"T2_BBRHPJW":0,"T2_BBRHCJR":0,"T2_BBRHPJR":0,"T2_DEMAIN":"----","INDEX_C1":0,"INDEX_C2":0}

Partager ce message


Lien à poster
Partager sur d’autres sites

Je vois que tu es en Tempo, tu devais poser ta question sur le topic où tu as trouvé ton VD

Partager ce message


Lien à poster
Partager sur d’autres sites
il y a 5 minutes, Lazer a dit :

Je vois que tu es en Tempo, tu devais poser ta question sur le topic où tu as trouvé ton VD

JE n'ai pas trouvé de VD...

 

J'ai tenté d'en créer un : juste en ajoutant le code trouvé sur notre forum.

 

J'ai du louper un passage ?!

 

HC2 = Net.FHttp("192.168.0.xxx")
response = HC2:GET("/api/xdevices.json?cmd=10")

	 
	-- enregistrement du retour de l API dans une table
response = json.decode(response)

fibaro:setGlobal("ABO", response.T1_PTEC)
fibaro:setGlobal("CONSO", response.T1_PAPP)
fibaro:setGlobal("IHP", response.T1_HCHP)
fibaro:setGlobal("IHC", response.T1_HCHC)
fibaro:setGlobal("PROD", response.T2_PAPP)


fibaro:log(fibaro:getGlobalValue("CONSO").." W Tarif : "..fibaro:getGlobalValue("ABO").."               Index HP : "..fibaro:getGlobalValue("IHP").."   Index HC :" ..fibaro:getGlobalValue("IHC") )

Partager ce message


Lien à poster
Partager sur d’autres sites

Ah désolé je pensais que tu avais utilisé un VD trouvé sur le forum. Il y en a plusieurs (je n'en n'utilise aucun, donc je ne pourrais pas t'aiguiller)

 

Bien qu'il soit rudimentaire, ton code me semble bon, mais je n'ai pas testé.

Note : ce n'est pas une super idée de réaffecter la variable response, tu devrais stocker la valeur dans une autre variable distincte.

 

Partager ce message


Lien à poster
Partager sur d’autres sites

Ce que j'ai fait :

 

- Ajouter un module virtuel

- Renseigner nom du module, adresse IP de l'EcoD, le port TCP..

- Choisi un module 1 bouton

- J'ai copié/collé le code présenté ci dessous dans le champs associé au bouton 1

HC2 = Net.FHttp("192.168.1.88")
response = HC2:GET("/api/xdevices.json?cmd=10")

    
    -- enregistrement du retour de l API dans une table
response = json.decode(response)

fibaro:setGlobal("ABO", response.T1_PTEC)
fibaro:setGlobal("CONSO", response.T1_PAPP)
fibaro:setGlobal("IHP", response.T1_HCHP)
fibaro:setGlobal("IHC", response.T1_HCHC)
fibaro:setGlobal("PROD", response.T2_PAPP)


fibaro:log(fibaro:getGlobalValue("CONSO").." W Tarif : "..fibaro:getGlobalValue("ABO").."               Index HP : "..fibaro:getGlobalValue("IHP").."   Index HC :" ..fibaro:getGlobalValue("IHC") )

 

- J'ai ajusté  l'IP dans le code

- J'ai coché : Code LuA

 

Plusieurs interrogations :

 

La case : En attente de réponse du périphérique ne veut pas restée cochée ? (surement pas bien grave)

 

Pourquoi y a t il un saut de ligne dans la reponse de l'EcoD :

 

{"product":"Eco-devices","T1_PTEC":"HPJB","T1_PAPP":1350,"T1_BBRHCJB":6344180,"T1_BBRHPJB":10055620,"T1_BBRHCJW":520313,"T1_BBRHPJW":919796,"T1_BBRHCJR":182366,"T1_BBRHPJR":354852,"T1_DEMAIN":"BLEU","T2_PTEC":"----","T2_PAPP":0,"T2_BBRHCJB":0,"T2_BBRHPJB":0,"T2_BBRHCJW":0,"T2_BBRHPJW":0,"T2_BBRHCJR":0,"T2_BBRHPJR":0,"T2_DEMAIN":"----","INDEX_C1":0,"INDEX_C2":0}

 

Excusé moi par avance pour mes questions de débutant.....

 

Modifié par Mickaelkael

Partager ce message


Lien à poster
Partager sur d’autres sites

Essaye ça (écrit à l'arrache non testé), mais c'est déjà un peu plus propre que ton code, et ça permettra peut être de mieux comprendre ce qui se passe :

local ECO = Net.FHttp("192.168.1.88")
local response, status, errorCode = ECO:GET("/api/xdevices.json?cmd=10")
if tonumber(errorCode) == 0 and tonumber(status) == 200 and response ~= nil and response ~= "" then
	fibaro:debug(response)
	data = json.decode(response)
	fibaro:debug("ABO : " .. (data.T1_PTEC or "???"))
	fibaro:debug("CONSO : " .. (data.T1_PAPP or "???"))
	fibaro:debug("IHP : " .. (data.T1_HCHP or "???"))
	fibaro:debug("IHC : " .. (data.T1_HCHC or "???"))
	fibaro:debug("PROD : " .. (data.T2_PAPP or "???"))
else
	fibaro:debug("Erreur")
end

 

PS : fait l'effort d'utiliser les balises pour publier des extraits de code, parce que tes messages sont difficilement lisibles.

Partager ce message


Lien à poster
Partager sur d’autres sites

Dans la commande Net.FHttp, je te suggère de rajouter le numéro de port, ainsi :

HC2 = Net.FHttp("192.168.1.88", 80)

Partager ce message


Lien à poster
Partager sur d’autres sites
il y a 16 minutes, Lazer a dit :

 

PS : fait l'effort d'utiliser les balises pour publier des extraits de code, parce que tes messages sont difficilement lisibles.

J'ai édité pour que cela devienne lisible..avec mes excuses..lol

 

Merci Lazer pour le temps que tu me consacres...

 

Après avoir inséré ton code, et , comme la proposé Barelle, ajouté le port, voici la réponse du debug :

 

[DEBUG] 22:06:36: {"product":"Eco-devices","T1_PTEC":"HCJB","T1_PAPP":670,"T1_BBRHCJB":6344278,"T1_BBRHPJB":10056047,"T1_BBRHCJW":520313,"T1_BBRHPJW":919796,"T1_BBRHCJR":182366,"T1_BBRHPJR":354852,"T1_DEMAIN":"BLEU","T2_PTEC":"----","T2_PAPP":0,"T2_BBRHCJB":0,"T2_BBRHPJB":0,"T2_BBRHCJW":0,"T2_BBRHPJW":0,"T2_BBRHCJR":0,"T2_BBRHPJR":0,"T2_DEMAIN":"----","INDEX_C1":0,"INDEX_C2":0}
[DEBUG] 22:06:36: ABO : HCJB
[DEBUG] 22:06:36: CONSO : 670
[DEBUG] 22:06:36: IHP : ???
[DEBUG] 22:06:36: IHC : ???
[DEBUG] 22:06:36: PROD : 0

J'ai adapté le code...car effectivement... je suis en tempo...

 

Cela me semble fonctionner : j'ai bien une modification des variables.

 

Modifié par Mickaelkael

Partager ce message


Lien à poster
Partager sur d’autres sites

Ah voilà, c'est top ça :)

Bravo !

Partager ce message


Lien à poster
Partager sur d’autres sites

Yes !!! MErci Lazer et Barelle pour votre aide précieux !!!!

 

Me reste a trouver comment afficher les informations et les exploiter......

 

Est il possible d'integrer la consomation instantanée rapportée par l'EcoD dans le panneau consommation ?

 

Ma variable ABO : a pour information : des lettres HPJB, HCJB, etc....

Est il possible de l'exploiter dans une scène ? (D'habitude les variables sont des chiffres !)

 

Pour organiser une relève des informations à intervalle régulier : cela va se passer dans boucle principale je suppose ?!

 

A nouveau merci à vous pour votre patience...

Modifié par Mickaelkael

Partager ce message


Lien à poster
Partager sur d’autres sites

La variable PTEC de la trame EdF indique le tarif appliqué, ainsi pour les abonnements Tempo :

- HCJB : Heures Creuses Jour Bleu

- HPJB : Heures Pleines Jour Bleu

- HCJW : Heures Creuses Jour Blanc

- HPJW : Heures Pleines Jour Blanc

- HCJR : Heures Creuses Jour Rouge

- HPJR : Heures Pleines Jour Rouge

Selon la même codification, l'on aura la valeur des six index : BBRHCJB, BBRHPJB, BBRHCJW, BBRHPJW, BBRHCJR et BBRHPJR.

 

Je ne peux que t'encourager à chercher la description de la trame EdF.

Partager ce message


Lien à poster
Partager sur d’autres sites

Yes, Merci Barelle...

 

Ma question était surement pas claire....désolé...

 

Dans une scène : par exemple : je souhaiterai que cette variable devienne une conditionnelle.... Si Tarif = Jour bleu (par exemple)

 

Sauf que en mode bloc : les valeur possible des variable sont chiffrée ?

Je pense ne pas avoir le choix et etre obligé de passer en LUA ?

Partager ce message


Lien à poster
Partager sur d’autres sites

Allez, je viens de retrouver cela en commentaire d'un bout de code :

ADCO = Identification du compteur
OPTARIF = Option tarifaire choisie
ISOUSC = Intensité souscrite
BASE = Index (option base)
HCHC = Index HC (option Heures Creuses)
HCHP = Index HP (option Heures Creuses)
EJPHN = Index HN (option EJP)
EJPHPM = Index PM (option EJP)
BBRHCJB = Index HC jours bleus (option tempo)
BBRHPJB = Index HP jours bleus (option tempo)
BBRHCJW = Index HC jours blancs (option tempo)
BBRHPJW = Index HP jours blancs (option tempo)
BBRHCJR = Index HC jours rouges (option tempo)
BBRHPJR = Index HP jours rouges (option tempo)
PEJP =Préavis EJP (30 minutes), apparaît 30 minutes avant le début de période EJP 
PTEC = Période tarifaire en cours
DEMAIN = Couleur du lendemain
IINST = Intensité instantanée
IINST1 = Intensité instantanée phase 1
IINST2 = Intensité instantanée phase 2
IINST3 = Intensité instantanée phase 3
ADPS = Dépassement de Puissance Souscrite, n’est émis que pendant le dépassement effectif
IMAX = Intensité maximale atteinte
IMAX1 = Intensité maximale atteinte phase 1
IMAX2 = Intensité maximale atteinte phase 2
IMAX3 = Intensité maximale atteinte phase 3
PAPP = Puissance apparente instantanée
HHPHC = Codage horaire H.P / H.C [A,C,D,E,Y,1,2,3,4,5,6,7,8,9  (option  HC)  et A,C,D,E,Y  (option tempo)]
MOTDETAT =  3 octets : - 1er invraisemblance des compteurs, fraude ; 2e compteurs des reset et du chien de garde ; 3e erreur mémoires
 

Partager ce message


Lien à poster
Partager sur d’autres sites

Désolé, je ne maîtrise pas le mode bloc, et après avoir lu le code qu'il génère, j'ai très vite abandonné l'idée de l'utiliser. Il serait quand même surprenant que l'on ne puisse pas faire une condition sur une chaîne de caractères.

 

Partager ce message


Lien à poster
Partager sur d’autres sites

Salut, j arrive apres la bataille, mais envoie moi un mp, je te donnerai mon vd adapté a l abonnement tempo.

 

Partager ce message


Lien à poster
Partager sur d’autres sites

Créer un topic et partage le, cela servira à d'autres :)

  • Like 1

Partager ce message


Lien à poster
Partager sur d’autres sites

C est l un de mes premiers vd, avec du code de plusieurs membre en copier, coller, c est pourquoi je ne l ai pas partage, mais si vous etes indulgents, je m en occupe des je j ai 5 mn...

Partager ce message


Lien à poster
Partager sur d’autres sites

Allez, un petit tuto à l'arrache

 

 

Partager ce message


Lien à poster
Partager sur d’autres sites

Top, merci, et t’inquiètes, on est plus qu'indulgent !

Partager ce message


Lien à poster
Partager sur d’autres sites

×