Aller au contenu

Messages recommandés

Posté(e)

Je vous partage mon script que j'ai créer pour être régulièrement notifié de ma production photovoltaà¯que.

 

 

A savoir que ce script est facilement adaptable pour suivre sa consommation Electrique générale compteur + coà»t 

 

 

 

Petit rappel pour récupérer les valeur de l'écodevice et envoyer cela dans des variables :

HC2 = Net.FHttp("192.168.0.151")-- ip de l'écodevice
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:setGlobal("INDEXPROD", response.T2_BASE)


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

Tout d'abord, il va falloir créer 4 variables globales:

 

-index ( index relevé à  minuit )

-indexprod  ( index à  l'instant "t"  )

-indexmois ( index relevé le 1er du mois )

-index28/07 ( index relevé à  la date du contrat erdf )

 

 

J'ai crée un vd avec 4 boutons, 3 boutons renseignent donc ces variables à  des moments précis

--récupération de l'index de production
local indexprod = fibaro:getGlobal("INDEXPROD") 
 fibaro:debug(indexprod)

--affectation de la prod dans la var "index" / a faire à  minuit
fibaro:setGlobal("index", indexprod);
--récupération de l'index de production
local indexprod = fibaro:getGlobal("INDEXPROD") 
 fibaro:debug(indexprod)

--affectation de la prod dans la var "indexmois" / a faire au 1er du mois
fibaro:setGlobal("indexmois", indexprod);

--recupération de l'index de production
local indexprod = fibaro:getGlobal("INDEXPROD") 
 fibaro:debug(indexprod)

--affectation de la prod dans la var "index2807" / a faire à  la date souhaitée
fibaro:setGlobal("index2807", indexprod);

Le dernier bouton servant à  faire les relevés d'index et calcul :

-- Formattage des chiffres ---
function formatIndex(value)
  local sous = (indexprod - value)/1000;--soustraction
  return string.format("%010.3f", sous)
end
 
indexprod = tonumber(fibaro:getGlobal("INDEXPROD") or 0);
fibaro:debug("index actuel: "..indexprod.."");--récup prod actuelle
 
local index = tonumber(formatIndex(tonumber(fibaro:getGlobal("index") or 0)));
local minuit = tonumber(fibaro:getGlobal("index") or 0);
fibaro:debug("index à  minuit: "..minuit.."");--récup prod à  minuit
 
local indexmois = tonumber(formatIndex(tonumber(fibaro:getGlobal("indexmois") or 0)));
local mois = tonumber(fibaro:getGlobal("indexmois") or 0);
fibaro:debug("index au 1er: "..mois.."")--récup prod du mois
 
local index2807 = tonumber(formatIndex(tonumber(fibaro:getGlobal("index2807") or 0)));
local date = tonumber(fibaro:getGlobal("index2807") or 0);
fibaro:debug("index au 28/07: "..date.."")--récup prod à  la date choisie
 
local euro = tonumber(0.465)--prix d'achat erdf
 
---------------
local prixjour = (euro * index) 
jour = string.sub(prixjour, 1, 4)
--fibaro:debug(jour)
fibaro:debug("Prod du jour : "..index.." Kwh - soit: "..jour.." €");
 
-------------
local prixmois = (euro * indexmois)
mois = string.sub(prixmois, 1, 6)
--fibaro:debug(mois)
fibaro:debug("Prod du mois : "..indexmois.." Kwh - soit: "..mois.." €");
-------------
local prixannee = (euro * index2807)
annee = string.sub(prixannee, 1, 7)
--fibaro:debug(annee)
fibaro:debug("Prod depuis le 28/07 : "..index2807.." Kwh - soit: "..annee.." €");
-------------
message = ("Production solaire du jour : "..index.." Kwh - soit: "..jour.." € / Production mensuelle : "..indexmois.." Kwh - soit: "..mois.." € / Production annuelle :"..index2807.." Kwh - soit: "..annee.." €")
fibaro:debug(message); 
fibaro:setGlobal("pushover", message);
fibaro:call(198, "pressButton", "2");  --pushover lua 
fibaro:sleep(1000);   
fibaro:setGlobal("pushover", "" );--raz variable

En "debug" :

[DEBUG] 18:19:32: index actuel: 8715878
[DEBUG] 18:19:32: index à  minuit: 8698402
[DEBUG] 18:19:32: index au 1er: 8485402
[DEBUG] 18:19:32: index au 28/07: 6340400
[DEBUG] 18:19:32: 8.12
[DEBUG] 18:19:32: Prod du jour : 17.476 Kwh - soit: 8.12 €
[DEBUG] 18:19:32: 107.17
[DEBUG] 18:19:32: Prod du mois : 230.476 Kwh - soit: 107.17 €
[DEBUG] 18:19:32: 1104.59
[DEBUG] 18:19:32: Prod depuis le 28/07 : 2375.478 Kwh - soit: 1104.59 €
[DEBUG] 18:19:32: Production solaire du jour : 17.476 Kwh - soit: 8.12 € / Production mensuelle : 230.476 Kwh - soit: 107.17 € / Production annuelle :2375.478 Kwh - soit: 1104.59 €

Personnellement, j'ai choisi d’être informé 2 fois par jour avec l'application "pushover".

 

J'ai donc créé une scène qui "appui" sur le bouton n°4 et qui me notifie quotidiennement ma production :

 

gallery_2_5_353472.png

 

 

 

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

Oui, c'est vrai ca? personne ne l'a fait ?

 

Faut que je m'y colle depuis le temps que je dois m'en occuper !   ;)

 

