Capteur Enphase – Envoy-S Metered™ pour routeur photovoltaïque

Routeur Multi Source
Envoy-S / IQ Gateway Metered ™
Routeur Multi Source
SmartPhone ou PC

Un routeur Photovoltaïque a besoin de connaître avec précision la puissance échangée avec le réseau public en entrée de maison. Nous avons deux situations :

  • de la consommation avec de la puissance ou énergie soutirée
  • de la surproduction avec de la puissance ou énergie injectée

Pour mesurer le niveau de puissance et connaître son sens de transfert, il faut connaître à tout instant la tension électrique et le courant électrique derrière le disjoncteur principal.

La passerelle Envoy-S Metered d’Enphase Energy fait cela très bien en monophasé et triphasé. On peut en extraire les données en temps réel, plusieurs fois par seconde, par Wifi ou Ethernet.

Modularité

La description générale du routeur avec toutes les entrées de mesure possible est donnée ici : https://f1atb.fr/fr/realisation-dun-routeur-photovoltaique-multi-sources-multi-modes-et-modulaire/

Dans une configuration d’un système connecté à Envoy-S, il se décompose en trois fonctions :

  • la mesure de puissance fournie par la passerelle Envoye-S Metered (firmware V5 , V7 ou au dessus)
  • le traitement à l’aide d’un microcontrôleur ESP32,
  • les actionneurs avec un triac et des relais pour alimenter différentes charges. Avec en option de contrôle, un capteur de température.

Mesure de puissance

La mesure de puissance s’effectue par une mesure de tension et une mesure de courant à l’entrée de la maison. Les données sont collectées toutes les 400ms environ via le Wifi auprès de la passerelle web « Envoye-S Metered » (version 5 ou 7 du firmware).

Traitement

Pour effectuer les mesures et les traitements, L’ESP32 est un microcontrôleur adapté à notre besoin. Il comprend :

  • des entrées analogiques pour mesurer des tensions,
  • des entrées/sorties numériques pour actionner un relais ou un triac si besoin,
  • des liaisons séries
  • une bonne capacité de calcul
  • une liaison WIFI pour faire du reporting à distance sur une page web ou un système de domotique.

Actionneurs

Gradateur – Triac

Pour ajuster le courant à injecter vers le chauffe-eau ou un chauffage, on utilise un gradateur de chez RobotDyn composé d’un Triac et d’un système de détection du passage à zéro de la tension. Il existe chez Aliexpress en :

Attention, le refroidisseur d’origine du Triac est largement sous-dimensionné sachant qu’il devra fonctionner pendant plusieurs heures. Remplacez-le par un plus grand en dessoudant et déplaçant le Triac. Pensez à raccorder le refroidisseur au fil de terre pour la sécurité.

Pour en savoir plus : https://f1atb.fr/triac-gradateur-pour-routeur-photovoltaique/

Relais

Ce projet permet l’ajout de relais sur les GPIOs libres de votre choix pour commander un ou plusieurs dispositifs suivant l’état de consommation ou injection de puissance au niveau de la maison.

Vous pouvez connecter un relais solide (SSR). Il en existe de nombreux de 10, 25 ou 40A. Ils doivent être commandables en 3.3V. et supporter une charge au moins du double de la charge réeklle connectée.

Depuis la version 8 du routeur, on peut les utiliser pour doser finement la puissance transmise comme avec un Triac. Voir ici : https://f1atb.fr/fr/routeur-photovoltaique-modes-de-regulation/

Mesure de Température

En option, on peut rajouter un capteur de température, pour adapter le fonctionnement du routeur. C’est un DS18B20, capteur de température étanche qui peut être positionné en extérieur ou même dans l’eau d’une piscine. Trois fils en sortie sont à câbler :

  • noir : relié à la masse Gnd de l’ESP32
  • rouge : relié au 3.3V
  • jaune : relié au GPIO13

Une résistance de 4700 Ω 1/4 ou 1/8 W est à relier entre les fils rouge et jaune.

Architecture Multi Routeurs

Le système peut s’éclater en différents modules pour s’adapter à des distances élevées entre l’ Enphase Evoye-S Meter ‘ et les équipements à alimenter. Chaque ESP32 se connecte à l’Enphase Envoye-S Meter’ par Wifi.

Présentation du routeur RMS en vidéo

