Ma domotique X : Teleinfo

Ah la téléinfo, la première donnée que j'ai voulu suivre dans ma maison !

La téléinfo est la remonté d'informations du compteur EDF, elle transmet des données tels que la consommation instantanée, le tarif en cours ou encore le total des heures pleines. La consommation électrique d'un foyer est une des pierres angulaires de la domotique et la téléinfo en est la base. Couplé à des outils comme Grafana, elle permet un suivi et une analyse dans le temps de la consommation global du foyer, c'est un outil très important dans la recherche d'efficacité énergétique.

Grafana Conso 01
Exemple de graphique du Linky sous Grafana, avr. 2024


Aillant déjà un câble telefino arrivant du compteur vers le tableau électrique qui servait au contact jour/nuit, j'ai pris comme coordinateur un module de tableau électrique avec sortie USB mais il existe plein de modèles différents. (Le plus simple aujourd'hui serait un module zigbee directement sur le compteur.) Et j'utilise la passerelle telefino2mqtt de fmartinou.
Certaines fonctions de ma domotique exploitent directement ses valeurs comme le changement de tarif qui coupe ou met en marche certains appareils gros consommateur d'énergie (chauffe eau) ou encore pour le délestage qui coupe le chauffage si on consomme trop.

Installation du serveur telefinfo

Reportez vous aux billet précédents (ici et ) pour en savoir plus sur ma configuration Proxmox et Docker.

On se rend dans le shell de notre serveur Proxmox et on créer notre machine virtuelle à partir du template docker et on lui adresse une IP fixe :

qm clone 910 116 --name telefino
qm set 116 --ipconfig0 ip=10.1.4.116/23,gw=10.1.4.1


Dans Proxmox, on va aller dans la configuration Hardware de la VM et lui ajouter le module USB teleinfo, il est bien reconnu par proxmox, pas de soucis de ce coté:

Protocole Zwave install 01
Installation Zwave bouton Add, avr. 2024


Protocole teleinfo install 02
Ajout du module USB teleinfo, avr. 2024


On peut démarrer notre VM.
Maintenant on se rend dans l'interface web de Portainer, on lie notre VM, et on ajoute Stack qui ressemble à ça :

version: '3'

services:
  teleinfo2mqtt:
    image: fmartinou/teleinfo2mqtt
    container_name: teleinfo2mqtt
    restart: always
    devices:
      - /dev/ttyUSB0:/dev/ttyUSB0
    environment:
      - EMIT_INTERVAL=0
      - TIC_MODE=history
      - TZ=Europe/Paris
      - MQTT_URL=mqtt://10.1.44.111:1883
      - MQTT_USER=jeanjean
      - MQTT_PASSWORD=jeanjean

Le stack configure tout ce qu'il faut pour fonctionner, comme le serveur MQTT. Les trames devraient directement atterrir dans MQTT.
Exemple de données décodées :

{
  "ADCO": {
    "raw": "062061429523",
    "value": 62061429523
  },
  "OPTARIF": {
    "raw": "HC..",
    "value": "HC"
  },
  "ISOUSC": {
    "raw": "45",
    "value": 45
  },
  "HCHC": {
    "raw": "019581292",
    "value": 19581292
  },
  "HCHP": {
    "raw": "029104904",
    "value": 29104904
  },
  "PTEC": {
    "raw": "HP..",
    "value": "HP"
  },
  "IINST": {
    "raw": "005",
    "value": 5
  },
  "IMAX": {
    "raw": "090",
    "value": 90
  },
  "PAPP": {
    "raw": "01220",
    "value": 1220
  },
  "HHPHC": {
    "raw": "A",
    "value": "A"
  }
}

Il y a plus qu'à exploiter ces valeurs !
Voila pour le protocole teleinfo.

Haut de page