Surtout que la base est déjà  faite, y'a juste à  modifier légèrement mon code.

Posté(e)

Bon, j'ai eu du temps du coup....  :)

 

Quelque chose comme çà , ça t'irais ?

 

Rafraîchissement auto toutes les 10 sec mais paramétrable selon le besoin.

Remise à  zéro des coà»ts tous les jours à  minuit

 

gallery_2_27_20102.png

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

Bonjour,

 

J'étais en train de regarder pour en faire un mais je vois que le tiens serait presque parfait :)

Il manquerait juste a stocker les résultat dans un BDD et faire un reporting sur l'année.

En tout cas j'attends ça sortie avec impatience (ou alors être beta testeur :))

Posté(e)

Il y'a pas moyen de stocker un tableau de valeur dans une variable globale comme ça et faire le reporting directement ?

jsonString = json.encode(energylist);
     fibaro:setGlobal("energylist", jsonString);
        -- after encoding jsonString variable contains '{ "value2": null, "value1": 512 }' string
       fibaro:debug(jsonString)

Ce qui donne :

[DEBUG] 19:18:42: [{"date":"06-04-15","hc":"1050730","hp":"1325477"},{"date":"07-04-15","hc":"1059496","hp":"1334628"},{"date":"08-04-15","hc":"1066478","hp":"1341236"},{"date":"09-04-15","hc":"1073700","hp":"1348196"},{"date":"10-04-15","hc":"1077891","hp":"1354854"},{"date":"11-04-15","hc":"1083482","hp":"1365193"},{"date":"12-04-15","hc":"1092154","hp":"1374110"},{"date":"13-04-15","hc":"1100943","hp":"1383880"},{"date":"14-04-15","hc":"1108039","hp":"1392096"},{"date":"15-04-15","hc":"1114665","hp":"1397228"},{"date":"16-04-15","hc":"1119952","hp":"1405352"},{"date":"17-04-15","hc":"1124820","hp":"1415103"},{"date":"18-04-15","hc":"1130804","hp":"1423908"},{"date":"19-04-15","hc":"1135514","hp":"1432648"},{"date":"20-04-15","hc":"1142561","hp":"1441120"},{"date":"21-04-15","hc":"1148434","hp":"1445956"},{"date":"22-04-15","hc":"1153779","hp":"1452177"},{"date":"23-04-15","hc":"1158783","hp":"1458661"},{"date":"24-04-15","hc":"1164024","hp":"1466692"},{"date":"25-04-15","hc":"1167919","hp":"1474140"},{"date":"26-04-15","hc":"1173862","hp":"1486705"}]
Posté(e)

Voilà  ce que ça donne :

[DEBUG] 23:49:53: Calcul sur la periode du 21-01-15 au 26-04-15
[DEBUG] 23:49:53: mois=Jan, totalHP=361 kWh, totalHC=577 kWh, TOTAL==>119€
[DEBUG] 23:49:53: mois=Feb, totalHP=380 kWh, totalHC=350 kWh, TOTAL==>97€
[DEBUG] 23:49:53: mois=Mar, totalHP=265 kWh, totalHC=329 kWh, TOTAL==>77€
[DEBUG] 23:49:53: mois=Apr, totalHP=167 kWh, totalHC=229 kWh, TOTAL==>51€

 

