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.

  1. Les spécifications de la téléinformation
  2. Tutorial complet téléinformation avec un raspberrypi
  3. 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 522511168845 /
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 522511168845 /
OPTARIF HC.. <
ISOUSC 20 8

La board définitive

Teleinformation carte d'acquisition

L’installation complète

Installation teleinformation linky raspberrypi

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 !

Home-Assistant teleinfo instantané en VA

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

Home Assistant téléinformation

Home-Assistant consommation journalière via téléinformation

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

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *