Micro-module pour Écowatt

Salut,
j’ai créé un micro-module pour récupérer les données écowatt.
C’est disponible ici
Thierry Pellé / pycowatt · GitLab,
probablement très sale (je suis encore un oeuf dans le monde du serpent et de git),
mais ça fonctionne a minima.

Tout conseil/critique est bienvenue si vous avez des idées de Grands Serpents :slight_smile:

Th.

Coucou,

C’est quoi Ecowatt ? J’ai vu qu’il fallait créer un compte ?
Et sinon, je te conseille de supprimer le dépôt, puis de le recréer et de changer tes clefs ;o)

Les clefs, il faut, de base, les mettre ailleurs que dans ton code, toujours.

Salut,
Écowatt c’est le service web de RTE qui donne les prévisions de coupure électriques à quatre jours.
Voir Comment récupérer en temps réel les données des signaux EcoWatt ?| Ecowatt

Pour ce qui est des clefs je pensais les avoir supprimées mais effectivement, ya encore des traces.
(maintenant je met mes clefs dans un fichier local déclaré en gitignore.

Les clefs, il faut, de base, les mettre ailleurs que dans ton code, toujours.

Merci du conseil !
Maintenant c’est propre (à part le code mais ça c’est une autre histoire ).
Et si t’as des conseils pour rendre le code plus propre n’hésite pas :slight_smile:

Recréation et renommage en pycowatt (comme suggéré ailleurs)

Salut, pour info, tes clés sont encore disponible publiquement ici : idAndKeys.py · main · Thierry Pellé / pycowatt · GitLab

Une bonne pratique est de mettre ses clefs dans des variables d’environnement de la machine qui exécute le script.

En python, tu peux ensuite les récupérer via le module os :

import os
 
client_id = os.environ['CLIEND_ID']
2 « J'aime »

Merci pour la remarque.
Évidemment j’ai oublié de copier le .gitignore…

Mais avec l’approche que tu suggères comment positionner ces variables d’environnement sans avoir à chaque fois à la réinitialiser (et ne pas le ajouter dans le fichier de config principal du shell)?

Il me semble qu’il me manque un bout (comme dit plus haut je suis un oeuf :slight_smile: )

J’ai remarqué que tu avais supprimé le fichier, mais du coup, il est toujours disponible dans l’historique (ah c’est embêtant les systèmes de versionning pour ça) : Supprimer idAndKeys.py~ (4d0bc238) · Commits · Thierry Pellé / pycowatt · GitLab

J’étais justement en train de penser à ça…
Pff, je vais tout recréer.
merci!

1 « J'aime »

Pour toujours avoir tes variables d’environnement tu peux ajouter l’ajout de la variable à ton .bashrc (sur les systèmes linux).

.bashrc :

CLIENT_ID=key_0155df454dsf45684-sdf545d-sdfsd4

Le fichier .bashrc est executé à chaque ouverture du shell donc les variables sont automatiquement remise même après un redémarage de la machine.

1 « J'aime »

Bon si c’est la façon propre de le faire je vais suivre ton conseil.
Mais ça surcharge le .bashrc, ce que je voulais éviter (je trouve pas ça «joli»).

Merci pour tes conseils en tout cas.

Bonsoir,

le module dotenv (python-dotenv · PyPI) répond à mon avis parfaitement à ton besoin : gérer des variables d’environnement spécifiques à ton projet et sans surcharger le .bashrc

1 « J'aime »

Merci du conseil.
Par contre, il faut alors penser à mettre le .env dans le .gitignore.

1 « J'aime »

Si tu prends l’habitude de gérer tes clefs et autres ID de tes projets de cette manière, tu prendras vite l’habitude de mettre le .env dans le .gitignore.

/!\ il peut être intéressant par contre de mettre un fichier .env d’exemple dans le repo git en le nommant .env.sample par exemple.

Bonsoir,

il y a une typo dans le code

CLIENT_ID = os.environ['CLIEND_ID']

sinon ca fait

NameError: name 'CLIENT_ID' is not defined
1 « J'aime »

Oups…
Coquille corrigée.
Merci!

ecowatt
ca marche bien :slight_smile:
(j’ai découpé la partie API de la partie affichage que j’ai enrichi avec “rich”)

1 « J'aime »

Je ne connaissais pas «rich», si tu publies le patron qqpart je suis prenneur. Je le donnerai à mon tailleur (humour anglais).

Pour info, le but final est de porter le code sur Micropython sur ESP32 ou ESP8266 pour en faire un petit «baromètre» à coupure.