TeleInfod
TeleInfod is a daemon that publishes electricity smart meters “TéléInformation” data to a MQTT Broker. (TéléInformation are at least generated by French's EDF smart counters)
Install / Use
/learn @destroyedlolo/TeleInfodREADME
[!IMPORTANT] Téléinfo TIC seems only applicable in France. Consequently, this README is only in French.
TeleInfod est un démon qui publie les données de votre compteur Enedis par l'intermédiaire de sa prise Téléinformation vers un broker MQTT. Il est compatible à la fois avec les compteurs Linky en mode 'standard' comme 'historique' et donc compatible avec les anciens compteurs numériques.
Dépendances
- Bien évidemment, un (ou des) compteur disposant d'une prise TéléInformation "TIC". Mon site web contient des montages d'exemples pour convertir ce signal (attention, certains montagnes ne sont pas compatibles avec le Linky).
- Un broker MQTT tel que Mosquitto
- Bien que TeleInfod puisse être compilé avec la librairie Mosquitto, je vous conseille d'utiliser Paho.
Installation :
- installez les dépendances (Mosquitto ou PAHO).
- Clone le repository de TéléInfod
- Pour changer les options de compilations
- installez LFMakeMaker
- personalisez
remake.sh - executez
remake.shpour mettre à jour le Makefile.
make- déplacez l'executable
TeleInfodquelque part dans votre PATH. Par exemple/usr/local/sbin.
Launch options :
TeleInfod se lance en ligne de commande et reconnait les options suivantes :
-dou-v: est verbeux, affiche des messages d'information,-f<file>: utilise <file> comme fichier de configuration. Par défaut, il recherche/usr/local/etc/TeleInfod.conf
Contenu du fichier de configuration :
Les directives générales sont reconnues :
- Broker_Host= le serveur hébergeant le broker MQTT. Avec la librairie Mosquitto, seul son nom doit être fourni (par exemple
localhostou encoremyhost.mydomain.tld).<br> Avec la bibliothèque Paho, il faut fournir une URLtcp://<hostname>:port(commetcp://localhost:1883). - Broker_Port= le port de connexion du broker MQTT (seulement pour la bibliothèque Mosquitto)
Au moins une section doit être définie.
[!TIP] Chaque section s'exécute dans un "thread" séparé ; si un flux s'interrompt, il ne bloquera donc pas les autres.
Exemple pour une trame historique.
Ces trames sont compatibles avec les anciens compteurs numériques et les Linky si configurés pour. Le signal est plus lent, 1200 bauds, et compatible avec plus d'optocoupleurs. Mais moins d'informations sont fournies, en particulier, il manque la puissance injectée dans le réseau pour les producteurs qui ne revendent pas 100% de leur production.
*Consommation
Port=/dev/ttyS2
Topic=/TeleInfo/Consommation
Publish=OPTARIF,ISOUSC,BASE,HCHC,HCHP,PTEC,IINST,ADPS,IMAX,PAPP,HHPHC
Avec
- La ligne commençant par une étoile
*indique le début de la section. Suit son nom qui vous sera utile pour identifier les messages si vous avez plusieurs compteurs et donc plusieurs sections. - Port= Le port série connecté au compteur (il doit avoir été configuré AVANT de lancer TeleInfod, 1200 bauds, 7 bits, parité paire, 1 bit de stop).
- Topic= Racine des topics à publier.
- Publish= Liste des champs à publier, tels que définis dans la note Enedis-NOI-CPT_54E.
Ce qui publiera :
- /TeleInfo/Consommation/values/OPTARIF – « Option tarifaire »
- /TeleInfo/Consommation/values/ISOUSC – « Intensité souscrite »
- /TeleInfo/Consommation/values/BASE – BASE counter
- …
Exemple pour une trame Standard
A ce jour, seul Linky la génère (mais doit avoir été configuré pour).
*MonLinky
SPort=/dev/ttyS4
Topic=TeleInfo/Linky
ConvProd=TeleInfo/HistProd
ConvCons=TeleInfo/HistConso
Publish=DATE,NGTF,LTARF,EAST,EAIT,IRMS1,URMS1,PREF,PCOUP,SINSTS,SMAXSN,SMAXSN-1,SINSTI,SMAXIN,SMAXIN-1,CCASN,CCASN-1,CCAIN,CCAIN-1,UMOY1,MSG1,MSG2,RELAIS,NTARF,PPOINTE
Avec :
- La ligne commençant par une étoile
*indique le début de la section. Suit son nom qui vous sera utile pour identifier les messages si vous avez plusieurs compteurs et donc plusieurs sections. - SPort= Le port série connecté au compteur (il doit avoir été configuré AVANT de lancer TeleInfod, 9600 bauds, 7 bits, parité paire, 1 bit de stop).
- Topic= Racine des topics à publier.
- Publish= Liste des champs à publier, tels que définis dans la note Enedis-NOI-CPT_54E.
Auquel se rajoutent
- ConvProd= Racine des topics convertis correspondant à un producteur
- ConvCons= Racine des topics convertis correspondant à un consommateur
Conversions
Le mécanisme de conversion extrait d'une trame standard les informations qui permettront de générer les topics pour producteur et consommateur correspondant à des trames historique. Le but est d'apporter une compatibilité avec d'anciens logiciels.<br>
Par exemple, en mode historique, un compteur producteur publie son compteur dans le champs BASE.
Ce qui donne pour les tableaux suivants :
Producteur
Champ | Standard | Topic converti -----------|----------|----- Puissance app. Instantanée injectée | SINSTI | .../values/PAPP Courant efficace | IRMS1 | .../values/IINST Energie active injectée totale | EAIT | .../values/BASE Puissance app. max. injectée n | SMAXIN | .../values/IMAX
Consommateur
Champ | Standard | Topic converti -----------|----------|----- Puissance app. Instantanée injectée | SINSTS | .../values/PAPP Courant efficace | IRMS1 | .../values/IINST Compteur 1 (Heures Plaines) | EASF01 | .../values/HCHP Compteur 2 (Heures Creuses) | EASF02 | .../values/HCHC Heures Plaines / Heures Creuses | NTARF | .../values/PTEC
Document de référence
- Enedis-NOI-CPT_54E
Related Skills
node-connect
344.1kDiagnose OpenClaw node connection and pairing failures for Android, iOS, and macOS companion apps
frontend-design
96.8kCreate distinctive, production-grade frontend interfaces with high design quality. Use this skill when the user asks to build web components, pages, or applications. Generates creative, polished code that avoids generic AI aesthetics.
openai-whisper-api
344.1kTranscribe audio via OpenAI Audio Transcriptions API (Whisper).
qqbot-media
344.1kQQBot 富媒体收发能力。使用 <qqmedia> 标签,系统根据文件扩展名自动识别类型(图片/语音/视频/文件)。
