Aller au contenu
pilou87

Service Tempo Edf

Recommended Posts

C'est ok àprésent, j'avais installé une protection sans le vouloir,
sur mon hébergement php ovh, et grace aux idées de Krikroff,
j'ai solutionné le problème.

Partager ce message


Lien à poster
Partager sur d’autres sites

Salut,

 

je ne comprends pas mais j'ai un souci depuis quelques temps sur ce module qui fonctionnait effectivement à merveille jusqu'alors... Je ne m'inquiétais pas car nous étions en été... "j'avais  le temps"... j'ai essayé de voir ce qui ne fonctionnait pas et je ne trouve pas. Pouvez vous m'aider svp ?

 

Le diagnostic :

le décompte des jours fonctionne toujours bien je crois : auj, il m'indique 84 jours bleus restants, 0 blanc, 0 rouge.

Le pbe est sur les étiquettes "aujourd'hui" et "demain" qui indiquent : "userdata : (nil)".

Le débug met : 

ERROR : line log("Acquisition en cours...")..."]:24

 

Ligne 24 , j'ai ça :

local s = json.decode(result);

 

Je comprends que userdata n'a pas de valeur mais j'ai cherché et pas trouvé... :-(  pbe avec JSON ? là, je suis perdu...

 

Pour info, j'ai changé de version pour passer en 4.130 il y a qqes temps mais je ne sais pas si ça a un rapport...

 

Un de vous peut m'éclaircir svp ?

 

 

Le code du bouton :

fibaro:log("Acquisition en cours ...")
--******************************************
--           EDF TEMPO
--
-- Gestion mode énergie Bleu / Blanc / rouge
-- Octobre 2015 - Jean-François CANE
--******************************************
local	Now 		= 'x';
local	Tomorrow 	= 'x';
local  	TotalBleu 	= 'x';
local  	RestantBleu = 'x';
local	TotalBlanc 	= 'x';
local 	RestantBlanc= 'x';
local   TotalRouge 	= 'x';
local  	RestantRouge= 'x';
local	iconBLEU = 19
local	iconBLANC = 20
local	iconROUGE = 77

local HC2 = Net.FHttp("irisnet.fr",80);
local result = HC2:GET("/api/edf-tempo.php?Mode=TEMPO&Key=fibaro");
fibaro:sleep(2000);

  	local s = json.decode(result);
	Now 		= s.TempoJour;
	Tomorrow 	= s.TempoDemain;
 	TotalBleu 	= s.TotalBleu;
 	RestantBleu = s.RestantBleu;
	TotalBlanc 	= s.TotalBlanc;
 	RestantBlanc= s.RestantBlanc;
    TotalRouge 	= s.TotalRouge;
 	RestantRouge= s.RestantRouge;

fibaro:call(fibaro:getSelfId(), "setProperty", "ui.Now.value", Now);
fibaro:call(fibaro:getSelfId(), "setProperty", "ui.Tomorrow.value", Tomorrow);
fibaro:call(fibaro:getSelfId(), "setProperty", "ui.InfoJourBleu.value", RestantBleu .. '/' .. TotalBleu);
fibaro:call(fibaro:getSelfId(), "setProperty", "ui.InfoJourBlanc.value", RestantBlanc .. '/' .. TotalBlanc);
fibaro:call(fibaro:getSelfId(), "setProperty", "ui.InfoJourRouge.value", RestantRouge .. '/' .. TotalRouge);

-- Traitement des valeurs du JOUR
local ValeurJour = 0;
if ( Now == "ND") then 
  	ValeurJour = 0;
	fibaro:setGlobal("EdfTempoJour", 0);
end
if	( Now == "BLEU") then 
  	ValeurJour = 1;
  	fibaro:setGlobal("EdfTempoJour", 1);
  	fibaro:call(fibaro:getSelfId(), "setProperty", "currentIcon", iconBLEU);
end
if ( Now == "BLANC") then 
  	ValeurJour = 2;
  	fibaro:setGlobal("EdfTempoJour", 2);
  	fibaro:call(fibaro:getSelfId(), "setProperty", "currentIcon", iconBLANC);
end
if ( Now == "ROUGE") then 
  	ValeurJour = 3;
  	fibaro:setGlobal("EdfTempoJour", 3);
	fibaro:call(fibaro:getSelfId(), "setProperty", "currentIcon", iconROUGE);
end
fibaro:debug('ValeurJour: '..ValeurJour);

-- Traitement des valeurs de DEMAIN
local ValeurDemain = 0;
-- Transformation des variable
if ( Tomorrow == "ND") then 
  	ValeurDemain = 0;
  	fibaro:setGlobal("EdfTempoDemain", 0);
end
if	( Tomorrow == "BLEU") then 
  	ValeurDemain = 1;
  	fibaro:setGlobal("EdfTempoDemain", 1);
end
if ( Tomorrow == "BLANC") then 
  	ValeurDemain = 2;
  	fibaro:setGlobal("EdfTempoDemain", 2);
end
if ( Tomorrow == "ROUGE") then 
  	ValeurDemain = 3;
  	fibaro:setGlobal("EdfTempoDemain", 3);
end
fibaro:debug('ValeurDemain :'..ValeurDemain);

 

Modifié par ebtjjn
  • Like 1

Partager ce message


Lien à poster
Partager sur d’autres sites

c'est les vacances ici... :-)

Un spécialiste du json decode pourrait-il m'aider svp ? :-)

Partager ce message


Lien à poster
Partager sur d’autres sites

Bonjour,

 

Et oui, le mois d'août, vive les vacances ;-)

 

Le 19/08/2017 à 12:34, ebtjjn a dit :

ERROR : line log("Acquisition en cours...")..."]:24

T'as essaye de commente la ligne fibaro:log ?

 

sinon tu récuperes un json ou pas ?

sous local s = json.decode(result) mets fibaro:debug (s) pour vérifier si tu récupères bien le json.

Partager ce message


Lien à poster
Partager sur d’autres sites

Salut Pepite, merci de ton aide.

Malheureusement, ni l'un ni l'autre ne fonctionnent --> toujours le même message d'erreur.

 

J'ai mis la partie ci-dessous dans une scène 

local HC2 = Net.FHttp("irisnet.fr",80);
local result = HC2:GET("/api/edf-tempo.php?Mode=TEMPO&Key=fibaro");
fibaro:sleep(2000);
  	local s = json.decode(result);

 

et ça donne ça en debug... :

[DEBUG] 15:01:54: line 8: attempt to index global 'Net' (a nil value)

 

Ca te/vous parle ??

Partager ce message


Lien à poster
Partager sur d’autres sites

Un peu ;-)

 

