Aller au contenu

Messages recommandés

Posté(e)

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.

  • 1 an après...
Posté(e) (modifié)

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
Posté(e)

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.

Posté(e)

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 ??

Posté(e)

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

Posté(e)

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.

Posté(e)

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)

 

Posté(e) (modifié)

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
Posté(e)

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

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

:-)

 

  • 2 semaines après...
  • 2 semaines après...
  • 5 semaines après...
Posté(e) (modifié)

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
Posté(e) (modifié)

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
Posté(e)

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
  • 1 mois après...
Posté(e) (modifié)

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
Posté(e)

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 ?

Posté(e) (modifié)

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
Posté(e)
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

×
×
  • Créer...