Re: Récupérer ses informations de consommation électriques via l'API ENEDIS
Publié : 14 nov. 2017, 09:59
Vous avez plus de chance que moi sur le journalier... et le forum domoticz reste silencieux... je vais rentrer un bug sinon...
Reprenez le contrôle de votre domotique
https://easydomoticz.com/forum/
Mon journalier en rentrant ce soir :epierre a écrit :Vous avez plus de chance que moi sur le journalier... et le forum domoticz reste silencieux... je vais rentrer un bug sinon...
hello,MazelleJeanne a écrit :J'ai refait une install propre, et je suis partie dans l'idée de comparer le coût en tarif bleu sans HC/HP, (en rentrant juste un coût dans T1 dans les paramètres de Domoticz), à ce que je vais payer chez EDF (avec HC/HP), ça va m'éviter des tableau excel et de modifier domoticz...Le seul que je ne pourrais pas m'éviter de tableau, c'est pour comparer avec un tempo (jour bleu blanc rouge et couplé avec HC/HP...)
Si non, réinstall ce matin, et pas de bug à noter, à voir au fil des jours... j'ai testé P1, Compteur (rfxmeter) et le instantané + compteur, c'est ce dernier qui marche... et ça sufit du coup.
Super boulot ton script! Encore merci!
Maintenant je vais regarder le chauffage
Dans la base multimeter et multimeter calendar on retrouve ça, on peut pas remplir avec ce qui viens de l'API?Electricity P1 smart meter
/json.htm?type=command¶m=udevice&idx=IDX&nvalue=0&svalue=USAGE1;USAGE2;RETURN1;RETURN2;CONS;PROD
IDX = id of your device (This number can be found in the devices tab in the column "IDX")
USAGE1= energy usage meter tariff 1
USAGE2= energy usage meter tariff 2
RETURN1= energy return meter tariff 1
RETURN2= energy return meter tariff 2
CONS= actual usage power (Watt)
PROD= actual return power (Watt)
USAGE and RETURN are counters (they should only count up).
For USAGE and RETURN supply the data in total Wh with no decimal point.
(So if your meter displays f.i. USAGE1= 523,66 KWh you need to send 523660)
Code : Tout sélectionner
return (obj[i]["conso"])Code : Tout sélectionner
function getDay(day,month) {
var mth=[ 'Jan','Feb','Mar','Apr','May','Jun','Jul','Aug','Sep','Oct','Nov','Dec'];
var obj = JSON.parse(fs.readFileSync('export_days_values.json', 'utf8'));
var dm=''+pad(day,2)+" "+mth[month-1];
for (var i = 0; i < Object.keys(obj).length; ++i) {
if (dm == obj[i]["time"]) return (obj[i]["conso1"]["conso2");
}
}
function generateDayHours() {
var cumul=getCumulBefore(q_year,q_month_s);
var mth=[ 'Jan','Feb','Mar','Apr','May','Jun','Jul','Aug','Sep','Oct','Nov','Dec'];
var obj = JSON.parse(fs.readFileSync('export_hours_values.json', 'utf8'));
for (var i = 0; i < Object.keys(obj).length; ++i) {
var req_date=''+q_year+'-'+q_month_e+'-'+q_day_s+' '+pad(obj[i]["time"].substr(0, 5),5)+':00';
if (obj[i]["conso"]>0) {
console.log('DELETE FROM \'MultiMeter\' WHERE devicerowid='+devicerowid+' and date = \''+req_date+'\'; INSERT INTO \'MultiMeter\' (DeviceRowID,Value1,Value2,Date) VALUES ('+devicerowid+', \''+Math.round(obj[i]["conso1"]*1000)+'\', \''+Math.round(obj[i]["conso2"]*1000)+'\', \''+Math.round(cumul*1000)+'\', \''+req_date+'\');') ;
cumul=cumul+(obj[i]["conso"]);
}
}
Code : Tout sélectionner
cumul=cumul+(obj[i]["conso"]);
c'est le DOMOTICZ_ID= dans les derniers scripts que j'ai mis, qui sont passé en paramètres à la génération de sqlMazelleJeanne a écrit :En modifiant devicerowid= c'est ça? ou y a encore mieux (histoire d'alimenter plusieurs device en même temps et voir les différences d'affichage)? ou alors j'ai pas vu