Aller au contenu

Messages recommandés

Posté(e)

Voici un module virtuel pour l'ECO-DEVICES.

 

J'ai utilisé un bouton plutôt que le main loop car au bout de quelques heures/jours les informations ne remontaient plus. J'espère que ça tiendra cette fois (c'est ok depuis 3 jours)...

 

Il affiche  :

• l'index en temps réel (évite de descendre dans le garage pour le relevé compteur ou de le faire pendant les vacances)

• la consommation instantanée en kWh

• la consommation depuis 00h01 et le coà»t en euros.

 

Pour ce calcul, je vous invite à  vérifier vos coà»t, taxe et abonnement sur votre facture.

 

Ce module est prévu pour un abonnement standard (donc sans HP HC) mais vous pourrez l'adapter facilement.

 

 

554829Capturedcran20140530143943.png

 

La conso de la veille est la même sur l'image car je viens de la créer. Elle sera mise à  jour ce soit à  00h01.

 

Il vous faudra créer 5 variables globales dans le panneau variables :

 

• ABO

• CONSO

• INDEX

• ConsoMinuit

• ConsoVeille

 

Voici le main loop (réduit à  sa plus simple expression mais commenté !) ;)

-- Notez l'utilisation d'un bouton et non du main loop qui plante au bout de quelques heures !!!