Tu es dans une scene ou dans un VD ?

Partager ce message


Lien à poster
Partager sur d’autres sites

Mon dernier message, c'est dans une scène. Sinon, mon "vrai" problème, c'est dans un VD (le message initial)

Partager ce message


Lien à poster
Partager sur d’autres sites

Si ton dernier message est dans une scène, le Net.FHttp ne fonctionne pas. D'où l'erreur. Cela ne fonctionne que dans un VD.

ajoute le fibaro:debug(s) dans le bouton du VD qui correspond.

Partager ce message


Lien à poster
Partager sur d’autres sites

Intégré ça :

local HC2 = Net.FHttp("irisnet.fr",80);
local result = HC2:GET("/api/edf-tempo.php?Mode=TEMPO&Key=fibaro");
fibaro:sleep(2000);
 
local s = json.decode(result);
fibaro:debug(s)

 

 

dans un bouton d'un VD (et rien mis dan le main loop); en debug, ça donne ça comme message d'erreur :

 

[ERROR] 11:30:50: line 5: Expected value but found invalid token at character 1

 

Ligne 5, c'est la ligne : local s = json.decode(result)

 

Partager ce message


Lien à poster
Partager sur d’autres sites

Bonjour,
J'ai la même erreur sur mon propre développement. :-(
Je reviens vers vous dés que j'ai trouvé d'ou provient l'erreur JSON.
C'est le parse json de Fibaro qui a du changé.
J'ai déjà recontré cela sur des requêtes ajax jquery.
Je regarde...
 

 

Modifié par pilou87

Partager ce message


Lien à poster
Partager sur d’autres sites

Je suspecte une modif dans une mise à jour logicielle de la HC2... 

... mais j'y connais pas grand chose... 

:-)

 

Partager ce message


Lien à poster
Partager sur d’autres sites

Ou pas, vus êtes sur que l'API cote edf n'a pas changé ?

 

Vous l'atteignez directement depuis un navigateur ?

Partager ce message


Lien à poster
Partager sur d’autres sites

Alors pilou 87, tu patauges, tu progresses ou tu procrastines ?

;)

Partager ce message


Lien à poster
Partager sur d’autres sites

Salut,

 

pas de réponse de @pilou87... Je l'ai relancé par mp mais pas de réponse non plus... :-(

Est-ce qu'une âme charitable (mais surtout qq'un de suffisamment pointu!! :-P) pourrait nous donner un coup de pouce sur le sujet...???

L'hiver est là... (tiens ça me rappelle quelque chose...)

 

Merci d'avance pour nos factures d'électricité !!

:-)

Modifié par ebtjjn

Partager ce message


Lien à poster
Partager sur d’autres sites

Bonjour,

 

Suis pas assez pointu, mais ceci te dit-il quelquechose ? C'est bien ce que tu souhaites avoir ?


 

