Connexion
Abonnez-vous

[Tuto] Suivre sa consommation électrique en direct avec un Raspberry Pi et Home Assistant

Maintenant, plus d’excuse pour ne pas vous lancer !

[Tuto] Suivre sa consommation électrique en direct avec un Raspberry Pi et Home Assistant

Avec un Raspberry Pi, une clé Zigbee et un module TIC nous avons tout ce qu’il faut sous la main pour suivre en direct notre consommation électrique via un tableau de bord. On saute le pas avec Home Assistant et on vous détaille les étapes.

Le 20 septembre à 17h30

Il y a quelques semaines, nous nous expliquions l’intérêt et le fonctionnement du TIC (Télé-Information Client) du compteur connecté Linky. Il permet aux clients « d’être informés en temps réel des grandeurs électriques mesurées et les données qu’elle contient (périodes tarifaires, contacts virtuels, puissance instantanée…) permettent le pilotage dynamique des usages », avec une mise à jour toutes les deux secondes. Après la théorie, passons à la pratique.

Il existe de multiples possibilités pour récupérer et utiliser les données. Nous avons utilisé une clé USB Zigbee et un module LiXee. Ce matin, nous avons mis en ligne un Nextpresso sur ces deux produits. On vous invite à le lire pour comprendre cette seconde partie.

Nous avons utilisé un Raspberry Pi, un micro-ordinateur largement assez puissant pour une telle utilisation (même trop puissant). Il a l’avantage d’être polyvalent, facile à trouver et accessible. Dans ce tuto, on va aller au plus simple, mais vous pouvez adapter les différentes étapes en fonction de vos besoins. Peu importe la version du Raspberry Pi. Il faudra par contre y brancher une clé USB Zigbee2MQTT, c’est la méthode utilisée dans notre cas.

Installez Home Assistant sur Raspberry Pi, la manière simple

Première étape : installer un système d’exploitation sur notre Raspberry Pi 4. On utilise le logiciel officiel Raspberry Pi Imager. Une fois l’application lancée, dans la liste des OS nous allons dans « Other specific-purpose OS, Home assistants and home automation », puis on sélectionne Home Assistant (la version pour Raspberry Pi 4 dans notre cas).

L’application se charge ensuite de préparer une carte microSD qu’il faudra ensuite installer dans le Raspberry Pi avant de le démarrer.

Home Assistant est un système taillé sur mesure pour la domotique. Nous l’avions déjà pris en main l’année dernière, on vous invite à lire notre dossier si vous souhaitez une présentation de « HA ». Pour rappel, une fois la carte microSD et le Raspberry allumé, il faudra vous rendre à l’adresse http://homeassistant.local:8123 pour accéder à Home Assistant.

Vient ensuite la phase de « préparation » de Home Assistant. Elle peut prendre jusqu’à 20 minutes. Il vous sera demandé des informations, notamment un nom d’utilisateur (identifiant) et un mot de passe. On se retrouve alors sur la page d’accueil de Home Assistant, que nous allons configurer.

Création d’un nouvel utilisateur

Première chose : créer un nouvel utilisateur. Nous allons l’appeler « mqtt », mais ce n’est pas une obligation, vous pouvez choisir un autre nom. On vous explique un peu plus loin pourquoi ce nom.

Rendez-vous donc dans Paramètres (en bas à gauche de l’interface) et Personnes. Cliquez sur « Ajouter une personne » en bas à droite. Saisissez un nom (mqtt), cochez « Autoriser la connexion », ajoutez un mot de passe (pas besoin de donner des droits administrateurs). Vous pouvez limiter l’accès en mode « local uniquement ».

On installe et configure le module Mosquitto broker

Deuxième étape, ajouter le module officiel Mosquitto broker. Pour cela, on se rend dans les paramètres, dans Modules complémentaires et on clique sur Boutique des modules complémentaires (en bas à droite cette fois).

