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

Vous avez des questions concernant les scripts dans Domoticz, posez vos questions ici, quelque soit le langage nous tenterons des réponses pertinentes ...
esylvain
Messages : 10
Enregistré le : 02 avr. 2018, 21:17
Localisation : Lyon, France

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

Message par esylvain » 23 juin 2019, 12:54

Hello,
même problème de collecte et même erreur chez moi. Je croyais que c'était lié a mon changement de fournisseur. Mais ca ressemble bien a un nouveau CV changement chez le portail GrDF.
Sylvain
SynoDS415+ - Pi B - Pi 2B - Pi 3B+ - ESP8266 (espeasy mega) & DHT22

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.


Kyrille
Messages : 5
Enregistré le : 23 juin 2019, 16:12

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

Message par Kyrille » 23 juin 2019, 16:20

Arf, j'allais me lancer ! J'imagine que GRDF a effectivement changé quelque chose... Vivement qu'ils nous fassent une belle API.

Mon gazpar est installé depuis début avril et les mesures quotidiennes remontent depuis début mai et je trouve ces informations intéressantes à contrôler dans Domoticz plutôt que sur leur site Web.

Merci pour le travail, en espérant une petite mise à jour. :- )
Modifié en dernier par Kyrille le 25 juin 2019, 20:38, modifié 1 fois.

aspichat
Messages : 4
Enregistré le : 12 nov. 2018, 18:14

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

Message par aspichat » 25 juin 2019, 12:24

Bonjour à tous

l y a eu a nouveau quelques modifications dans le code de la page web de GRDF. J'ai mis à jour le fichier 'gaspar.py' sur mon dépôt GitHub : https://github.com/aspichat/domoticz_g ... at-patch-1

Il suffit de remplacer le fichier d'origine par le nouveau et ça devrait rentrer dans l'ordre.

Les modifications à effectuer concernent les lignes 205 et 206 : remplacer j_idt113 par j_idt139 à la fin des lignes

Kyrille
Messages : 5
Enregistré le : 23 juin 2019, 16:12

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

Message par Kyrille » 25 juin 2019, 23:16

Super, ça marche, merci !

Pour les noobs comme moi, les seules astuces à retenir :

-- forcer la version 2.4.0 de Winston (on en est à la 3.2.1 en ce moment et ça cause des problèmes si on est à jour), faire un npm install winston@2.4.0

-- bien se mettre sur la branche patchée, avec un git checkout aspichat-patch-1 par exemple

-- utiliser l'idx du device pour renseigner le fichier de config, pas l'id

-- aller dans Réglages puis Paramètres puis Sondes/Capteurs puis RFXMeter/Compteurs Diviseurs et remplacer 1000 par 1 dans le champ Electricité pour avoir les bons chiffres en kWh

Par contre, quand je dis que ça marche, c'est bien le cas pour les consos quotidiennes, mais j'ai l'impression d'avoir un souci pour les infos mensuelles.

Malgré le fait que mon json pour les consos par mois a l'air bien:

[code]more export_months_values.json
[{"conso": "1234", "time": "05/2019"}, {"conso": "209", "time": "06/2019"}][/code]

la première ligne du fichier req.sql n'est pas top :

[code]more req.sql
Exception opening export_months_values.json : TypeError: Cannot read property 'conso' of undefined
[/code]

