Aller au contenu
Moicphil

Ecodevice - Notification Quotidienne Production (Ou Conso )

Recommended Posts

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

Partager ce message


Lien à poster
Partager sur d’autres sites

Prochaine étape...même base de script mais dédié conso avec prise en compte des tarifs HC / HP...

  • Upvote 2

Partager ce message


Lien à poster
Partager sur d’autres sites

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.

Partager ce message


Lien à poster
Partager sur d’autres sites

:)

 

Entendu, je donnes pas de dates, mais promis je m'y colle dés que possible...

Partager ce message


Lien à poster
Partager sur d’autres sites

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

Partager ce message


Lien à poster
Partager sur d’autres sites

Hello, je veux bien faire beta-testeur aussi :)

Partager ce message


Lien à poster
Partager sur d’autres sites

à‡a fonctionne chez moi également  ;). Reste à  voir pour me notifie quotidiennement ma consommation avec Pushover.

Partager ce message


Lien à poster
Partager sur d’autres sites

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 :))

Partager ce message


Lien à poster
Partager sur d’autres sites

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"}]

Partager ce message


Lien à poster
Partager sur d’autres sites

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

Partager ce message


Lien à poster
Partager sur d’autres sites

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

Partager ce message


Lien à poster
Partager sur d’autres sites

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é.

Partager ce message


Lien à poster
Partager sur d’autres sites

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

Partager ce message


Lien à poster
Partager sur d’autres sites

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

Encore un grand merci

Partager ce message


Lien à poster
Partager sur d’autres sites

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

Partager ce message


Lien à poster
Partager sur d’autres sites
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.

Partager ce message


Lien à poster
Partager sur d’autres sites

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;  

Partager ce message


Lien à poster
Partager sur d’autres sites

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}]

Partager ce message


Lien à poster
Partager sur d’autres sites

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€

Partager ce message


Lien à poster
Partager sur d’autres sites

@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

Partager ce message


Lien à poster
Partager sur d’autres sites

×