Identifiez le module Mosquitto broker ou utilisez le champ de recherche. Cliquez sur Installer, pour l’ajouter à votre Home Assistant. Ce module est basé sur Eclipse Mosquitto, un serveur MQTT open-source. MQTT… Mais c’est quoi au fait ce truc ? C’est un protocole que nous avons expliqué dans le Nextpresso de ce matin. Il permet de centraliser et redistribuer des informations.

Dans notre cas, la clé USB Zigbee récupère les données TIC du Linky via le module LiXee, puis Mosquitto broker les rend accessibles via le protocole MQTT.

Le temps de lire ces quelques lignes, Mosquitto devrait avoir terminé son installation. Rendez-vous alors dans l’onglet Configuration. Il faut ajouter deux lignes dans la partie « Logins » : l’identifiant et le mot de passe du compte que nous avons créés précédemment. L’onglet Documentation donne des détails si besoin.

Voici les deux lignes dans notre cas :

- username: mqtt
    password: NextFTW

Cliquez sur enregistrer et revenez dans le premier onglet Info. Démarrez le module. Vous pouvez vérifier dans l’onglet Journal que tout se passe bien. En gros, il ne faut avoir que du vert et du noir, pas de message en rouge.

Au tour du module Zigbee2MQTT

Troisième étape, un autre module à installer : Zigbee2MQTT. Mais ne le cherchez pas dans la boutique officielle des modules complémentaires : il faut ajouter manuellement un dépôt.

Retournez dans la Boutique des modules complémentaires (Paramètres, Modules complémentaires) et cliquez sur le menu avec les trois points verticaux, puis sur dépôt. Dans le champ Ajouter saisissez l’adresse suivante :

https://github.com/zigbee2mqtt/hassio-zigbee2mqtt

Une fois que c’est fait, de nouveaux modules… n’apparaissent pas. C’est une simple histoire de cache. Un coup de F5 pour rafraîchir la page et vous devriez en voir trois : Zigbee2MQTT, Zigbee2MQTT Edge et Zigbee2MQTT Proxy.

C’est le premier qui nous intéresse. Cliquez dessus et installez-le. Ça va maintenant swinguer un peu plus, mais rien d’insurmontable. Dans l’onglet Configuration, procédons à quelques ajustements.

Laissez telle que la partie « socat », il n'y a rien à modifier. Il faut par contre compléter « mqtt » et « serial ». Pour mqtt, ajoutez trois lignes et enregistrez (à adapter en fonction de l’utilisateur créé au début) :

server: mqtt://core-mosquitto
user: mqtt
password: NextFTW

Comment trouver l’emplacement de sa clé USB Zigbee

Pour serial, il va falloir chercher une information supplémentaire. Retournez dans les paramètres, puis Système, Matériel et Tout le matériel. Sur notre interface (mais c’est variable suivant votre configuration), nous avons gpiochip0, gpiochip1, mice et ttyACM0. Ce dernier correspond à notre clé USB Zigbee2MQTT, comme on peut le voir avec le descriptif qui affiche Texas Instrument TI CC2531, soit la référence de la puce de la clé.

Cliquez sur cette ligne et trouvez celle dont l’information commence par « DEVNAME: ». Elle vous donne l’adresse de la clé sur le Raspberrry Pi, « /dev/ttyACM0 » dans notre cas.

Retournez dans la configuration de Zigbee2MQTT, et dans « serial » ajoutez la ligne suivante :

port: /dev/ttyACM0

Sauvegardez et démarrez le module depuis l’onglet Info. L’onglet Journal permet là encore de vérifier que tout va bien. Dans le cas contraire, des informations devraient apparaitre en rouge… et là commence une vaste chasse au bug. Bonne chance dans ce cas, car les causes peuvent être multiples.

Et hop, les données TIC apparaissent dans Home Assistant

Vous pouvez cocher l’option Afficher dans la barre latérale, qui ajoute un raccourci dans le menu de gauche vers le module Zigbee2MQTT. Si tout va bien, vous devriez y voir la clé TIC LiXee. Sinon, vous pouvez Activer l’appairage, faire de même sur le module. Les deux devraient alors communiquer sans problème.

Avant de passer au Tableau de bord, on va d’abord vérifier que tout se passe bien dans Home Assistant et que les données TIC sont bien diffusées via MQTT et récupérées par le module Zigbee2MQTT.

Rendez-vous dans Paramètres, puis Appareils et Services. Trouvez MQTT et cliquez sur la partie juste en dessous. Il est écrit « 2 APPAREILS » sur notre installation de Home Assistant. Cliquez sur LiXee. Normalement, vous arrivez sur une page avec de nombreuses informations… pas très explicites, mais on va arranger cela.

S‘y retrouver dans les abréviations Enedis

Premier point, certaines informations ne sont pas mises à jour régulièrement, mais uniquement lors de certains changements dans la journée. Pas d’inquiétude si certaines lignes n’affichent rien, cela devrait rentrer dans l’ordre au cours des prochaines heures.

Quoi qu’il en soit, vous avez devant vous une ribambelle de capteurs simplement étiquetés « Énergie », d’autres avec des noms barbares comme HHPHC, IMAX (rien à voir avec le cinéma), PAPP, PTEC… Pas facile de s’y retrouver.

Pas de panique, il existe une forme de « Pierre de Rosette » du Linky, fournie par Enedis dans le document (PDF) Enedis-NOI-CPT_54. Il regroupe toutes les étiquettes/abréviations citées juste avant, avec leur correspondance en français, leur unité et d’autres informations.

Réorganisons un peu tout ça pour être facilement lisible. Sur la page MQTT où nous nous étions arrêtés, cliquez sur MQTT sur le premier bloc en haut à gauche, puis sur « 36 entités » (le nombre varie suivant votre contrat d’énergie). On arrive alors à la liste des capteurs avec leur ID.

Par exemple, nous avons un capteur d’énergie baptisé 0x00158d0005d24943_bbrhcjb. Seule la fin nous intéresse : hcjb. Une fois la traduction activée (à l’aide du document ci-dessus), on comprend qu’il s’agit des Heures Creuses Jours Bleus. Nous avons un abonnement Tempo avec des jours bleus, blancs et rouges, en heures pleines et creuses à chaque fois (soit six variables). Enedis ayant choisi bleu et blanc qui commencent par la même lettre, les jours blanc sont avec un w comme white.

Le capteur qui termine par « papp » est aussi très intéressant, car il correspond à la puissance apparente. C’est la consommation instantanée du logement, en VA (Volts Ampères). Tous les capteurs peuvent être renommés pour les retrouver plus facilement par la suite, on ne peut que vous conseiller de le faire.

On se fait un petit Tableau de bord pour suivre la consommation

Créons maintenant le Tableau de bord. Direction Paramètres, Tableaux de bord et cliquez en bas à droite sur « Ajouter un tableau de bord ».

On prend un tableau de bord vide qu’on appelle Consommation électrique. On clique sur Ouvrir en face de notre nouveau Dashboard et on se retrouve devant une page vide. Cliquez sur le petit crayon en haut à droite, puis sur « Ajouter une carte » (en base à droite), descendez jusqu’à Jauge et cliquez dessus.

Dans Entité, on sélectionne le capteur qui se termine par « papp ». On personnalise un peu avec un minimum à 0 et un maximum à 9 000 (nous avons un abonnement 9k VA). On coche les options aiguille et sévérité. Dans la case Vert on met 0, dans la Jaune 1500 et 4000 pour la Rouge. Cela permet simplement d’avoir des indications colorées en fonction de notre consommation.

Résultat des courses, à moins de 1,5 kVA, on est dans le vert, on passe en orange entre 1,5 et 4 kVA puis en rouge. Des valeurs arbitraires à adapter en fonction de vos habitudes et envies. On enregistre, on clique sur Terminer et notre tableau de bord est fait.

Home Assistant affiche désormais notre consommation en temps réel. On peut bien sûr compléter le tableau de bord avec les données d’autres capteurs et profiter de toutes les possibilités d’intégrations de Home Assistant pour mélanger les données du Linky avec d’autres pour des scénarios, des actions, etc.

Voilà ce que ça donne avec les index de consommation en plus, sur un navigateur web et sur l’application mobile (ce service est pour rappel gratuit en local uniquement).

Commentaires (26)

Vous devez être abonné pour pouvoir commenter.

Abonnez-vous
votre avatar
J'ai l'impression que le fait d'appeler cette clé usb "zigbee2mqtt" alors que c'est juste un coordinateur zigbee (sûrement compatible zha et autre implémentation) apporte beaucoup de confusion (cf le Nextpresso précédent).

Je pense que ça apporterait plus de clarté d'appeler ça le coordinateur zigbee usb (compatible zigbee2mqtt, zha, ...) pour bien montrer qu'il y a une partie matériel, puis une partie logicielle, puis une partie plateforme.

Autre point, je vous conseille grandement les produits SMLight notamment leur coordinateur zigbee ethernet POE, ça enlève le besoin d'un host usb et on gagne à avoir un produit très bien finit dont le firmware peut être mis à jour très facilement. (qui flash ses clés usb ici ?)
votre avatar
Effectivement, ça pourrait être à réfléchir. Je vais regarder du côté de SMLight :)

Pour zha and co, c’est prévu d’y aller aussi, mais il faut bien commencer par quelque chose, j’ai choisi MQTT :chinois:
votre avatar
Ah vous régalez, merci merci merci pour cette doc 👌
votre avatar
Le serveur WES de Cartelectronics est une bonne option également, il a des outils supplémentaires qui me servent bien, en plus de sa connectivité TIC : 4 pinces ampèremétriques, possibilités de brancher des capteurs filaires + relais...
La compatibilité Jeedom est bonne aussi. Seul bémol : je n'ai pas réussi à communiquer avec sous HA...
votre avatar
J'utilise un module TIC ZLinky, comme présenté dans l'article, avec mon Home Assistant, depuis quelques années maintenant, et je dois dire que ça marche assez bien.

J'utilise surtout le dashboard Énergie par défaut, qu'on peut configurer pour avoir un peu plus de data :
- en installant le service " Electricity Maps" (alias CO2Signal), on peut avoir la part d'énergie bas carbone (bon, en France ça passe rarement sous les 95%, avec le nucléaire...)
- Il y a aussi un service "hass-tarif-edf", qui permet d'avoir le coût de sa consommation électrique
- Et si on a des prises connectées ou autres appareils qui permettent de rapporter leur consommation électrique, on peut avoir le détail device par device qu sein du graphique de consommation heure par heure global.
votre avatar
@SébastienGavois Je confirme ce point, c'est le GROS plus pour moi d'avoir ce dongle dans le compteur ET des prises connectées qui remonte leur conso...
On peut voir visuellement ce qui consomme beaucoup et quand...
votre avatar
Idem, j'utilise aussi un Zlinky, et les mêmes extensions pour l'emprunte CO2 et le tarif. Je ne suis pas chez EDF, mais le tarif étant le même, ca ne change pas grand chose :)

Par contre, pour le gaz et l'eau, c'est un peu plus "chiant". Passer par Gazpar : ca a marché un temps, mais ya des ratés (pendant longtemps, un pauvre captcha a bien cassé les pieds à tout le monde)... je préfèrerai un capteur comme le zlinky. Pour l'eau, étant en immeuble, il y a déjà un module connecté sur mon compteur, donc je ne peux pas récupérer la roue avec un capteur magnétique... pas simple, et passer par une webcam me parait un "sortir un bazooka pour tuer une mouche". Overkill. Reste que c'est chez ISTA, mais ... en france, c'est webconso et pas Ecotrend...
votre avatar
Bonsoir à tous après mes vacances juste commencées, je vais essayer d'adapter ce tuto mais sur mon nas Synology et avec domoticz qui est déjà sur mon n'as. En espérant y arriver 😁😁😁.
Merci pour ses infos sans vous je ne sais pas si je m'y serai mis .
votre avatar
Article tutoriel bien sympathique qui donne envie de franchir le pas.

Je me demande s'il est sage d'investir dans ces modules pour passer sous home assistant où le seul intérêt serait de geeker et de s'affranchir de SmartLife.

La gestion serait peut-être plus précise et indépendante de SmartLife mais le gain serait nul, d'autant qu'un Pi allumé en permanence consommera plus (certes 15€ à l'année).

J'ouvre succintement le débat et je suis intéressé par vos avis et retour d'expérience.

Question : les appareils connectés, comme prise ou caméra, sont ils connectés à la box internet ou directement au Pi ? Merci
votre avatar
Le fait de passer ou nom par le cloud d'un tiers dépends du matériel que tu installes. Je suis passé sous Home Assistant sur Raspberry Pi depuis deux ans. Au début j'avais des prises wifi comme des meross ou Shelly. Depuis j'ai rajouté des prises lidl qui sont en zigbee. L'ensemble des prises sont en local. Aucune ne passe par le cloud d'un fournisseur. Il faut regarder dans les intégrations des matières de HA pour voir si ça passe par le cloud ou pas. En tout cas les dernières prises de Lidl sont au top. Elles s'appareillent simplement et font en plus de la mesure de consommation. Je suis également en train de passer tous mes appareils en WiFi qui passent par un cloud ( volet roulant) vers leur équivalent en zigbee en local sans cloud.
votre avatar
Je ne sais pas si mes prises connectées peuvent servir directement à Home assistant. Je vais tester dès que possible.
J'ai ça : ANTELA Prise Connectée Alexa Française 16A 3680W Mesure de Consommation Électrique Type-E, Prise Intelligente avec Google Home,Smart Life APP Contrôle, Horaires et Minuterie, 4PCs https://amzn.eu/d/78m4GwU
votre avatar
Dans la doc HA, il est indiqué que les add-ons ne sont pas compatible avec l'installation docker/container.
Est-ce vraiment le cas ou existe-t-il des solutions de contournement ?
(j'ai pas forcement envie de monter un hyperviseur juste pour HA)

J'ai aussi un Pi 2B qui traine, mais j'imagine qu'il n'est pas assez costaud si ?
(suivi de conso m’intéresserait, également la gestion de camera IP)
votre avatar
Pour home assistant il est conseillé au moins un Pi3B pour avoir suffisamment de ram.
votre avatar
J'ai longtemps utilisé avec un Rpi2. C'était lent, pas recommandé, mais ça restait utilisable. Maintenant avec les dernières versions, il faut voir.
Je ne sait pas pourquoi tu refuse l'hyperviseur, mais je trouve qu'il apporte plus de simplicité qu'avec du docker à gérer soit-même et des problèmes de compatibilité.
votre avatar
Je confirme que l’installation sous proxmox se fait très bien, il y a un script pour. Et pouvoir faire un snapshot avant toute mise à jour (même si pour l’instant, je n’ai jamais eu le moindre soucis avec les mises à jour), c’est tellement plus rassurant… Rien que pour ça, même si la machine était dédiée HA, je recommanderai de la mettre dans un proxmox.
votre avatar
Faut se motiver quand même pour repartir sur un nouveau truc qu'on ne maîtrise pas (promox) :S

Je sais pas trop ce que sa donnerait en terme de perf ou alloc de ressource d'ajouter une couche de virtualisation (promox) en amont de mon Docker (le déploiement docker sous un promox ne devrait pas être compliqué... Un espace de stockage à exposer (data + fichier de conf de mes container), et un docker compose à lancer.

En plus mon serveur est sur un vieux bousin, j'ai tout sur un NVME sur slot PCIE, mais avec le /boot de l'OS sur un ssd 2.5 (ma CM ne gère pas le boot sur le disque NVME en PCI).

Bref quelques heures à passer... Ce serait plus simple pour moi si HA+Extension pouvait tourner en Docker...
votre avatar
La prise en main de proxmox n'est vraiment pas compliquée. Tu as même des articles dédiés ici même. Et sur les ressources, je trouve que c'est plutôt transparent, en fait. J'ai fait tourner proxmox sur du i5-4160T de 4ième génération, du G3900T, du J4105 sans soucis. J'ai quasi tout mes services sur un i5-6500T avec 6 vm, dont une avec une vingtaine de conteneurs docker. Le tout reste sous les 5% de charge.
votre avatar
Merci, je vais me pencher dessus quand j'aurais un peu de temps.

J'ai 5/6 containener "permanant" plus toujours quelques uns de test.
En permanant, entre autre, un Zoneminder qui gère mes caméras, les ressources sont donc préciseuses :S
Faut que je vois aussi, je dois avoir un ou deux service niveau OS qu'il faudrait donc que je convertisse en container ou VM sous promox.
Le tout sur un I7-3770T
votre avatar
Pour HA en conteneur, ce qui est lourd c'est qu'il faut un conteneur privilégié qui a accès aux ports (par exemple pour dédier un port USB à une liaison série ou zigbee).
Par ailleurs, certaines auto-discover ne remontaient pas.

En VM sous un hyperviseur comme proxmox, je branche le zigbee en USB, je clique pour affecter le port ou l'appareil à la VM homeassistant, je redémarre la VM et basta.

Un RPI2 pour home assistant, ça fonctionne - mais pour de la vidéo IP, je suis circonspect: les débits et la charge liés à 'utilisation de l'USB sur un RPI2 peuvent être un problème.
votre avatar
Le RPI2 B est au fond d'un tirroir, je l'exclus cette solution au vu des réponses que l'on ma donnée.
Je m'oriente vers promox sur mon serveur ( 4C-8T @3.7Ghz et 16GB RAM). La video bouffe beaucoup, j'aurais peut être de l'arbitrage à faire.

Pour Docker, je n'ai jamais eu à mapper des péripherique USB, et les découvertes LAN fonctionnent rarement également pour moi (mais je m'en suis toujours passé).


Merci pour vos réponses, je lorgnais sur HA depuis un moment (qui même avec les flux Vidéos pourrait me servir) mais pas testé car trop limité avec Docker.
Vous m'avez convaincu, je vais me monter une virtu promox qui fera tourner mes container d'un coté, et VM HA de l'autre.
votre avatar
Ca reste ultra compliqué. Ca devrait être fourni de base sans tout ça.

Surtout que les compteurs sont à côté de la route donc il y a en plus le problème de distance pour les ondes. Faut coller un répéteur au mur côté route.
votre avatar
Tu peux regarder ceci alors:
github.com GitHub

Je l'ai utilisé avant le lixee et ça fait le job, moins "temps réel" mais ça te permet de récupérer dans homeassistant tous les relevés horaires du compteur Linky via les api Enedis.
Tu n'as rien de "physique" à installer dans ton compteur, juste a donner 2/3 autorisations de remontée de ta conso
votre avatar
Juste pour troll un peu...

Quoi !? Chez next on écrit son mot de passe en clair et on le diffuse sur un article en ligne ?

Rhalala et dire que ça nous parle de sécurité...

Autrement, chouette article :p
votre avatar
Ptite question, pourquoi avoir choisi une clé zigbee mqtt plutôt que la clé home assistant zbt-1 (skyconnect), qui est elle aussi compatible zigbee ? Il y a une incompatibilité ou bien c’est juste parce que c’était le matos sous la main ? (je pose la question, car ayant la skyconnect, je voudrais être sûr que ça fonctionnera bien correctement).
votre avatar
J'ai le module LiXee et la clé skyconnect et ça fonctionne très bien 👍
votre avatar
Sur le même theme (HA + suivi conso), un "deal" à base de capteur tor à pince (donc pas besoin de démonter les cables des disjoncteurs) :
https://www.dealabs.com/bons-plans/compteur-electrique-intelligent-refoss-em06-2866077

[Tuto] Suivre sa consommation électrique en direct avec un Raspberry Pi et Home Assistant

  • Installez Home Assistant sur Raspberry Pi, la manière simple

  • Création d’un nouvel utilisateur

  • On installe et configure le module Mosquitto broker

  • Au tour du module Zigbee2MQTT

  • Comment trouver l’emplacement de sa clé USB Zigbee

  • Et hop, les données TIC apparaissent dans Home Assistant

  • S‘y retrouver dans les abréviations Enedis

  • On se fait un petit Tableau de bord pour suivre la consommation

Fermer