Schéma global Enphase Envoy-S

Le schéma ci-dessous décrit le câblage électrique en version entrée « Envoy-S » avec un Triac. C’est une solution très intéressante par sa simplicité de réalisation. Quelques modules à interconnecter avec des fils d’électricien et des fils Dupont femelles.

Schéma routeur : Envoy-S ou ESP32 externe avec Triac

La sortie du Triac alimente le chauffe-eau . On peut rajouter en option des relais sur les GPIOs disponibles. Les LEDs + résistances visibles sur d’autres schémas sont remplacés par des modules LEDs précâblés. Ainsi, on évite les soudures.

Le schéma ci-dessous décrit le câblage électrique en version entrée « Envoy-S » avec un Relais SSR pour une régulation en « Multi-Sinus » ou « Train de Sinus ». C’est une solution encore plus simple à réaliser.

Schéma routeur : Envoy-S ou ESP32 externe avec relais SSR
Montage de 3 relais dans le cas d’une installation triphasée. Elle fonctionne en mode Multi-Sinus ou Train de Sinus asynchrone.

Page Web

Le code installé sur l’ESP32 comprend un serveur Web qui permet d’afficher sur une page, les différentes mesures ainsi que l’historique des puissances observées. Il suffit de rentrer l’adresse IP ou le ‘hostname.local ‘ de l’ESP32 dans le champ d’adresse de votre navigateur web.

Page principale – Accueil

En haut, une zone de menus pour choisir la page.

En dessous, l’heure (de France) fournie par le réseau.

Un tableau donne différentes valeurs mesurées ou calculées :

  • la puissance active Pw en Watt. C’est elle que vous payez lorsque vous soutirez,
  • la puissance apparente en VA, produit Ueff*Ieff,
  • l’énergie active soutirée depuis 0h en Wh
  • l’énergie active totale en Wh

Un deuxième tableau, donne l’état courant des actionneurs. Ici, l’ouverture du Triac à 0% du temps.

Un premier graphe donne la puissance active en rouge et la puissance apparente en bleu vert durant les 10 dernières minutes. On remarque que durant les phases de régulation, la puissance apparente est très importante et chahutée. C’est un comportement normal. Durant une demi-sinusoïde de 10ms, on consomme et on injecte de la puissance pour avoir un bilan nul de puissance active. Cela se traduit par de la puissance apparente élevée. Il n’y a pas de somme algébrique signée, c’est une somme de carrée. Voir la vidéo sur les unités électriques https://youtu.be/xHhURisycmA

Si un capteur de température DS18B20 est connecté sur le GPIO13, on retrouve en page d’accueil la température mesurée qui sert au contrôle des actions si besoin.

Plus bas sur la page, deux autres graphes donnent la puissance active sur 48H et l’énergie quotidienne (Soutirée-Injectée) en Wh sur un an. Ce dernier est stocké en mémoire ROM de l’ESP32 pour ne pas être perdu en cas de coupure de courant.

Page données brutes

Cette page regroupe des données brutes de mesures collectées auprès de l’Enphase Envoye-S Meter’ comme les tensions, courants, puissances etc..

Elle permet également de s’assurer que l’on a obtenu le droit d’Enphase de collecter les données directement sur l’Envoye-S Meter’ avec un firmware V7 ou au dessus. Un peu choquant quand on a le système installé chez soi.

En effet à partir de la version V7 du logiciel dans la passerelle Enphase, il faut faire une demande auprès d’Enphase sur 2 serveurs aux US pour obtenir un identifiant (Session Id) et un jeton d’accès (Token) qui vous permettront de lire les données pendant une durée limité.

Toute l’opération se passe automatiquement, le logiciel dans l’ESP32 s’en charge. Les 2 réponses OK montrent que cela s’est bien passé.

Un dernier tableau, fourni des informations sur l’ESP32, pour suivre son fonctionnement. En particulier on surveille le niveau du WIFI afin qu’il ne passe pas en dessous des -80 dBm.

Page paramètres

Une page est dédiée au paramétrage du système.

En premier, définir le capteur de mesure : Enphase-Envoy Externe.

Entrez l’adresse IP de la passerelle sur votre réseau.

Pour un firmware de la passerelle Envoy-S en version 5, rentrez uniquement l’adresse IP de la passerelle. Pour les version au dessus remplissez les autres champs (user, password, numéro).

