Mickaelkael Posté(e) le 16 avril 2018 Signaler Posté(e) le 16 avril 2018 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
jojo Posté(e) le 16 avril 2018 Signaler Posté(e) le 16 avril 2018 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.
Mickaelkael Posté(e) le 16 avril 2018 Auteur Signaler Posté(e) le 16 avril 2018 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.....
Lazer Posté(e) le 16 avril 2018 Signaler Posté(e) le 16 avril 2018 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.
Mickaelkael Posté(e) le 16 avril 2018 Auteur Signaler Posté(e) le 16 avril 2018 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}
Lazer Posté(e) le 16 avril 2018 Signaler Posté(e) le 16 avril 2018 Je vois que tu es en Tempo, tu devais poser ta question sur le topic où tu as trouvé ton VD
Mickaelkael Posté(e) le 16 avril 2018 Auteur Signaler Posté(e) le 16 avril 2018 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") )
Lazer Posté(e) le 16 avril 2018 Signaler Posté(e) le 16 avril 2018 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.
Mickaelkael Posté(e) le 16 avril 2018 Auteur Signaler Posté(e) le 16 avril 2018 (modifié) 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é le 16 avril 2018 par Mickaelkael
Lazer Posté(e) le 16 avril 2018 Signaler Posté(e) le 16 avril 2018 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.
Barelle Posté(e) le 16 avril 2018 Signaler Posté(e) le 16 avril 2018 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)
Mickaelkael Posté(e) le 16 avril 2018 Auteur Signaler Posté(e) le 16 avril 2018 (modifié) 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é le 16 avril 2018 par Mickaelkael
Mickaelkael Posté(e) le 16 avril 2018 Auteur Signaler Posté(e) le 16 avril 2018 (modifié) 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é le 16 avril 2018 par Mickaelkael
Barelle Posté(e) le 16 avril 2018 Signaler Posté(e) le 16 avril 2018 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.
Mickaelkael Posté(e) le 16 avril 2018 Auteur Signaler Posté(e) le 16 avril 2018 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 ?
Barelle Posté(e) le 16 avril 2018 Signaler Posté(e) le 16 avril 2018 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
Barelle Posté(e) le 16 avril 2018 Signaler Posté(e) le 16 avril 2018 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.
Dgille Posté(e) le 17 avril 2018 Signaler Posté(e) le 17 avril 2018 Salut, j arrive apres la bataille, mais envoie moi un mp, je te donnerai mon vd adapté a l abonnement tempo.
Nico Posté(e) le 17 avril 2018 Signaler Posté(e) le 17 avril 2018 Créer un topic et partage le, cela servira à d'autres 1
Dgille Posté(e) le 18 avril 2018 Signaler Posté(e) le 18 avril 2018 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...
Mickaelkael Posté(e) le 18 avril 2018 Auteur Signaler Posté(e) le 18 avril 2018 Merci à tous !! Vous êtes au TOP 1
Nico Posté(e) le 18 avril 2018 Signaler Posté(e) le 18 avril 2018 Top, merci, et t’inquiètes, on est plus qu'indulgent !
Messages recommandés