-- Pensez à  modifier l'adresse IP de votre ECO-Devices.
-- NB : calcul commencera seulement après 00h01 (heure de la Mà J de la velur de l'index de référence)

fibaro:call(63, "pressButton", "6");
fibaro:sleep(5*1000) -- Attention HC2 ajoute à  ce temps le loop de 3 secondes par défaut. 

Voici le code du bouton (ID 6) :

-- mise à  jour des données en provenance de l'ECO-Devices :
HC2 = Net.FHttp("192.168.0.53")
response = HC2:GET("/api/xdevices.json?cmd=10")

	-- enregistrement du retour de l API dans une table
fibaro:debug(response)
response = json.decode(response)
 
fibaro:setGlobal("ABO", response.T1_PTEC)
fibaro:setGlobal("CONSO", response.T1_PAPP)
fibaro:setGlobal("INDEX", response.T1_BASE/1000)

fibaro:call(63, "setProperty", "ui.Label1.value", fibaro:getGlobalValue("INDEX") .. " kWh")
fibaro:call(63, "setProperty", "ui.Label2.value", fibaro:getGlobalValue("CONSO").." Watts")

-- Calcul du coà»t de la conso de la journée maintenant :
local VconsoInstant = (fibaro:getGlobalValue("INDEX") - fibaro:getGlobalValue("ConsoMinuit"))
VconsoInstant = string.format("%.2f",VconsoInstant)

-- coà»t conso réelle (sans abo et taxes)
local Vcout = (VconsoInstant * 0.105)  -- Prix unitaire HT (€/kWh) :0,0883 HT

-- 0,60 € c'est le coà»t TTC des taxes et abonnement : abo + TCFE (CR*0,00932) + CSPE (CR*0,01650) + CTA 2,88
local AboTaxeEtContribution = (15.78 + (VconsoInstant*0.00932) + (VconsoInstant*0.01650) +2.88)/30
--AboTaxeEtContribution = string.format("%.3f",AboTaxeEtContribution)

-- calcul conso intstantanée + cout frais fixes à  la journée
Vcout = Vcout + AboTaxeEtContribution

-- réduction du nombre de chiffre après la virgule :
Vcout = string.format("%.2f",Vcout)

-- Sauvegarde de la conso de la veille :
local currentDate = os.date("*t");

if (
 ( ((currentDate.wday == 1 or currentDate.wday == 2 or currentDate.wday == 3 or currentDate.wday == 4 or currentDate.wday == 5 or currentDate.wday == 6 or currentDate.wday == 7) and string.format("%02d", currentDate.hour) .. ":" .. string.format("%02d", currentDate.min) == "00:00") )
)
then
  fibaro:setGlobal("ConsoVeille", VconsoInstant .. " kWh soit " .. Vcout .. " €")
end

-- Sauvegarde de l'index à  minuit une :
if (
 ( ((currentDate.wday == 1 or currentDate.wday == 2 or currentDate.wday == 3 or currentDate.wday == 4 or currentDate.wday == 5 or currentDate.wday == 6 or currentDate.wday == 7) and string.format("%02d", currentDate.hour) .. ":" .. string.format("%02d", currentDate.min) == "00:01") )
)
then
  fibaro:setGlobal("ConsoMinuit", fibaro:getGlobalValue("INDEX"))
end

-- mise à  jour des valeurs des labels
fibaro:call(63, "setProperty", "ui.Label3.value", fibaro:getGlobalValue("ConsoMinuit"))
fibaro:call(63, "setProperty", "ui.Label4.value", VconsoInstant .. " kWh = " .. Vcout .. " €")
fibaro:call(63, "setProperty", "ui.Label5.value", fibaro:getGlobalValue("ConsoVeille"))

N'hésitez pas si vous avez des questions ...  :)

 

Mà J : Avec la conso de la veille ...

 

 

EDF_Ecodevices.vfib

  • Upvote 1
Posté(e)

ça c'est bien  :60:

 

tu me mâche le travail, j'en veux plus, mais déjà , cela va m'éviter de m’embêter pour les bases, surtout qu'en ce moment j'ai beaucoup de taff, d’ailleurs, vous devez vous rendre compte que je pollue bien vos poste  :D

hien, Steven....  :P

  • Upvote 1
Posté(e)

Mince... j'ai oublié de décaler l'heure d'enregistrement pour les données de la veille. Je corrigerai ça demain... :)

Du coup les données de la veille sont àzéro... :(

Posté(e)
 

Module virtuel mis à  jour.

 

Ajout des lignes 37 à  42 dans le code du bouton (pour avoir les bonnes données avant la bascule à  00h01)... :)

Posté(e)

J'ai corrigé le MV avec les termes puissance (pour la consommation instantanée en W) et conso (pour la consommation sur la durée en Wh) qui me semblent plus appropriés ici. B)

  • 1 mois après...
Posté(e)

Bonjour à  tous et merci pour ce tuto intéressant,

 

J'ai un petit bug et je ne comprend par pourquoi cela ne fonctionne pas

 

lorsque j'active le mode debug il me notifie ceci : 

 

[DEBUG] 11:43:00: {"product":"Eco-devices","T1_PTEC":"HP..","T1_PAPP":220,"T1_HCHP":32522614,"T1_HCHC":25827599,"T2_PTEC":"----","T2_PAPP":0,","INDEX_C1":0,"INDEX_C2":0}

[ERROR] 11:43:00: line 7: Expected colon but found invalid token at character 127

 

La ligne 7 correspond à  response = json.decode(response)

 

Pourriez-vous m'aidez car je n'ai vraiment aucune odée de ou cela peut provenir

 

Merci à  vous

Posté(e)

Ton module te retourne une donnée qui n'est pas formatée correctement :
 
{"product":"Eco-devices","T1_PTEC":"HP..","T1_PAPP":220,"T1_HCHP":32522614,"T1_HCHC":25827599,"T2_PTEC":"----","T2_PAPP":0,","INDEX_C1":0,"INDEX_C2":0}
 
Ce guillemet et cette virgule semble s'être perdues.
 
Ajoute cette ligne juste avant la ligne 7

response = response:gsub("\",\"INDEX_C1", "\"INDEX_C1")

Bien évidement, je ne peux rien garantir, ni même tester :-(

Posté(e)

Bonjour à  tous,

 

merci pour vos réponses rapides, la technique de Steven fonctionne

 

Cependant j'ai une nouvelle erreur:

 

 

[ERROR] 11:12:16: line :setGlobal (arg 3), expected 'string const &' got 'nil'

 
Je suis désolé de devoir encore vous embêter
 
Merci
Posté(e)

Comme annoncé par JossAlf, met à  jour ton IPX car à  la lecture du code, tu devrais avoir T1_BASE en retour de ton IPX alors que je ne le vois pas dans le JSON fourni :

[DEBUG] 11:43:00: {"product":"Eco-devices","T1_PTEC":"HP..","T1_PAPP":220,"T1_HCHP":32522614,"T1_HCHC":25827599,"T2_PTEC":"----","T2_PAPP":0,","INDEX_C1":0,"INDEX_C2":0}
 
Comme s'il manquait quelque chose
 

OK : fibaro:setGlobal("ABO", response.T1_PTEC)
OK : fibaro:setGlobal("CONSO", response.T1_PAPP)
PAS OK : fibaro:setGlobal("INDEX", response.T1_BASE/1000)
Posté(e)

 

Comme annoncé par JossAlf, met à  jour ton IPX car à  la lecture du code, tu devrais avoir T1_BASE en retour de ton IPX alors que je ne le vois pas dans le JSON fourni :

[DEBUG] 11:43:00: {"product":"Eco-devices","T1_PTEC":"HP..","T1_PAPP":220,"T1_HCHP":32522614,"T1_HCHC":25827599,"T2_PTEC":"----","T2_PAPP":0,","INDEX_C1":0,"INDEX_C2":0}

 

Comme s'il manquait quelque chose

 

OK : fibaro:setGlobal("ABO", response.T1_PTEC)
OK : fibaro:setGlobal("CONSO", response.T1_PAPP)
PAS OK : fibaro:setGlobal("INDEX", response.T1_BASE/1000)

Je suis vraiment désolé mais même aprés le changement de version (systéme et site) j'ai la même erreur

Posté(e)

 

Ce module est prévu pour un abonnement standard (donc sans HP HC) mais vous pourrez l'adapter facilement.

 

 

Voilà , je pense, le soucis :)

 

Cela expliquerait pourquoi tu n'as pas de T1_BASE. Il te faudrait un module qui gère le HP / HC. Ou alors tu veux rien de précis et tu te base sur une moyenne (vu ta consommation 45% en HC et 55% en HP  ) tu pourrais faire ainsi.

--fibaro:setGlobal("INDEX", response.T1_BASE/1000)
fibaro:setGlobal("INDEX", (response.T1_HCHP+response.T1_HCHC)/1000)

Qui correspondrait à  du 50/50 et tu met comme tarif (prix HP + prix HC / 2).

 

Ou sinon, tu pleures jusqu'à  ce que JossAlf modifie son code pour permettre les HC et les HP. .. C'est la solution la plus simple mais pas forcement la plus sà»re.

Posté(e)

Voilà  le problème : je pense qu'il faut que j'apprenne à  lire :mellow: ,

 

effectivement mon abonnement est en HP/HC

 

merci je vais l'adapter à  mon abonnement

Posté(e)

Cool que tu puisses adapter le code car je suis en vacances avec un iPad mais pas d'ordinateur. ;)

Envoyé de mon iPhone àl'aide de Tapatalk

Posté(e)

Oui mais le forum s'affiche mal sous safari iOS (je n'arrive pas àaccéder au tag pour les codes)...

Et puis j'ai trouvé que ça comme excuse pour me défiler ;)

  • Upvote 1
  • 3 mois après...
Posté(e)

Question, quelques à  fait une version HC/HP ?

 

EDIT : J'ai trouvé, laissé tombé, merci. Par contre qqun remonte la partie compteur d'impulsion ?

  • 3 semaines après...
Posté(e)

Salut, 

 

Je viens de passer sur l'ecodevices et je suis aussi en heure de Base comme JossAlf  ;) du coup pourquoi reinventer quand des personnes ont fait exactement ce que je recherchais;) Merci JossAlf :60:

 

Par contre j'ai un ptit soucis:

 

- j'ai creé mes 5 variables

- J'ai importé le module 

- j'ai changer la ligne avec l'IP de mon ecodevices j'ai même testé dans un navigateur et j'obtiens bien ça 

{"product":"Eco-devices","T1_PTEC":"TH..","T1_PAPP":960,"T1_BASE":38600380,"T2_PTEC":"----","T2_PAPP":0,","INDEX_C1":2776,"INDEX_C2":0}

 

Je n'ai pas de retour dans le module EDF Ecodevices? J'ai du oublié qqles choses? une idée? 

 

Merci d'avance

Posté(e)

Merci de ta réponse JossAlf, je viens de passer de la 1.05.05 à  la 1.06.06 mais toujours rien  :(

Je continue de chercher ou j'aurais pu merdouiller  :15:

Posté(e)

Etonnant... car dans la ligne que tu avais collée il y a avait bien le bug (en rouge) :

{"product":"Eco-devices","T1_PTEC":"TH..","T1_PAPP":960,"T1_BASE":38600380,"T2_PTEC":"----","T2_PAPP":0,","INDEX_C1":2776,"INDEX_C2":0}

 

​Peux-tu refaire un copier/coller de données que tu obtiens maintenant que tu as fait la mise à  jour ?

×
×
  • Créer...