Pour obtenir les autorisations d’accès à votre passerelle auprès d’Enphase pour le firmware V7 ou au dessus, il faut donner son nom d’utilisateur, son mot de passe et le numéro de série de la passerelle que vous trouvez par exemple dans l’application Enlighten à la rubrique Système / Périphérique.

Il est possible de personnaliser le routeur et les données en attribuant un nom.

L’adresse IP de l’ESP32 est définie par votre box internet (cocher la case DHCP) ou elle est fixée par vous-même.

Si vous souhaitez envoyer des données à Home Assistant ou Domoticz via un broker MQTT (par exemple Mosquitto), mettez une période de répétition autre 0 et remplissez les champs. La découverte des entités se fera automatiquement. Pour Homeassistant le MQTTPrefix doit être « homeassistant ».Vous retrouverez toutes les données importantes, tension, puissanc, la température si vous avez installé un capteur DS18B20.

Page actions

Cette page permet de configurer les actionneurs et de définir un planning de routage. Elle offre une grande flexibilité de configuration pour s’adapter aux divers besoins.

La première des actions est réservée au pilotage du Triac. Cocher la case pour l’activer. En cliquant sur + ou – on peut ajouter ou enlever des plages horaires. En déplaçant la souris horizontalement, on peut modifier les heures. Pour une plage horaire donnée, il y a 3 types d’action possible. Cliquez sur l’option choisie :

  • Triac forcé à Off (zone bleue). Pour tout arrêter
  • Triac forcé à On (100%) (zone rouge). Pour une mise en route de nuit d’un chauffe-eau par exemple
  • Triac ouvert entre 0 et 100% si Pw (puissance active en entrée de maison) < Seuil à définir, Off si supérieure au Seuil. Seuil en général à 0. (zone jaune foncé)). Mode normal de régulation.

Si votre ESP32 a un capteur de température DS18B20 connecté au GPIO13, il est possible de conditionner le passage à On (zone rouge) ou la régulation (zone jaune foncé) à une température ou une fourchette de températures (zone jaune clair). Ne rien mettre si l’on ne souhaite pas considérer la température.

Toutes les 200 ms, le logiciel augmente ou diminue la durée de conduction du Triac en comparant la puissance mesurée Pw au seuil fixé. Cela permet après plusieurs mesures de s’approcher de l’équilibre pour avoir une consommation/injection au niveau de la maison proche du Seuil (en général 0W) que l’on a fixé. Quand on augmente de 10% la durée d’ouverture, l’effet ne sera pas le même si vous avez une charge de 500W max connectée ou une charge de 3000W. Un curseur permet d’augmenter ou de réduire le gain de l’asservissement ou la réactivité de l’ensemble. En regardant l’historique de 10mn, on voit si la réaction à toute variation de consommation est lente ou trop rapide, engendrant une oscillation de la puissance active (courbe rouge).

SonOff Mini R2

Les autres actions permettent de piloter des relais branchés sur les sorties GPIO disponibles (sauf les GPIO32, GPIO33, GPIO35,GPIO6, GPIO7, GPIO8, GPIO9, GPIO10, GPIO11) ou de piloter un relais distant comme le SonOff Mini R2 https://f1atb.fr/sonoff-mini-installer-son-firmware-simplement-par-le-wifi/

Pour les GPIOs disponibles, il y a ici un très bon article.

Il faut remplir les différents champs :

  • Host: mettre « localhost » sans les «  » si le relais est connecté à cet ESP32 ou l’adresse IP du relais distant
  • Port: en général 80 pour une communication suivant le protocole http
  • On : pour un relais local mettre « gpio=17&out=1 » si l’on souhaite mettre à 1 la sortie GPIO 17. Pour un relais externe distant, mettre la commande demandée par le constructeur
  • Off: pour un relais local mettre « gpio=17&out=0&init=0 » si l’on souhaite mettre à 0 la sortie GPIO 17 et l’initialiser à 0 à la mise en route
  • Répet: répétition périodique en s si besoin de la commande. Avec 0 la commande est envoyée une seule fois au franchissement du seuil.
  • Temporisation: on impose un temps minimum entre 2 changements d’état. Cela évite des oscillations du relais lorsque dans la maison un plaque de cuisson passe de On à Off à On toutes les 30s. Le relais faisant en général l’inverse toutes les 30s pour absorber les pointes de surproduction.

