Récupérer ses informations de consommation électriques via l'API ENEDIS

Vous avez des questions concernant les scripts dans Domoticz, posez vos questions ici, quelque soit le langage nous tenterons des réponses pertinentes ...
epierre
Messages : 506
Inscription : 27 mai 2015, 09:32
Contact :

Re: Récupérer ses informations de consommation électriques via l'API ENEDIS

Messagepar epierre » 03 mai 2018, 14:10

tekkharibo a écrit :Merci de ta réponse.

C'est bete sachant qu'ils recup l'information toutes les 30 minutes.


oui sur le compteur lui-même mais ne les envoie qu'une fois par jour, et après redressement est disponible.
Imperihome & Domoticz: MyDomoAtHome !
Vera - Domoticz - MySensors

Disable adblock

This site is supported by ads and donations.
If you see this text you are blocking our ads.
Please consider a Donation to support the site.


tekkharibo
Messages : 177
Inscription : 28 déc. 2017, 09:51
Localisation : Albi

Re: Récupérer ses informations de consommation électriques via l'API ENEDIS

Messagepar tekkharibo » 03 mai 2018, 15:26

D'accord merci
Projet de domotique low-cost : Mon installation MAJ 11/06/2018
Dans le doute reboot !
Si vous êtes pas loin d'Albi on peut se rencontrer pour partager

epierre
Messages : 506
Inscription : 27 mai 2015, 09:32
Contact :

Re: Récupérer ses informations de consommation électriques via l'API ENEDIS

Messagepar epierre » 03 mai 2018, 17:07

tekkharibo a écrit :Par contre, je viens de m’apercevoir qu'il y a un décalage entre les heures du scripts et les heures de domoticz.

Il y a une heure de diff entre les 2
[/img][/url]


comment est réglé ta timezone sur ton pi ? gmt+1 DST ?
Imperihome & Domoticz: MyDomoAtHome !
Vera - Domoticz - MySensors

tekkharibo
Messages : 177
Inscription : 28 déc. 2017, 09:51
Localisation : Albi

Re: Récupérer ses informations de consommation électriques via l'API ENEDIS

Messagepar tekkharibo » 03 mai 2018, 23:34

Très bonne question, je le vois comment ? Je sais que j'ai la même heure sur mon pi et mon tel

Envoyé de mon SM-G935F en utilisant Tapatalk
Projet de domotique low-cost : Mon installation MAJ 11/06/2018
Dans le doute reboot !
Si vous êtes pas loin d'Albi on peut se rencontrer pour partager

Disable adblock

This site is supported by ads and donations.
If you see this text you are blocking our ads.
Please consider a Donation to support the site.


timhor
Messages : 3
Inscription : 18 avr. 2018, 16:45

Re: Récupérer ses informations de consommation électriques via l'API ENEDIS

Messagepar timhor » 04 mai 2018, 23:12

tekkharibo a écrit :Très bonne question, je le vois comment ? Je sais que j'ai la même heure sur mon pi et mon tel

Envoyé de mon SM-G935F en utilisant Tapatalk

Code : Tout sélectionner

pi@domoticz:~ $ cat /etc/timezone
Europe/Paris

pi@domoticz:~ $ date
Fri  4 May 23:12:30 CEST 2018

tekkharibo
Messages : 177
Inscription : 28 déc. 2017, 09:51
Localisation : Albi

Re: Récupérer ses informations de consommation électriques via l'API ENEDIS

Messagepar tekkharibo » 06 mai 2018, 23:07

Je suis bien en timezone Paris

Envoyé de mon SM-G935F en utilisant Tapatalk
Projet de domotique low-cost : Mon installation MAJ 11/06/2018
Dans le doute reboot !
Si vous êtes pas loin d'Albi on peut se rencontrer pour partager

pascal_69
Messages : 42
Inscription : 30 janv. 2018, 21:52

Re: Récupérer ses informations de consommation électriques via l'API ENEDIS

Messagepar pascal_69 » 11 mai 2018, 22:46

Bonsoir,

Après mise en place du script et récupération avec succès des données Enedis jusqu'au début de cette année, je suis resté un peu frustré de ne pas pouvoir récupérer celles des années précédentes.

La récupération des données est pourtant correcte, mais les fichier JSON ne précisent pas l'année.

Exemple à M - 5 (export_days_values.json) :

Code : Tout sélectionner

