Pour résumer la seule API utilisable en production est l’API Enedis qui est accèssible uniquement aux société (personne morale) ayant montré pate blanche auprès d’Enedis.
Si vous voulez la version longue c’est ici.
De ce que j’en ai vu vous n’aurez que des données journalière de consommation via leur API, alors que le compteur envoit un point de mesure toute les heures. Donc le plus « simple » reste le port de téléinformation déjà présent sur les anciens compteurs électroniques donc pourquoi les changer …
Le matos
Les tutorials sur comment faire sont nombreux et bien écrit voilà la lecture pour la partie matériel.
- Les spécifications de la téléinformation
- Tutorial complet téléinformation avec un raspberrypi
- Quelques informations suplémentaires avec un schema d’application beaucoup plus compliqué
Pour résumer il vous faut
- Un raspberrypi n’importe quel version (on en a tous un qui traine), à defaut une board qui dispose d’un port série matériel
- Un opto coupleur alternatif ref SFH620A
- Quelques résistances
Prototypage
Sous RaspianOs vous aurez besoin d’éditer /boot/config.txt
et y ajouter puis rebooter.
[all]
enable_uart=1
Pour tester que tout fonctionne et que la téléinformation marche bien, lancer stty -F /dev/ttyAMA0 1200 sane evenp parenb cs7 -crtscts
pour configurer le port série correctement.
Puis screen /dev/ttyAMA0
vous devriez avoir un truc du style
ADCO 524563565245 /
OPTARIF HC.. <
ISOUSC 20 8
HCHC 001065963 _
HCHP 001521211 '
PTEC HC.. S
IINST 001 I
IMAX 008 2
PMAX 06030 3
PAPP 01250 +
HHPHC E 0
MOTDETAT 000000 B
PPOT 00 #
ADCO 524563565245 /
OPTARIF HC.. <
ISOUSC 20 8
La board définitive
L’installation complète
Pour la partie logiciel
Dans le tutorial sur Magdiblog cité plus haut la partie logiciel est réalisé en php et n’a pas d’intégration autre que la consultation sur une page web directement hébergé sur le RaspberryPi, les données étant stocké dans une base mysqllite. Ayant commencé à jouer avec Home Assistant, je me suis dit que ce serait rigolo d’avoir les données de ma consommation électrique en live dans Home Assistant pour pouvoir réaliser des automatisations ou faire des bilans et des optimisations.
Il fallait donc réaliser le bout de logiciel qui permettrait d’acquérir les données de téléinformation sur le port série pour les partager à une instance Home Assistant. Comme je déteste re-faire la roue, dans un premier temps je suis tombé sur un bout de code pour publier la téléinformation dans InfluxDB. Puis en cherchant un peu mieux car il y a déjà 40 developpeurs qui se sont tous pas coordonnées pour refaire la roue 40 fois, je suis tombé sur teleinfo-mqtt pas parfait mais qui fait le job out of the box.
Installer Docker
Faut suivre la documentation pour Debian Buster cependant j’ai rencontré un souci avec apt-add-repository
qui ne marchait pas voir ici.
Teleinfo-mqtt
Créer un fichier teleinfo.env
SERIAL=/dev/ttyAMA0
MQTT_URL=mqtt://mosquito_ip:1883
MQTT_USER=user
MQTT_PASSWORD=password
Lancer le container avec la commande suivante
sudo docker run --detach --name teleinfo-mqtt --device=/dev/ttyAMA0:/dev/ttyAMA0 --env-file teleinfo.env --restart always fmartinou/teleinfo-mqtt
A partir de ce point vous avez à minima la consommation instanté qui s’affiche dans Home-Assistant !
Configuration de Home-Assistant
Dans le fichier /config/configuration.yaml
sensor:
# Cette partie permet déclarer les valeurs non déclaré automatiquement par teleinfo-mqtt
# J'ajoute donc le compteur de Wh heures pleines
- platform: mqtt
name: teleinfo_base
icon: mdi:power-plug
state_topic: teleinfo
json_attributes_topic: teleinfo
value_template: "{{ value_json.BASE.value }}"
unit_of_measurement: Wh
device_class: energy
# Ici c'est pour ajouter des segments de comptage pour avoir des "buckets" de comptage dans Home-Assistant
# Permet d'avoir ma consommation journalière et mensuelle extraite de teleinfo_base qui est la valeur du compteur en Wh.
utility_meter:
daily_energy:
source: sensor.teleinfo_base
cycle: daily
monthly_energy:
source: sensor.teleinfo_base
cycle: monthly
Cela donne
Problèmes connues
teleinfo-mqtt
pourrait avoir un paramètre pour configurer la fréquence de mise à jour, on est sur une fois par seconde par defaut c’est un peu violent pour Home-Assistant qui galère avec un jeux de données aussi précis.- Les compteurs mensuel / journalier sont pas hyper exploitable en l’état (je suis un noob concernant Home-Assistant)
- J’ai mis toutes les valeurs en
Wh
mais il est possible de faire une division par 1000 pour avoir kWh mais on perd la précision aussi dans la DB de Home-Assistant.
0 commentaire