Et puis mettre en forme tout ça dans un module avec des lablels. Cf le code source que j'ai fait. 

 

gallery_178_65_6910.png

Posté(e)

Bonsoir je vient de faire évoluer ma config domotique en mettant une hc2 et maintenant j'ai l'éco device

Dite moi ou je pourrais trouvé le module virtuel que vous avez fait car il m'intéresse également

j'ai une maison en bois BBC et je surveille de tres tres prêt la conso de la maison

Et votre module virtuel me permettrait de la suivre mieux qu'àl'heure actuelle

Merci d'avance

Posté(e)

Bonsoir,

 

Pour le moment on peut trouver le code source ici : https://github.com/lboue/hc2-lua-scenes que l'on peut coller dans un bouton de VD. Il faut que je prenne le temps de faire un VD qui stocke un tableau JSON dans une variable globale. Et surtout les cas d'erreurs (c'est un peu plus compliqué) et faire ça un peu plus propre.

Ensuite on peut lire les valeurs pour faire une estimation de facture ou un suivi conso.

J'ai une maison RT2012 toute neuve, je veux comparer la consommation réelle avec ce qui m'a donné le bureau d'étude lors du test de perméabilité.

Posté(e)

Ok je vais essayer de me débrouiller pour le faire tout seul je débute juste en lui 2 jour avec aujourd'hui avant j'étais sur home center lite donct pas de lua

Pour ce qui est de la maison si elle est en bois et que tout les teste de perméabilité on était fait correctement tu ne devrais pas consommer beaucoup

Nous ont a fait ( non moi j'ai fait) un maison en ossature bois de 130m2 avec un Etage et on consomme moin de 750€ D'électricité (tout electrique)àl'année et nous sommes que trois pour le moment

Pour en revenir au module je vais tenter tout seul et ci j'y arrive je le partage en tout cas

merci de ta reponse

Posté(e)

Bonsoir merci darklite44 je cai l'installer ce soir et je te tient au courant

Encore un grand merci

Posté(e)

Bonsoir

Je suis en V3.6

J'ai mis le code source ci-dessus " https://github.com/lboue/hc2-lua-scenes/blob/master/Eco_Devices_monthly_consumption.lua "  de Darklite44 dans un bouton "actualiser" et créer autant d’étiquette que de mois,

mais l'ai l'erreur a la ligne 31 (jsonTable = json.decode(jsonString))   >>> : [ERROR] 21:43:20: line 31: Expected value but found T_END at character 1

Une idée de mon erreur ?

Merci

Posté(e)
Il faut que je prenne le temps de faire un VD qui stocke un tableau JSON dans une variable globale. Et surtout les cas d'erreurs (c'est un peu plus compliqué) et faire ça un peu plus propre.

Ensuite on peut lire les valeurs pour faire une estimation de facture ou un suivi conso.

 

 

Oui car ta variable globale "energylist" est vide. En fait il manque un bout du traitement que je fait dans un autre VD.

local jsonString = fibaro:getGlobalValue("energylist")

Essaie de remplacer par ça pour voir :

local jsonString = '[{"date":"06-04-15","hc":"1050730","hp":"1325477"},{"date":"07-04-15","hc":"1059496","hp":"1334628"},{"date":"08-04-15","hc":"1066478","hp":"1341236"},{"date":"09-04-15","hc":"1073700","hp":"1348196"},{"date":"10-04-15","hc":"1077891","hp":"1354854"},{"date":"11-04-15","hc":"1083482","hp":"1365193"},{"date":"12-04-15","hc":"1092154","hp":"1374110"},{"date":"13-04-15","hc":"1100943","hp":"1383880"},{"date":"14-04-15","hc":"1108039","hp":"1392096"},{"date":"15-04-15","hc":"1114665","hp":"1397228"},{"date":"16-04-15","hc":"1119952","hp":"1405352"},{"date":"17-04-15","hc":"1124820","hp":"1415103"},{"date":"18-04-15","hc":"1130804","hp":"1423908"},{"date":"19-04-15","hc":"1135514","hp":"1432648"},{"date":"20-04-15","hc":"1142561","hp":"1441120"},{"date":"21-04-15","hc":"1148434","hp":"1445956"},{"date":"22-04-15","hc":"1153779","hp":"1452177"},{"date":"23-04-15","hc":"1158783","hp":"1458661"},{"date":"24-04-15","hc":"1164024","hp":"1466692"},{"date":"25-04-15","hc":"1167919","hp":"1474140"},{"date":"26-04-15","hc":"1173862","hp":"1486705"}]'