[{"time": "10 Nov", "conso": 5.673}, {"time": "11 Nov", "conso": 3.12}, {"time": "12 Nov", "conso": 5.83}, {"time": "13 Nov", "conso": 9.755}, {"time": "14 Nov", "conso": 8.061}, {"time": "15 Nov", "conso": 10.253}, {"time": "16 Nov", "conso": 11.108}, {"time": "17 Nov", "conso": 9.122}, {"time": "18 Nov", "conso": 6.095}, {"time": "19 Nov", "conso": 6.061}, {"time": "20 Nov", "conso": 18.833}, {"time": "21 Nov", "conso": 8.77}, etc ...


Une fois le script d'injection sql généré (req.sql) l'année fournie est incorrecte :

Code : Tout sélectionner

BEGIN TRANSACTION;
DELETE FROM 'Meter_Calendar' WHERE devicerowid=73 and date = '2018-11-10'; INSERT INTO 'Meter_Calendar' (DeviceRowID,Value,Counter,Date) VALUES (73, '5673', '549.838', '2018-11-10');
DELETE FROM 'Meter_Calendar' WHERE devicerowid=73 and date = '2018-11-11'; INSERT INTO 'Meter_Calendar' (DeviceRowID,Value,Counter,Date) VALUES (73, '3120', '555.511', '2018-11-11');
DELETE FROM 'Meter_Calendar' WHERE devicerowid=73 and date = '2018-11-12'; INSERT INTO 'Meter_Calendar' (DeviceRowID,Value,Counter,Date) VALUES (73, '5830', '558.631', '2018-11-12');
etc ..


J'ai jeté un oeil dans le code source du projet.
Le souci vient a priori du JavaScript domoticz_linky.js car on initialise systématique l'année de travail à partir de la date du jour :

Code : Tout sélectionner

var dateObj = new Date();
var q_year=dateObj.getUTCFullYear();


Et c'est cette année qui est utilisée par la suite pour écrire dans le fichier .sql :
Calcul de var_req_date dans function generateMonthDays() :

Code : Tout sélectionner

for (var i = 0; i < Object.keys(obj).length; ++i) {
                        var req_date=''+q_year+'-'+pad((mth.indexOf(obj[i]["time"].substr(3, 3))+1),2)+'-'+pad(obj[i]["time"].substr(0, 2),2);


J'essaye de trouver une manière d'adapter ce calcul si l'on est sur l'année précédente ou pas.
Si vous avez des idées ...

pascal_69
Messages : 42
Inscription : 30 janv. 2018, 21:52

Re: Récupérer ses informations de consommation électriques via l'API ENEDIS

Messagepar pascal_69 » 13 mai 2018, 23:27

Bonsoir,

Je me suis remis sur la problématique de la récupération des données à N-1
J'ai trouvé une solution que je vous propose ici
L'idée est de générer des fichiers JSON qui contiennent l'année correspondantes aux données quotidiennes puis de réutiliser cette année lors de la création de la requête d'insertion dans la base Domoticz.

Soit 3 fichiers à modifier :

- linky_json.py et linky_month.py : modifier la procédure export_days_values(res) pour générer l'axe X avec l'année

Code : Tout sélectionner

days_x_values = generate_x_axis(res,
                                'days', "%d %b", 1)


devient

Code : Tout sélectionner

days_x_values = generate_x_axis(res,
                                    'days', "%d %b %Y", 1)


- domoticz_linky.js : modifier la fonction generateMonthDays afin de récupérer l'année exportée précédemment

Code : Tout sélectionner

var req_date=''+q_year+'-'+pad((mth.indexOf(obj[i]["time"].substr(3, 3))+1),2)+'-'+pad(obj[i]["time"].substr(0, 2),2);


devient

Code : Tout sélectionner

var req_date=''+obj[i]["time"].substr(7, 4)+'-'+pad((mth.indexOf(obj[i]["time"].substr(3, 3))+1),2)+'-'+pad(obj[i]["time"].substr(0, 2),2);


et j'en profite pour faire l'insertion en base directement par un INSERT OR REPLACE afin d'éviter une DELETE inutile :

Code : Tout sélectionner

console.log('INSERT OR REPLACE INTO \'Meter_Calendar\' (DeviceRowID,Value,Counter,Date) VALUES ('+devicerowid+', \''+lastVal+'\', \''+Math.round(cumul*1000)/1000+'\', \''+req_date+'\');'); 


Voilà, j'ai testé avec mes données depuis septembre de l'an dernier après avoir purgé ma table Meter_Calendar des anciennes données de mon Device.
Pas moyen de remonter plus loin, avant je n'avais pas de Linky ;)

Je ne suis pas encore familiarisé avec Git donc je ne sais pas trop comment pousser cette modif dans le dépôt :oops:

epierre
Messages : 506
Inscription : 27 mai 2015, 09:32
Contact :

Re: Récupérer ses informations de consommation électriques via l'API ENEDIS

Messagepar epierre » 14 mai 2018, 21:27

pascal_69 a écrit :Bonsoir,

Je me suis remis sur la problématique de la récupération des données à N-1
J'ai trouvé une solution que je vous propose ici
...
Je ne suis pas encore familiarisé avec Git donc je ne sais pas trop comment pousser cette modif dans le dépôt :oops:


Hop' je l'ai fait pour toi, mais on est bien d'accordo n n'a besoin que de ton dernier post ?
Imperihome & Domoticz: MyDomoAtHome !
Vera - Domoticz - MySensors

pascal_69
Messages : 42
Inscription : 30 janv. 2018, 21:52

Re: Récupérer ses informations de consommation électriques via l'API ENEDIS

Messagepar pascal_69 » 14 mai 2018, 22:10

on est d'accord !
merci à toi ;)

Disable adblock

This site is supported by ads and donations.
If you see this text you are blocking our ads.
Please consider a Donation to support the site.



Revenir vers « Scripts lua,blocky, shell, python, perl, »

Qui est en ligne ?

Utilisateurs parcourant ce forum : Aucun utilisateur inscrit et 13 invités