Page 23 sur 32

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

Publié : 03 mai 2018, 14:10
par epierre
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.

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

Publié : 03 mai 2018, 15:26
par tekkharibo
D'accord merci

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

Publié : 03 mai 2018, 17:07
par epierre
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 ?

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

Publié : 03 mai 2018, 23:34
par tekkharibo
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

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

Publié : 04 mai 2018, 23:12
par timhor
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

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

Publié : 06 mai 2018, 23:07
par tekkharibo
Je suis bien en timezone Paris

Envoyé de mon SM-G935F en utilisant Tapatalk

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

Publié : 11 mai 2018, 22:46
par pascal_69
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 ...

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

Publié : 13 mai 2018, 23:27
par pascal_69
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:

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

Publié : 14 mai 2018, 21:27
par epierre
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 ?

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

Publié : 14 mai 2018, 22:10
par pascal_69
on est d'accord !
merci à toi ;)