J'ai refait un nouveau VD qui combine tout ça et que j'ai envoyé à  Petermoto. J'attend son retour avant de le publier. Aussi je ne traite que le cas des abo HC.

Posté(e)

Ca me donne :

[DEBUG] 23:28:27: Calcul sur la periode du 06-04-15 au 26-04-15
[ERROR] 23:28:27: line 74: attempt to perform arithmetic on field 'hc_day' (a nil value)

line 74 =

  totalHP = totalHP + v.hc_day;  
Posté(e)

Essaie avec ça 

[{"hc":"1050730","hc_day":7818,"date":"06-04-15","hp":"1325477","hp_day":13104},{"hc":"1059496","hc_day":8766,"date":"07-04-15","hp":"1334628","hp_day":9151},{"hc":"1066478","hc_day":6982,"date":"08-04-15","hp":"1341236","hp_day":6608},{"hc":"1073700","hc_day":7222,"date":"09-04-15","hp":"1348196","hp_day":6960},{"hc":"1077891","hc_day":4191,"date":"10-04-15","hp":"1354854","hp_day":6658},{"hc":"1083482","hc_day":5591,"date":"11-04-15","hp":"1365193","hp_day":10339},{"hc":"1092154","hc_day":8672,"date":"12-04-15","hp":"1374110","hp_day":8917},{"hc":"1100943","hc_day":8789,"date":"13-04-15","hp":"1383880","hp_day":9770},{"hc":"1108039","hc_day":7096,"date":"14-04-15","hp":"1392096","hp_day":8216},{"hc":"1114665","hc_day":6626,"date":"15-04-15","hp":"1397228","hp_day":5132},{"hc":"1119952","hc_day":5287,"date":"16-04-15","hp":"1405352","hp_day":8124},{"hc":"1124820","hc_day":4868,"date":"17-04-15","hp":"1415103","hp_day":9751},{"hc":"1130804","hc_day":5984,"date":"18-04-15","hp":"1423908","hp_day":8805},{"hc":"1135514","hc_day":4710,"date":"19-04-15","hp":"1432648","hp_day":8740},{"hc":"1142561","hc_day":7047,"date":"20-04-15","hp":"1441120","hp_day":8472},{"hc":"1148434","hc_day":5873,"date":"21-04-15","hp":"1445956","hp_day":4836},{"hc":"1153779","hc_day":5345,"date":"22-04-15","hp":"1452177","hp_day":6221},{"hc":"1158783","hc_day":5004,"date":"23-04-15","hp":"1458661","hp_day":6484},{"hc":"1164024","hc_day":5241,"date":"24-04-15","hp":"1466692","hp_day":8031},{"hc":"1167919","hc_day":3895,"date":"25-04-15","hp":"1474140","hp_day":7448},{"hc":"1173862","hc_day":5943,"date":"26-04-15","hp":"1486705","hp_day":12565}]
Posté(e)

Ca fonctionne mais s'arrete a Label1 JANVIER

[DEBUG] 07:50:30: Calcul sur la periode du 06-04-15 au 26-04-15
[DEBUG] 07:50:30: mois=Jan, totalHP=114 kWh, totalHC=152 kWh, TOTAL==>33€
Posté(e)

@darklite44 j'ai mis en place le MV que tu m'a envoyé mais il ne fonctionne pas par contre j'ai récupérer sur ton Gith hc2-lua-Eco_Devices_next_bill.lua mais celui làfonctionne mais il n'affiche rien sur le module virtuel par contre je débute sur le lua

J'aurais bien voulue avoir celui que moicphil vous a fournit car je n'ai pas besoin du coût sur une année mais plus celui que vous avez tester en beta je te met des screens en pj pour que tu puisse voir

Merci d'avance

post-1332-0-71694600-1430861244_thumb.jpg

post-1332-0-30163900-1430861256_thumb.jpg

×
×
  • Créer...