Version n°1 du 14/07/2022 - Base
Version n°2 du 16/07/2022 - Ajout de précisions et mise en forme
Version n°3 du 18/12/2022 - Ajout flux pour Enphase V7
REFERENCES
INTRODUCTION
Ce tuto a été demandé par quelques personnes. Il s’agit de rassembler des informations réparties dans le post enphase-envoy-script-json-node-red pour permettre de récupérer les données de la passerelle Enphase Metered toutes les secondes (via l’URL « /stream/meter »)
Le plugin Jeedom Enphase permet de récupérer les données toutes les minutes
Certain pourraient bénéficier d’un accès plus rapide à cette information, par exemple pour faire du délestage ou enclencher des équipements en cas d’export de la production
Mais que viens faire Node-RED ici ? Node-RED est un outil de programmation permettant de relier rapidement et graphiquement des matériels ensembles. Il est basé sur Node.js
Nous nous servirons de Node-RED pour récupérer les données de la passerelle Enphase Metered puis les renvoyer, via le protocole MQTT, à Jeedom sans avoir vraiment besoin de recourir à de la programmation (en Python par exemple).
Besoin et prérequis :
- Le superviseur Proxmox pour créer une nouvelle VM
- Le plugin jMQTT installé sur Jeedom et donc l’infrastructure qui va avec c’est-à-dire Mosquitto
Dans ce tuto je procède à la création d’une nouvelle VM car il est facile de la mettre en place, stopper, supprimer sans impacter Jeedom mais suivant votre cas vous pourrez faire comme vous voulez
Je considère que vous avez déjà un broker (Mosquitto par exemple) et un client MQTT
Je ne décris pas ici la mise en place de jMQTT et du broker Mosquitto mais vous trouverez sur Community plusieurs sujets qui en parle dont mon 1er tuto concernant la mise en place de ZWaveJS2MQTT
CRÉER CONFIGURER ET INSTALLER UNE VM Node-RED
Créer une nouvelle VM sur Proxmox puis installer Debian 10
Voici le lien vers Debian 10 pour AMD64 : https://cdimage.debian.org/cdimage/archive/10.12.0/amd64/iso-cd/debian-10.12.0-amd64-netinst.iso
Nom de la VM : Node-RED
Nom de l’utilisateur de cette VM : nodered
Se connecter avec l’utilisateur nodered en ssh ou bien en y accédant via l’outil de Console de Proxmox
La commande « ip addr » permet de découvrir l’IP de la VM.
MAJ Debian
IP de la VM chez moi : 10.0.1.53
Prendre la main en SSH avec l’utilisateur nodered et procéder à la mise à jour de Debian
su -
apt-get install sudo
usermod -aG sudo nodered
reboot
sudo apt update
sudo apt upgrade
INSTALLER AGENT POUR PROXMOX (FACULTATIF)
sudo apt install qemu-guest-agent
RECUPERER LE MOT DE PASSE INSTALLER DE L’ENPHASE
IP de la passerelle Enphase chez moi : 10.0.6.10
Contrairement à l’adresse http://10.0.6.10/production.json de votre passerelle Enphase, l’adresse http://10.0.6.10/stream/meter n’est pas accessible sans le mot de passe installer
Il va falloir le récupérer en installant un outil sur un téléphone Android. Une fois exécuté, le programme vous communiquera le mot de passe installateur de votre passerelle. Il ne s’agit pas d’une application Google Play et vous devrez donc autoriser les sources externes pour l’installer
INSTALLER Node-RED
sudo apt install curl
bash <(curl -sL https://raw.githubusercontent.com/node-red/linux-installers/master/deb/update-nodejs-and-nodered)
Répondre « No » à la question sur le Pi
sudo systemctl enable nodered.service
sudo node-red-start
Accès à l’interface de Node-RED sur le port 1880 : http://10.0.1.53:1880
CONFIGURER Node-RED ET CRÉER LE FLUX
- Ajout des composants nécessaires
a. Menu > Manage palette
b. Installer les composants node-red-contrib-sse-client et node-red-dashboard
- Importer le fichier .json (renommer le fichier ci-dessous) en .json avant
Envoy-Stream.json.txt (8,2 Ko)
- Personnaliser le flux à votre environnement :
Vous devriez voir apparaitre ce flux suite à l’import. Il faut le personnaliser par rapport à votre environnement
a. Editer « http request » puis changer l’IP par celle de votre Envoy et indiquer le mot de passe installer de votre passerelle Envoy
b. Editer « SSE client » et changer l’IP par celle de votre Envoy
c. Editer « mqtt » puis le serveur Mosquitto et changer l’IP du server par celle de votre serveur Mosquitto
Attention à ne pas avoir plusieurs clients avec le même ID
IP du Broker Mosquitto chez moi : 10.0.1.102
d. Cliquer sur « Deploy » pour déployer votre flux dans le moteur
e. Cliquer sur la case à gauche de Start pour démarrer le flux et rapidement vous devriez voir que :
- Le node SSE client est « connected » c’est-à-dire que Node.js a réussi à se connecter à la passerelle Enphase Metered
- Le node mqtt est « connected » c’est-à-dire que Node.js a réussi à se connecter au serveur Mosquitto
RECUPERER LES INFORMATIONS DANS jMQTT
Node-RED étant connecté à votre Envoy il récupère les informations, filtre (voir fin du tuto) puis envoi sur le Broker Mosquitto
Il ne reste plus qu’à indiquer à jMQTT d’aller chercher ces informations
Ajouter un nouvelle équipement « Envoy Stream » et l’inscrire dans le topic « Node-RED/Envoy/Stream/# » en laissant coché dans un 1er temps l’ajout automatique des commandes. Une fois les 3 commandes obtenues je conseille de décocher la case
Au bout de quelques secondes vous devriez voir 3 commandes :
- NetConso c’est-à-dire l’export si ce chiffre est négatif et l’import s’il est positif
- Prod c’est-à-dire la production de vos panneaux
- TotConso c’est-a-dire la consommation totale de votre logement (incluant donc l’énergie « Prod » provenant des panneaux)
En d’autres termes : TotConso = Prod + NetConso
TIPS ET FIN
Ce pas à pas est terminé et voici l’heure des remerciements sans qui je n’aurais pas pu faire ce tuto :
Merci à @olive d’avoir largement défriché et expliqué le fonctionnement de Node-RED
Merci à @batkite pour l’information sur le programme permettant de récupérer le mot de passe installer
Merci à @Manumdk d’avoir mis à disposition son flux. C’est celui qui permet de se connecter à l’Envoy, de récupérer les informations, de les traiter et de les envoyer via MQTT
Le node « Filtre » :
Il a été ajouté pour éviter de remonter le moindre changement de valeur au broker et donc à votre Jeedom.
Je l’ai configuré à 2% pour que seul un changement de plus de 2% par rapport aux précédentes valeurs ne soit remonté vers le Broker
Libre à vous de l’adapter à votre besoin ou de le supprimer !
Les nodes de récupération des informations venant du JSON :
Ces nodes s’occupent d’extraire l’information du JSON et de transmettre au Broker sur le topic de base « Node-RED/Envoy/Stream ». C’est celui qui a été utilisé dans jMQTT
Nouveau flux pour Enphase V7 pour ceux qui souhaite continuer d’utiliser Node-RED
A partir de la version 7 de l’Enphase, la méthode de connexion a totalement été modifiée
Je propose donc une modification, testé et validé par @seraphinou (sauf la partie renouvellement du token qui devrait avoir lieue dans 1 an)
Envoy-V7-Stream.json.txt (15,9 Ko)
Il faudra adapter les nodes avec vos données :
- Email et Password Enlighteen
- IP locale de l’Enphase
- Serial de l’Enphase
- Topic jMQTT et serveur Mosquitto
Bonne utilisation