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.
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 là ) 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é:
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.