Une alternative DIY au linky PZEM004T + Wemos + Tasmota + MQTT
19 décembre 2020Bonjour, aujourd’hui je vous propose de fabriquer un capteur complémentaire et indépendant au Linky et qui communique avec Jeedom via MQTT. Il a aussi l’avantage de pouvoir s’installer sur un RailDIN.
Pour cela, nous allons un capteur que nous avions vu dans l’article précédent, le PZEM004T V3. https://miniprojets.net/index.php/2019/08/23/creation-dun-enregistreur-autonome-de-puissance-electrique-monophase-base-sur-un-wemos-d1-mini-dun-shield-rtc-sd-et-dun-pzem004t/
ATTENTION, vous allez travailler sur du 220V donc c’est un réel danger. Ne faites pas ce tutoriel sans être sûr que la partie électrique est sécurité!!!! Je ne pourrais pas être tenu responsable en cas de dégât humain ou matériel.
Partie 0: Le matériel choisi
En ce qui concerne le matériel, il vous faudra:
- Un Wemos D1 mini
- Un Capteur de puissance PZEM004T V3
- Un transformateur 220V AC vers 5V DC
- Pour ceux qui ont une imprimante 3D ou un Fablab à proximité, je vous propose de fabriquer le boitier qui permettra de ranger tout cela proprement. Le modèle que j’ai choisi, se trouve sur Thingiverse
https://www.thingiverse.com/thing:4260260
- Des connecteurs 4 broches JST pour faire la connection avec le PZEM
- Et quelques fils pour faire les connections
Partie 1: La programmation avant assemblage
Avant de commencer l’assemblage du capteur, je vous propose de faire la programmation de votre Wemos.
Pour cela, téléchargez le fichier tasmota.bin qui se trouve à l’adresse suivante:
https://github.com/arendst/Tasmota/releases
Vous pouvez prendre le fichier le plus récent (pour ma part, je suis actuellement sur la version Tasmota 8.4.0).
On télécharge aussi le logiciel flasher le firmware, j’utilise le soft ESPEasy, issue de ce site: https://github.com/letscontrolit/ESPEasy/releases comme nous avions fait dans l’article https://miniprojets.net/index.php/2019/04/16/hack-dune-prise-alfawise-murale-etanche/
Voilà maintenant que tout est téléchargé, on peut commencer la procédure de flashage.
Je remets l’archive compressé de tous les outils au cas où les liens ne fonctionneraient plus.
Dans le dossier ESPEasy, mettez le fichier tasmota.bin
Maintenant, on commence par brancher avec un câble USB le Wemos à l’ordinateur.
Une fois que cela est fait, il faut double-cliquer sur FlashESP8266.exe
La fenêtre suivante apparait avec le port COM normalement déjà renseigné. Il ne vous reste plus qu’à choisir le firmware
Choisissez le bon port COM et cliquez sur Flash. La fenêtre suivante apparait.
Si tout est ok, normalement vous aurez cela à la fin:
Si jamais cela bug, flasher d’abord le fichier blank_4MB.bin et recommencez la procédure.
Afin de vérifier que le firmware est bien flashé, débranchez le wemos et rebranchez le.
Ouvrez votre connexion Wifi pour voir s’il apparait, mais ne vous connectez pas tout de suite dessus
Si maintenant tout est ok, on peux commencer l’assemblage de notre capteur.
Partie 2: Assemblage du capteur
On va commencer par assembler notre boitier. voici les 4 pièces imprimées en 3D.
On glisse la targette dans le boitier principal.
On installe le PZEM004T dans son emplacement
On installe le connecteur JST
On rajoute le support pour le Wemos
On fait passer les fils dans l’espace prévu à cet effet
Maintenant, soudez le RX venant du connecteur du PZEM sur le TX du Wemos et le TX du PZEM sur le RX du Wemos.
Quand cela est fait, pour le 5V il faut raccorder le fil qui vient du connecteur avec un autre fil vierge comme sur la photo
Puis soudez cette connection sur le 5V du wemos. Cette opération nous permettra d’alimenter en même temps le PZEM et le Wemos.
On fait la même chose pour le GND.
Maintenant nous plaçons le wemos dans son emplacement
Nous raccordons le 5V et le GND sur le transformateur
Maintenant, nous soudons 2 fils pour alimenter le transformateur en 220V.
Et on les place de la fçon suivante sur le PZEM
On rajoute 2 fils de mesure pour la tension ainsi que le tor pour la mesure du courant. On range ensuite le transformateur dans son emplacement.
Voilà ce que cela donne à la fin
Maintenant vous pouvez refermer le boitier avec le couvercle.
Pour faire les tests, je vous propose d’installer une prise avant de l’installer dans votre coffret électrique.
Maintenant le moment de vérité! On peux brancher sur une prise de la maison.
Partie 3: La configuration du capteur
Connectez vous sur le wifi vu précédement.
Ouvrez maintenant un navigateur et tapez l’adresse 192.168.4.1
Vous allez tomber sur cette page
Dans AP1 SSiD, rentrez le nom du wifi sur lequel vous voulez que votre capteur se connecte (Exemple wifi_miniprojets) et dans AP1 Password le mot de passe de ce réseau.
Cliquez sur Save et vous verrez apparaitre normalement cela
Maintenant, pour savoir à quelle adresse IP vous devez vous reconnecter pour accéder à ce capteur, vous devez vous reconnecter sur votre réseau wifi normal et faire la procédure suivante (procédure faite pour une Freebox):
Allez dans les paramètres de votre routeur afin de connaitre l’adresse IP qui est attribuée à votre prise (pour moi comme c’est la Freebox fait office de routeur, cela ressemble à cela)
Repérez l’objet tasmota_XXXX
Cliquez dessus
Cliquez sur Connectivité
Voilà, vous connaissez l’adresse pour se connecter sur votre capteur.
Tapez l’adresse trouvée de votre capteur dans votre navigateur
Cliquez sur Configuration, puis Configure Module
Choisissez le module Type 18
Cliquez sur Save et attendez que le module reboot.
Reconnectez vous et allez de nouveau dans configuration.
Maintenant remplissez de la façon suivante
Recliquez sur Save et attendez de nouveau que le capteur reboot.
Petite apparté, il arrive que le type 18 ne fonctionne pas donc il faut passer sur le type 0 et remplir de la façon suivante
Si je trouve l’explication ou si vous l’avez je suis preneur. Fin de l’apparté.
Maintenant que le capteur a rebooté, reconnectez vous dessus et si tout est ok vous devriez avoir cela
C’est bon? Parfait!!!
On passe maintenant à la partie MQTT. Pour cela je vous invite d’abord à configurer votre raspberry ou autres avec les liens suivants:
Installation de Jeedom — > Voir mon précédent article https://miniprojets.net/index.php/2019/05/13/jeedom-ou-comment-domotiser-sa-maison-en-quelques-clics/
Installation de Mosquitto –> Je vous conseille le site suivant https://projetsdiy.fr/jeedom-mqtt-objets-connectes-domotique-diy/
Une fois cela fait, allez de nouveau sur votre capteur et cliquez sur Configuration, puis Configure MQTT.
Renseignez l’adresse IP de la machine sur laquelle vous avez installé Mosquitto ainsi que le topic dans lequel vous voulez écrire les valeurs
Cliquez sur Save, attendez le reboot et reconnectez vous.
Allez maintenant dans Configuration et Configure Other
Cliquez sur Enable MQTT
Save, on attend le reboot et maintenant dernière manipulation sur le capteur.
On va dans Configure, Configure Logging
Dans Telemetry period, on choisi la période d’envoi des données (Ici 10 secondes)
Cliquez sur Save une dernière fois. Voilà votre capteur est prêt!!!
Vous pouvez l’installer dans votre armoire électrique. Je vous conseille de le mettre derrière un disjoncteur dédié pour les 2 fils phase/neutre et mettre la boucle Tor sur la phase derrière le disjoncteur principal.
Voici ce que cela donne sur mon installation personnelle. On remet le capot
Maintenant, nous pouvons passer à la partie Jeedom pour visualiser.
Partie 4 : Visualisation dans Jeedom
Pour cette partie, nous passons sur Jeedom et nous devons télécharger le plugin JMQTT car c’est le seul qui décrypte correctement les informations envoyé par Tasmota
Faites la configuration comme indiqué dans la documentation.
Maintenant, allez dans le plugin et cliquez sur Ajouter un broker
Donnez lui un nom et cliquez sur ok. Vous devez avoir normalement cette page
Cliquez sur l’onglet Broker et renseignez l’adresse IP de l’installation de votre broker. Laissez Localhost si c’est sur la même machine.
Cliquez maintenant sur Sauvegarder et retournez sur le plugin.
Maintenant cliquez sur Inclusion
Attendez un moment et normalement vous verrez des équipements apparaitre.
Cliquez sur l’équipement qui vous intéresse.
Cocher activer et visible, renseignez aussi l’objet parent. Sauvegardez.
Maintenant allez dans l’onglet Commande, activez et historisez les commandes qui vous intéresse.
Voila maintenant allez sur voir si cela apparait correctement dans votre dashboard
Si vous voyez les chiffres bouger en temps réel, c’est que tout est ok.
Pour la visualisation comme la fréquence de rafraichissement est de 10 secondes pour moi, j’utilise InfluxDB et Grafana pour sotcker et visualiser les données.
Voici un exemple de ce que l’on retrouve.
Comme vous pouvez le voir, on obtient des informations plus précises de notre consommation d’énergie.
Si on rajoute à cela, les autres informations récupérables via le PZEM (Tension, Courant, Fréquence, Facteur de puissance, Puissance active, Puissance réactive et Puissance apparente), on se retrouve avec un outil formidable pour comprendre et maitriser sa consommation électrique.
J’espère que cette article vous aura plu et je vous souhaite de bonnes fêtes de fin d’année.
Jérôme Ferrari
[…] Pour cela vous pouvez aller voir les articles que j’avais écrit à l’époque soit http://miniprojets.net/index.php/2020/12/19/une-alternative-diy-au-linky-pzem004t-wemos-tasmota-mqtt… Si vous voulez utiliser le plugin JMQTT soit […]
Super projet! Bravo a vous!
Savez vous comment intégrer les infos reçu dans domoticz?
Merci!
Bonjour, merci. Pour domoticz, je vous conseille de regarder de ce côté là pour l’intégration:
https://easydomoticz.com/forum/viewtopic.php?f=24&t=8420
Bonne journée,
Jérôme
Bonsoir
Je n’arrive pas à avoir en mode inclusion les données sur jeedom. La seule info est le status. Pouvez vous me donner un coup de main par mail. Merci
Bonjour,
je viens de vous envoyer un mail.
Bonne journée,
Jérôme
Super projet qui fonctionne à merveille !
J’y ai ajouté une sonde de température qui me remonte la température et l’humidité du local.
Par contre j’aurais souhaité étoffer l’installation avec un capteur ILS pour surveiller l’ouverture de la porte.
Pas de problème pour assigner le GPIO en charge mais comment lier l’IDX ? Je n’ai pas de switch ni button qui apparait (page domoticz)
Merci