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