# Linky opendata my ass

#### Publié par HugoPoi le 16 janvier 202116 janvier 2021

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

Catégories : Bidouille Hardware Logiciels
Étiquettes :Docker Enedis Home-Assistant Linky MQTT RaspberryPi

### 0 commentaire

### Laisser un commentaire Annuler la réponse

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

Nom *
E-mail *
Site internet
Qu’avez vous à l’esprit ?

## Articles similaires

###### #FAIL

#### My shitty Nvidia DisplayPort Problems who no ones care about

Recently I have done the acquisition of a new ULTRAWIDE screen, precisily a Philips 439PH9 with a DisplayPort v1.4, this information is very important for what’s coming next. The problem The morning I receive it, Lire la suite…

###### Aventure Serveur

#### Install RancherOs on FreeNas 11.3

Install RancherOs on FreeNas 11.3 The automated RancherOs installation aka Docker VM has been removed in 11.3 RancherOs doesn’t support EFI boot out of the box Thanks to MKinney howto This howto is provided without Lire la suite…

###### Aventure Serveur

#### Le cloud maison

Voilà un petit moment que je me devais de faire cet article pour vous en dire un peu plus sur comment je gère mes données numériques au quotidien. Et après plusieurs essais et échecs, je Lire la suite…