Les lignes suivantes du fichier req.sql concernent les infos quotidiennes et tout semble OK
[code]DELETE FROM 'Meter_Calendar' WHERE devicerowid=55 and date = '2019-06-13'; INSERT INTO 'Meter_Calendar' (DeviceRowID,Value,Counter,Date) VALUES (55, '7', 'NaN
', '2019-06-13');
DELETE FROM 'Meter_Calendar' WHERE devicerowid=55 and date = '2019-06-14'; INSERT INTO 'Meter_Calendar' (DeviceRowID,Value,Counter,Date) VALUES (55, '12', 'NaN', '2019-06-14');
etc...
[/code]

Auriez-vous un indice pour se débarrasser de cette erreur afin de pouvoir utiliser ces infos mensuelles ?

Merci d'avance pour votre aide.
Modifié en dernier par Kyrille le 26 juin 2019, 08:45, modifié 2 fois.

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.


Lou Castelou
Messages : 24
Enregistré le : 24 avr. 2017, 15:58

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

Message par Lou Castelou » 26 juin 2019, 07:58

Super, après modifications, çà fonctionne à nouveau.
Bonne journée.

esylvain
Messages : 10
Enregistré le : 02 avr. 2018, 21:17
Localisation : Lyon, France

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

Message par esylvain » 26 juin 2019, 08:59

remplacer 1000 par 1 dans le champ Electricité pour avoir les bons chiffres en kWh
Hello, merci de l'info pour passer en kWh.
Sur mon Domoticz en anglais, le champ s'appelle Energy.
Il s'applique bien au relevé Gaspar.
Le hic c'est que j'ai un autre relevé Domoticz pour mon compteur Linky....et celui ci se trouve multiplié par 1000 également.
Quelqu'un a également ce souci? Une solution pour l'appliquer la multiplication qu'au device " Gaspar"
Sylvain
SynoDS415+ - Pi B - Pi 2B - Pi 3B+ - ESP8266 (espeasy mega) & DHT22

Kyrille
Messages : 5
Enregistré le : 23 juin 2019, 16:12

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

Message par Kyrille » 26 juin 2019, 09:07

esylvain a écrit :
26 juin 2019, 08:59
remplacer 1000 par 1 dans le champ Electricité pour avoir les bons chiffres en kWh
Hello, merci de l'info pour passer en kWh.
Sur mon Domoticz en anglais, le champ s'appelle Energy.
Il s'applique bien au relevé Gaspar.
Le hic c'est que j'ai un autre relevé Domoticz pour mon compteur Linky....et celui ci se trouve multiplié par 1000 également.
Quelqu'un a également ce souci? Une solution pour l'appliquer la multiplication qu'au device " Gaspar"
Sylvain
Je me suis posé la question en allant changer ce réglage (mais sans conséquence pour moi car je n'ai que ce device dans la famille des compteurs).

Est-ce que tu as essayé les modifs suivantes :
fetoiplez a écrit :
18 juin 2019, 10:28

Pour avoir les valeurs par 1000
Je fais la modification suivante sur le fichier gaspar.py ligne 309 ajout de ds=int(ds) * 1000 avant l'insert
Cela donne après modification
while i<size:
#print(ts+"/"+str(now.year)+" "+ds+ " "+str(i))
#data[ts+"/"+str(now.year)] = ds
ds=int(ds) * 1000
if ds!="null":
#data[ts.replace('Le ','')] = ds[i]
data.append({'conso':ds[i], 'time':ts[i].replace('Le ','')})

Attention de bien respecter l'indentation et les espaces (pas de tabulations)


Ça permettrait de n'appliquer ce changement d'unité qu'à ton device Gazpar.

Hope it helps.

esylvain
Messages : 10
Enregistré le : 02 avr. 2018, 21:17
Localisation : Lyon, France

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

Message par esylvain » 27 juin 2019, 10:04

Yeepee, merci à tous...ça fonctionne (Gaspar & Linky avec les bonnes unités s'il vous plaît)

La modification à faire pour avoir des kWh sur Gaspar doit se faire dans le code gaspar.py.
Si vous changez dans les settings Domoticz le "Meter Counter divider" de type Energy à 1 (à la la place de 1000),
tous vos autres compteurs seront impactés (ex. Linky).

Pour multiplier par 1000 le compteur gaspar seul et avoir des kWh, j'ai modifié le code gaspar.py (version patchée de cette semaine) comme recommandé plus haut, mais avec une petite adaptation :

Code : Tout sélectionner

    
    while i<size:
        #print(ts[i]+"/"+str(now.year)+" "+ds[i]+ " "+str(i))
        #data[ts[i]+"/"+str(now.year)] = ds[i]
        if ds[i]!="null":
            ds[i]=int(ds[i]) * 1000                      # <--- Ligne ajoutée. Notez bien, elle doit être après le "if"
            #data[ts[i].replace('Le ','')] = ds[i]
            data.append({'conso':ds[i], 'time':ts[i].replace('Le ','')})
A noter: vos relevés de la semaine seront en kWh mais tout votre historique reste en Wh, ce qui le rend invisible en comparaison. Il faudrait lancer une requête sur la base Domoticz pour multiplier par 1000 tout l'historique. ça me dépasse un peu.

En espérant que ça soit intelligible et que ça aide,
Sylvain
SynoDS415+ - Pi B - Pi 2B - Pi 3B+ - ESP8266 (espeasy mega) & DHT22

fetoiplez
Messages : 3
Enregistré le : 28 janv. 2019, 15:48

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

Message par fetoiplez » 27 juin 2019, 10:38

Bonjour,

Mieux que tout mutiplier par 1000 ou pas => Récupérer tout votre historique GAZPAR

metter ce shell dans votre répertoire domoticz_gaspar appeler le par exemple recup.sh
chmod 777 recup.sh

Code : Tout sélectionner

#!/bin/sh

SCRIPT=$(readlink -f "$0")
BASE_DIR=$(dirname "${SCRIPT}")
export BASE_DIR
CFG_FILE="domoticz_gaspar.cfg"
LOG_FILE="domoticz_gaspar.log"

update_db () {
  cat "${BASE_DIR}"/req_maj.sql | /usr/bin/sqlite3 "${HOME}"/domoticz/domoticz.db
}

# check configuration file
if [ -f "${BASE_DIR}"/"${CFG_FILE}" ]
then
  . "${BASE_DIR}"/"${CFG_FILE}"
  export GASPAR_USERNAME
  export GASPAR_PASSWORD
  export DOMOTICZ_ID
  update_db 
else
    echo "Config file is missing ["${BASE_DIR}"/"${CFG_FILE}"]"
    exit 1
fi
Cela va lancer le fichier où l'on va mettre les requêtes dans le fichier req_maj.sql dans le même répertoire.
ATTENTION Sauvegarder votre base de données avant. Cela peut être risqué.
Exemple de requête pour injecter les données directement à partir du site GAZPAR après export Excel

Code : Tout sélectionner

INSERT INTO 'Meter_Calendar' (DeviceRowID,Value,Counter,Date) VALUES (604, '12000',0,'2019-05-16');
INSERT INTO 'Meter_Calendar' (DeviceRowID,Value,Counter,Date) VALUES (604, '12000',0,'2019-05-17');
INSERT INTO 'Meter_Calendar' (DeviceRowID,Value,Counter,Date) VALUES (604, '9000',0,'2019-05-18');
INSERT INTO 'Meter_Calendar' (DeviceRowID,Value,Counter,Date) VALUES (604, '17000',0,'2019-05-19');
INSERT INTO 'Meter_Calendar' (DeviceRowID,Value,Counter,Date) VALUES (604, '8000',0,'2019-05-20');
INSERT INTO 'Meter_Calendar' (DeviceRowID,Value,Counter,Date) VALUES (604, '8000',0,'2019-05-21');
INSERT INTO 'Meter_Calendar' (DeviceRowID,Value,Counter,Date) VALUES (604, '9000',0,'2019-05-22');
Vous pouvez comme cela récupérer tout votre historique depuis l'installation du compteur chez vous.
604 étant mon identifiant domoticz de mon compteur virtuel.
Mes valeurs sont multipliées par 1000 mais vous pouvez adapter

Vous pouvez essayer en créant un nouveau compteur virtuel puis ensuite échanger vos compteurs.

J'ai utilisé la formule suivante qui fonctionne dans google Sheet (ou excel )en se mettant sur la première ligne tout en haut colonne en prenant toutes les colonnes mesures de votre extraction.

Code : Tout sélectionner

=CONCATENER("INSERT INTO 'Meter_Calendar' (DeviceRowID,Value,Counter,Date) VALUES (604, '";E1*1000;"',0,'";ANNEE(A1);"-";TEXTE(MOIS(A1);"00");"-";TEXTE(JOUR(A1);"00");"');")
reste plus que lancer le script ./recup.sh

pour multiplier par 1000 la requête doit ressembler à cela ATTENTION JE N'AI PAS ESSAYE (Sauvegarder votre base et sachez aussi restaurer)

Code : Tout sélectionner

update  'Meter_Calendar' set Value=Value*1000 where DeviceRowID=604

Bonne Journée

Kyrille
Messages : 5
Enregistré le : 23 juin 2019, 16:12

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

Message par Kyrille » 27 juin 2019, 11:56

Merci. De mon côté, j'ai donc remis le réglage à 1000 dans domoticz, j'ai appliqué la requête SQL en mettant le bon device ID et j'ai mis à jour le script. Du coup, les anciennes mesures sont bonnes, et les suivantes le seront aussi, sans faire de changement dans les settings par défaut.

Et pour ceux qui ont Excel en anglais, voici l'équivalent si vous voulez repartir de zéro à partir de l'historique GRDF:

Code : Tout sélectionner

=CONCATENATE("INSERT INTO 'Meter_Calendar' (DeviceRowID,Value,Counter,Date) VALUES (604, '";E1*1000;"',0,'";YEAR(A1);"-";TEXT(MONTH(A1);"00");"-";TEXT(DAY(A1);"00");"');")
fetoiplez a écrit :
27 juin 2019, 10:38

Code : Tout sélectionner

=CONCATENER("INSERT INTO 'Meter_Calendar' (DeviceRowID,Value,Counter,Date) VALUES (604, '";E1*1000;"',0,'";ANNEE(A1);"-";TEXTE(MOIS(A1);"00");"-";TEXTE(JOUR(A1);"00");"');")

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.


Répondre