{

"success":true,

"TempoJour":"BLEU",

"TempoDemain":"BLEU",

"TotalBleu":300,

"RestantBleu":293,

"TotalBlanc":43,

"RestantBlanc":43,

"TotalRouge":22,

"RestantRouge":22,

"MonEmail":"jfcane@lc-network.fr"

}

je l'ai eu comme ceci dans un navigateur

 

http://www.irisnet.fr/api/edf-tempo.php?Mode=TEMPO&Key=fibaro

 

Modifié par pepite

Partager ce message


Lien à poster
Partager sur d’autres sites

Bonjour,
je suis encore désolé de ne pas avoir répondu plus tôt à ces posts, mais je suis accaparé (et à fond) sur un logiciel de caisse en ligne
et comme nous n'avons pas encore démarré le tempo blanc / rouge je ne me suis pas encore 'agacé' sur les routines EDF.
Promis, juré, je m'en occupe bientôt. 
Effectivement des variantes ont été apportées suite au mise à jour de la HC2, mais je n'ai pas  eu encore le temps de me plonger sur le problème.
En tout cas je vais m'y mettre car cela me pose également un problème sur un dialogue entre la HC2 et un autre système que j'ai ( INDIGO sur MAC)
 

  • Upvote 1

Partager ce message


Lien à poster
Partager sur d’autres sites

Hello,

 

@pepite :

1-  je n'arrive pas à faire fonctionner la requête que tu indiques dans mon navigateur : message d'erreur "Internal serveur error : Please contact the server administrator at postmaster@www.irisnet.fr ". Pilou87 avait bien indiqué que c'était un pbe qu'il pensait pouvoir régler.

2- même si la requête fonctionnait je ne saurais pas comment récupérer les infos en lua... :-)

 

Je refais donc appel aux bonnes âmes : pour m'aider/nous aider (je ne suis pas le seul j'imagine non?) 

Même une autre solution (si pas trop compliquée et que je trouvais ce VD juste parfait !) m'intéresse !!

 

Des avis ?

Modifié par ebtjjn
message initial incomplet

Partager ce message


Lien à poster
Partager sur d’autres sites

Bonjour,

 

C'est sur son serveur perso. Il doit y avoir un problème ou peut-etre l-a-t-il tout simplement éteint.

 

Sinon, je n'ai pas recherché mais pas d'API pour ENGIE ?

Partager ce message


Lien à poster
Partager sur d’autres sites

 Quel rapport avec Engie? Ce ne serait pas plutôt Enedis (ou Edf)?

 

Partager ce message


Lien à poster
Partager sur d’autres sites

J'ai trouvé ça mais je n'ai aucune idée si cela est faisable...!!

http://www.touteladomotique.com/forum/viewtopic.php?f=18&t=14699&start=144

Autant côté LUA je passe du temps à chercher mais quand il s'agit de json, je suis perdu.... (je n'ai pas encore compris ce que c'était le json et son fonctionnement... )

:D

Partager ce message


Lien à poster
Partager sur d’autres sites

Bonjour,

 

Le json est un format de fichier qui permet de stocker des données sous forme très lisible par un humain et une machine ;-)

 

En LUA tu peux lire un fichier au format json. C'est assez simple (enfin, moi je galere des qu'l y a des tableaux dans le json, faut rajouter des chiffres pour le num du tableau mais c'est faisable )

Regarde a quoi cela ressemble avec ceci : https://codebeautify.org/online-json-editor

 

Est-ce que ces URL sont mises à jour ?

https://particulier.edf.fr/bin/edf_rc/servlets/ejptemponew?Date_a_remonter=2017-12-05&TypeAlerte=TEMPO

https://particulier.edf.fr/bin/edf_rc/servlets/ejptempodaysnew?TypeAlerte=TEMPO

https://particulier.edf.fr/services/rest/referentiel/historicTEMPOStore?dateBegin=2016&dateEnd=2017

Est-ce que cela correspond ?

 

Si oui en LUA depuis une scène :

il faut passer par un Net.HTTPClient()  :-)

Tu vas pouvoir faire des recherches LUA ;-) il y a plein d'exemples sur le forum. je te trouve ca

 

 

http = net.HTTPClient()
http:request("http://"..ipaddress..":"..port.."/"..zonename.."/stop", {
                 options = { method = 'GET' },
                 success = function(p)
                            fibaro:debug(p.status)
                             fibaro:debug(p.data)
                 end,
                 error = function(err)
                            fibaro:debug(err)
                 end
   })

 

 

Modifié par pepite

Partager ce message


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

 Les données retournées par le deuxième lien sont bonnes.

PARAM_NB_J_BLEU 211
PARAM_NB_J_BLANC 38
PARAM_NB_J_ROUGE

20

Partager ce message


Lien à poster
Partager sur d’autres sites

×