hekmon / linkytic

Linky TIC support for Home Assistant
MIT License
48 stars 13 forks source link
enedis energy energy-monitor historic home-assistant homeassistant homeassistant-custom-component homeassistant-integration homeassistant-sensor linky lixee lixee-tic-din serial teleinformation tic

Linky TIC - Support Linky dans Home Assistant

Validate with hassfest Validate with HACS

Cette intégration pour Home Assistant ajoute le support des Linky au travers de n'importe quelle connection série en provenance du module TIC (Télé Information Client) du compteur Linky.

Par exemple:

Exemple sous Home Assistant.

⚠️ Cette intégration n'est pas comptatible avec les modules zigbee ! Seulement ceux apportant la connection série du TIC directement à votre ordinateur !

Théoriquement cette intégration est compatible avec les compteurs pré Linky qui possèdent un module TIC en choisissant le mode historique. Mais n'en ayant aucun dans mon entourage, je n'ai pas pu le vérifier.

Si votre module série n'est pas branché sur la même machine que celle hébergeant votre Home Assistant, ce n'est pas un problème : vous pouvez transmettre la connection série au travers de votre réseau. Voir le dossier serialserver pour mettre en oeuvre une retransmission TCP au travers de votre réseau.

Informations remontées

Cette intégration va lire de manière continue les informations envoyées sur le TIC et stocker en mémoire la dernière valeur lue pour chacun des compteurs. Ensuite, Home Assistant viendra régulièrement lui même "récolter" les valeurs des différents sondes que l'intégration lui a déclaré. La fréquence observée semble être de 30 secondes. C'est largement suffisement pour la très grande majoritée des sondes.

Cependant, certaines sondes peuvent avoir de la valeur dans leur "instantanéité" (relative). Pour cela, l'intégration possède une option "temps réel" qui peut être activée. Celle-ci ne passera pas toutes les sondes en temps réel mais seulement celles pour qui cela peut avoir du sens (voir ci-dessous). Cette option temps réel notifiera Home Assistant qu'une nouvelle valeure est prête à être lue et lui demandera de venir la lire (et l'enregistrer) au plus vite à la différence des autres sondes dont les valeurs sont récupérées par Home Assistant, à son rythme.

Suivant la configuration que vous choisirez pour votre installation vous trouverez dans ce fichier dans la liste des sondes avec les annotations suivantes:

Mode historique

Le mode historique est le plus commun (existant pré Linky) : il est activé par défault à moins que vous soyez producteur d'énergie.

Compteurs mono-phasé

Les 23 champs des compteurs mono-phasé configurés en mode historique sont supportés:

Compteurs tri-phasés

⚠️ Actuellement en beta ⚠️

Des retours de log en DEBUG pendant l'émission de trames courtes sont nécessaires pour valider le bon fonctionnement de l'intégration sur ces compteurs, n'hésitez pas à ouvrir une issue si vous avec un compteur triphasé pour aider à sa finalisation !

Mode standard

Une beta est actuellement en cours pour la future v3 supportant le mode standard, vous la trouverez dans les releases. N'hésitez pas à faire vos retours dans #19 afin d'accélére la sortie de beta du mode standard !

Installation

Configuration du module

Une fois que votre module TIC est installé et connecté à votre compteur ainsi qu'un votre box domotique au travers de son cable USB, vous devriez voir apparaitre le périphérique /dev/ttyUSB0 (ou /dev/ttyUSB1 si vous aviez déjà une /dev/ttyUSB0).

Exemple de configuration pour le module de LiXee:

Vérifiez que celui-ci fonctionne correctement en lancant la commande (Ctrl+C pour quitter):

cat /dev/ttyUSB0

Vous devriez voir défiler les informations du TIC.

Téléchargement

Choississez l'une des 2 méthodes.

Avec HACS

Ouvre votre instance Home Assistant et ajoute un dépôt dans la boutique communautaire Home Assistant.

Plus d'informations sur HACS ici.

Manuellement

Dans la page des releases sélectionnez la version que vous souhaitez et téléchargez l'archive zip.

Copiez le dossier custom_components/linkytic dans votre dossier de configuration Home Assistant. Vous devriez maintenant avoir le dossier /votre/config/dir/custom_components/linkytic si vous avez /votre/config/dir/configuration.yaml.

Redémarrez votre Home Assistant !

Activation et configuration dans Home Assistant

Une fois Home Assistant redémarré, allez dans: Paramètres -> Appareils et services -> Ajouter une intégration. Dans la fenêtre modale qui s'ouvre, cherchez linky et sélectionnez l'intégration s'appelant Linky TIC dans la liste (une petite icône d'un carton ouvert avec un texte de survol indiquant Fourni par une extension personnalisée devrait se trouver sur la droite).

Vous devriez passer sur le formulaire d'installation vous présentant les 3 champs suivants:

Validez et patientez pendant le temps du test. Celui-ci va tenter d'ouvrir une connection série sur le périphérique désigné et d'y lire au moins une ligne. En cas d'erreur, celle-ci vous sera retourné à l'écran de configuration. Sinon, votre nouvelle intégration est prête et disponible dans la liste des intégrations de la page où vous vous trouvez.

Pour ceux intéressé par le mode "temps réel", localisez l'intégration Linky TIC dans les tuiles de la page et cliquez sur Configurer.

Développement

Disclaimer

Je ne suis pas un habitué du python et encore moins du framework Home Assistant ! Ce module doit donc être largement améliorable. Néanmoins il permet le support simple et natif d'un maximum d'éléments transmis par le compteur Linky dans Home Assistant au travers d'une connection série du TIC dont certains en temps réel.

Architecture

Schéma d'architecture du module

Référence

Le document de référence du protocole TIC dévelopé par Enedis est archivé dans ce repo. Vous y trouverez toutes les informations nécessaire au dévelopement ainsi que des détails sur les informations remontées par ce plugin. Celui-ci et tout autre document de référence d'implémentation pouvant se trouver dans ce répertoire ne sont évidement pas couvert par la license MIT de ce repo et reste la propriété de leurs auteurs respectifs.