Pour chaque plage horaire, il y a 4 types d’action de routage :

  • Pas de contrôle: il ne se passe rien.
  • Off : on force l’état Off du relais
  • On: on force l’état On du relais
  • Pw< et Pw> : si la puissance active est inférieure à un seuil, le relais passe à On. Si la puissance active est supérieure à un autre seuil, le relais passe à Off. Attention, il faut que le seuil(off) – seuil(on) soit supérieur à la consommation de l’équipement connecté pour éviter un risque d’oscillation On/Off.

De même que pour le Triac, on peut conditionner l’action On à une température ou fourchette de températures.

Chaque fois que vous sauvegardez, une nouvelle action vierge est proposée. Pour enlever une action, videz les champs.

Sauvegarde

Lorsque l’on apporte des modifications à ces paramètres. Il ne faut pas oublier de les sauvegarder dans la mémoire ROM de l’ESP32 puis faire un ESP32 Reset pour que le système soit relancé avec les nouveaux paramètres.

Test accès à la passerelle Envoy-S

Il est bon de vérifier son accès à la passerelle Envoy-S dans le cas d’un firmware V7. Dans un navigateur, entrez l’adresse ip de votre passerelle : https://<adresse IP Envoy-s>. Cela prend du temps à répondre car elle va vous re-router vers un serveur Enphase pour rentrer vos identifiants.

Vous pouvez de même tester l’accès à la page des données que va exploiter le routeur.
https://<adresse IP Envoy-S>/ivp/meters/reports/consumption

Montage

Montage Enphase Envoye-S

Le système en configuration « Enphase Envoye-S » est simple à monter. Avec les différents modules utilisés, il n’y a pas de soudure ou presque avec l’éventuel changement du Triac.
Les composants sont principalement achetés sur Aliexpress en chine. La merveille d’ESP32 est de design chinois. Cela fonctionne très bien, vérifiez simplement que le mode d’expédition proposé vous assure une livraison dans les 10 à 30 jours à venir. Parfois en payant 1 euro de plus, on arrive à accélérer l’envoi.

Des exemples de montage sont visible ici: https://f1atb.fr/exemples-montage-routeur-photovoltaique-f1atb/

Longue distance

Pour ceux qui ont une grande maison avec le routeur loin du WIFI, l’utilisation d’un ESP32 avec une antenne déportée permet de doubler la portée du WIFI. On peut typiquement faire du 50m, là où votre smartphone ne captera plus le Wifi.

On l’achète chez Aliexpress

La sortie antenne sur connecteur SMA permet d’y rajouter une rallonge coaxiale pour placer l’antenne dans un endroit dégagé.

Liste des courses

Ci-dessous la visualisation des modules à acheter, principalement chez Aliexpress. Il faut y rajouter une boite en plastique d’electricien ou autre pour les loger.

C’est un montage simple ne nécessitant pas de compétence en montage d’électronique. Juste un peu de câblages et de mécanique pour fixer les éléments

Code Source et installation du logiciel

Pour télécharger le code source, le compiler puis le transférer dans l’ESP32, allez sur la page : Routeur photovoltaïque simple à réaliser

Si vous utilisez également l’affichage distant de la « maisonnette », pensez à mettre à jour le logiciel :
https://f1atb.fr/affichage-a-distance-consommation-ou-surproduction-electrique/

Sécurité

En travaillant sur ce projet en 230V, vous acceptez d’assumer la responsabilité de votre propre sécurité et de prendre toutes les précautions nécessaires pour éviter les accidents électriques.

Responsabilité

Articles sur le photovoltaïque

F1ATB André

Radio Amateur - Domotique - Photovoltaïque

Vous aimerez aussi...

310 réponses

  1. jeanluc perret dit :

    Bonjour,

    Et merci pour toutes les informations et conseils donnés c’est vraiment tres utiles pour un novice comme moi.

    J’aurais une question a vous poser sur le script du programme de routeur j(ai une erreur de ce type :
    fatal error: OneWire.h: No such file or directory

    J’ai supprimé la librairie concernant c’cette ligne d’autre erreurs apparaissent , j’ai réinstaller une version plus ancienne le problème revient identique a la version de base/

    merci de m’éclairer sur cette erreur

    #include « OneWire.h »