Routeur photovoltaïque – Affichage et paramétrage

Routeur Multi Source
Version V8.09_RMS

Le code installé sur l’ESP32 du routeur F1ATB 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 (ex : 192.168.1.200) .

Différentes pages Web permettent le paramétrage et la programation des actions. Il n’y a pas de code informatique à toucher.

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

Dans le cas d’un capteur d’entrée type UxIx2, il y a les mêmes données pour la deuxième sonde, en général la sortie du Triac qui alimente le chauffe-eau.

Un deuxième tableau, donne l’état courant des actionneurs. Ici, l’ouverture du Triac à 65% du temps. La régulation est en cours pour ajuster la puissance consommée/injectée de la maison autour de 0W.

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 10 ms, 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és. Voir la vidéo sur les unités électriques https://youtu.be/xHhURisycmA . Il y a néanmoins un paradoxe. Une puissance apparente n’a pas de signe d’après sa définition mathématique. Elle est toujours positive. Le Linky ou d’autre capteur de puissance lui donne le signe de la puissance active en Watt. C’est pour cela que vous la voyez osciller fortement en positif et négatif pour suivre le signe des Watt.

Un deuxième graphe, dans le cas UxIx2, donne l’historique durant les 10 dernières minutes de l’énergie ayant traversé la deuxième sonde, ici pour alimenter le chauffe-eau.

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 ainsi que son historique sur 10mn.

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.

Exemple de régulation sur 10mn. La courbe rouge des watt reste autour de zéro. La courbe bleue de la puissance apparente oscille fortement.

Page données brutes

Cette page regroupe des données brutes de mesures collectées par le système. Cela dépend du capteur de mesure en entrée.

Avec un capteur UxI, le graphe en rouge et vert donne la forme de la tension et du courant sur une période de 20ms. C’est le résultat de la mesure par l’ESP des entrées analogiques.

Avec un Linky, un premier tableau, donne les principales valeurs pouvant vous intéresser pour le suivi de votre consommation. Il donne, par exemple, les pointes de consommation et d’injection des derniers jours. Ce tableau est plus fourni en triphasé, il donne certaines valeurs par phase.

Un deuxième tableau est la recopie du dernier message série reçu du Linky. Se reporter à la documentation d’Enedis, pour décoder le message.

Avec un capteur UxIx2 on affiche le contenu des mesures du module JSY-MK-194T.

  • les données de tension, courant, puissance, énergie et facteur de puissance (cosinus φ) à l’entrée de la maison
  • les mêmes données en sortie du Triac vers le chauffe-eau.
  • La fréquence du réseau

Avec l’Enphase Envoye-S Meter’ on a les tensions, courants, puissances etc..

Pour une configuration de firmware V5 la connexion à la passerelle est directe. Pour une passerelle V7, il faut s’assurer que l’on a obtenu le droit d’Enphase de collecter les données directement sur l’Envoye-S Meter’.

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é.

En cas de mesures par un ESP32 distant, ce sont les données distantes représentées ici.

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.

Top Synchronisation 10 ms du Secteur

Si vous avez connecté un gradateur/triac, sur le GPIO23 l’ESP32 reçoit une impulsion toutes les 10 ms au passage par zéro de la tension 230 V. Elle est essentielle pour déclencher l’ouverture du Triac au bon moment dans le cas de mode « Découpe Sinus ».

Le nombre d’interruptions durant 15ms permet de tester la présence du signal Zc (Zero Crossing) en provenance du gradateur (triac) toute les 10 ms. Le premier chiffre donne le nombre traité 1 ou 2. Le deuxième nombre entre 1 et 4 correspond aux interruptions reçues. L’ESP32 est très chatouilleux sur les interruptions, il en voit plus que de réalité. Un filtrage logiciel rejette les interruptions moins de 2ms après la première.

Le mode synchronisation au secteur est mentionné sur la dernière ligne du tableau.

Top Synchronisation 10 ms asynchrone

En l’absence de gradateur/triac, c’est l’horloge interne à l’ESP32 qui fournit le top de synchronisation toutes les 10ms. Cette impulsion est asynchrone par rapport au secteur. Il en résulte une ouverture et fermeture des relais en mode Multi-Sinus ou Train de Sinus pas nécessairement au passage par zéro de la tension secteur. Cela peut entrainer un échauffement plus important du relais.

Page paramètres

Une page est dédiée au paramétrage du système. Il y a de légères variantes suivant le type de capteur d’entrée.

En premier, définir le capteur de mesure : UxI, UxIx2, Linky, Envoy ou Externe.

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

Si vous avez un contrat « Tempo », vous pouvez demander l’affichage de la couleur du jour et du lendemain.

L’adresse IP de l’ESP32 est définie soit :

  • par votre box internet. Cochez la case DHCP
  • par vous-même en choisissant une valeur hors de la plage DHCP de votre box et en remplissant les champs passerelle, masque et DNS

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. Pour Home Assistant, mettez le Prefix ‘homeassistant’ La découverte des entités se fera automatiquement. Vous retrouverez toutes les données importantes, tension, puissance et même la température si vous avez installé un capteur DS18B20 ou l’option tarifaire si vous avez un Linky.

MQTT côté Domoticz (configuration matériel)
MQTT côté routeur. Sauvegardez er Resetez l’ESP32

Attention à mettre le même préfixe des 2 côtés pour l’auto découverte.

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.

Pilotage du Triac

La première des actions est réservée au pilotage du Triac s’il est présent. Cocher la case du mode Sinus souhaité 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 choisi :

  • 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.
Paramètres des actions si capteur de température installé.

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.

Si vous avez sélectionnez l’option Tempo ou vous êtes connecté à un Linky, vous pouvez conditionner la mise en route du Triac ou des relais à l’option tarifaire en cours.

Paramètres des actions si Couleur Tempo sélectionné dans les paramètres.

Toutes les 200 ms, le logiciel augmente ou diminue la durée de conduction du Triac en comparant la puissance active en entrée de maison 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). Pour une charge de 3000W on mettra un seuil faible autour de 10, 20.

Pilotage des relais

SonOff Mini R2

Les autres actions permettent de piloter un ou plusieurs relais branchés sur les sorties GPIO disponibles (utiliser de préférence GPIO4, GPIO16,GPIO17) .

Modes de régulation

En mode On/Off vous ne pouvez pas réguler finement mais il est possible de piloter un relais distant comme le SonOff Mini R2 https://f1atb.fr/sonoff-mini-installer-son-firmware-simplement-par-le-wifi/

En mode Multi-Sinus ou Train de Sinus, vous pouvez réguler finement la puissance transmise à la charge. Suivant le mode choisi, différents champs sont à remplir :

  • Host: mettre l’adresse IP si relais distant ou ne rien mettre pour un relais connecté à l’ESP
  • Port: en général 80 pour une communication suivant le protocole http
  • Ordre 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
  • Ordre Off: pour un relais local ne rien mettre mettre. Pour un relais externe distant, mettre la commande demandée par le constructeur.
  • 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 : permet d’éviter des oscillations dans le cas d’un relais On/Off en temporisant les changements d’état. En général 0s.
Relais directement connecté à l’ESP32 sur le GPIO 17 en mode Multi-Sinus.
Exemple d’une commande vers un dispositif externe à l’adresse IP 192.168.0.45 et acceptant des ordres sous la forme /OrdreOn……

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

  • Off : on force l’état Off du relais
  • On: on force l’état On du relais
  • En mode On/Off : 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.
  • En mode Sinus : Seuil Pw : si la puissance active en entrée de maison passe en dessous, le relais commence à conduire (trames de 1/2 sinusoïde).

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

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

Routeur et Home Assistant et ESPHome

A titre d’exemple, l’image ci-dessous donne un ordre du routeur vers le système domotique « Home Assistant » et « ESPHome ».

Dans home Assistant la filtration de piscine peut être lancé pour 5mn. Ici le routeur, lorsque l’on injecte -400W (il y a d’autres systèmes plus prioritaires) , déclenche un webhook au format GET vers Home Assistant (Automatisations). L’ordre est répété toutes les 60s avec une temporistaion de 50s pour ne pas générer des arrêts/marches successifs.

Contrôle Externe des GPIOs

Pour des configurations associées à de la domotique, il est possible de piloter à distance les GPIOs libres. Pour bien choisir le GPIO, il y a un très bon article ici: https://www.upesy.fr/blogs/tutorials/esp32-pinout-reference-gpio-pins-ultimate-guide

La commande à passer est de la forme : http://<ip de l’ESP32>/SetGPIO?gpio=<numéro du GPIO>&out=0 ou 1;

Exemple: http://192.168.123/SetGPIO?gpio=18&out=1

Remarque CACSI

Attention, si vous avez signé un CACSI (Convention d’Autoconsommation Sans Injection), votre système interdit les injections de puissance sur le réseau public. Cela se traduit à un bridage par moment pour ne pas avoir de valeur de puissance négative (=injection) à l’entrée de la maison.

Il est impératif dans ce cas avec CACSI, d’utiliser le routeur avec un seuil de réglage des W au-dessus de zéro, par exemple la consommation talon de votre maison : 200W. Si vous passez en dessous de ce seuil et à condition que le système qui bride la sortie d’énergie vers ENEDIS ne soit pas encore actif, les W commenceront à être envoyés à votre chauffe-eau ou tout autre dispositif.

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.

Installation du logiciel

Le code source et la procédure d’installation du logiciel sur le routeur sont disponibles ici : https://f1atb.fr/fr/routeur-photovoltaique-realisation-logicielle/

Articles sur le photovoltaïque

F1ATB André

Radio Amateur - Domotique - Photovoltaïque

Vous aimerez aussi...

162 réponses

  1. Alfabio dit :

    Bonjour,
    Tout d’abord un grand merci pour tout !
    Je viens d’installer mon routeur sur un ballon avec thermostat électronique, j’ai bien fait les modifications, pour séparer la carte aci et les résistances (Sortie carte aci vers contacteur en A1/A2, sortie load du routeur vers entrée du contacteur et sortie du contacteur vers résistances ballon).

    Tout avait l’air de fonctionner, mais ce matin le routeur était planter, impossible de se connecter et la led verte était allumée fixe, avec luminosité a 50%.
    Une fois redémarré électriquement, il refonctionne.

    Pour infos, j’ai programmer le routeur pour qu’il soit en « off » de 20h à 2h00, en « on » de 2h00 à 6h00 et en régulation le reste du temps.
    Sauriez vous ce qui peut me causer le problème .

    Savez vous ce qui pourrai causer ce problème, y a t il un moyen de voir quelque part ce qui a pu se passer ?

    Merci beaucoup !

    • F1ATB André dit :

      Bizarre un système planté. Il y a un watchdog qui reset l’ESP32 en cas de planté.

      Cela me fait penser à une alimentation 5V un peu faible. Si vous avez un voltmètre, mesuré la tension d’alimentation 5V sur l’ESP32.

      Cdlt

      • Alfabio dit :

        Ok je vérifierai ca tout a l’heure !
        En regardant la courbe de mon Shelly Em, c’a a l’air d’avoir planté vers le moment ou mon ballon à atteint sa température.
        Si la sortie « Load » du triac est coupée (contacteur ouvert), est ce un problème si il continu d’envoyer à 100% ?

        • F1ATB André dit :

          Non pas de problème. C’est le cas classique ou un thermostat coupe. Le Triac peut rester ouvert à 100%.
          Si cela a planté au moment ou le thermostat à coupé, cela doit être un parasite dans l’alimentation. Essayez un condensateur chimique sur le 5V entre 10 et 470 micro Farad si vous en avez un.

          Cdlt

          • Alfabio dit :

            J’ai mesuré la tension, j’ai 4,8v.
            j’ai essayé avec 4 autres chargeurs c’est pareils entre 4,5v et 4,8v.
            j’ai changé le câble usb, pareil.
            j’ai mesuré un autre esp32, pareil.

            Le condensateur, c’est un polarisé qu’il faut ?
            entre le 5v et le gnd ?
            merci

          • F1ATB André dit :

            Entre +5V et Gnd un polarisé .

    • Alfabio dit :

      Bonjour,
      Ce matin pas de plantage, pour info j’ai changé d’alimentation usb (a voir si ca dure).
      Par contre un autre soucis, je n’arrive pas a réguler la consommation autour des 50w, ma courbe passe de 2000w a -2000w , même en réglant la réactivité.
      Je me suis aperçu que sur la première page je n’avais pas la colonne chauffe eau, je n’ai que « données maison » et « données seconde sonde »
      Est ce que le problème peut venir de la ?
      Cordialement

      • Alfabio dit :

        OUps je vient de voir que je n’avais pas changé le nom, en fait seconde zone c’est chauffe eau …..désolé

        Par contre sur la seconde zone, ca reste toujours a 0W, le problème vient sûrement de la!

      • F1ATB André dit :

        Si vous faites des sauts en W courbe rouge. Probablement que vous utilisez un Triac qui n’envoi pas de signal Zc. Avez vous pour Zc (bas de page brutes)=1/2,2/2…

        Cdlt

        • Alfabio dit :

          Oui, ça bouge bien au niveau du signal zc (1/1-2/2-2/4).
          Par contre ce qui est possible, c’est que mon chauffe eau était à température quand j’ai regardé, du coup la carte aci m’a coupé le contacteur et par conséquent la sortie du triac vers les résistances. Je ferais des tests demain matin.
          Une dernière question ( enfin j’espère pour plus vous embêter)
          Dans un précédent montage, l’entrée de mon triac ( phase) était branchée sur la sortie de la carte aci, du coup quand mon chauffe eau était à température, ça coupait l’alimentation du triac et il disparaissait de la page « action ». Est ce que ça peut poser problème ce montage ( plus de zc en entrée).
          Merci beaucoup

          • Alfabio dit :

            Bonjour,
            Ce matin, pareil, conso ballon à 0 sur la première page, zc ok sur la 2eme page et pourtant j’entends la résistance du ballon faire du bruit et j’ai environ 150v dessus.
            comprends pas ….
            merci

  2. eric2 dit :

    ok merci je viens de tester c’est bon
    Mais alors dans quel cas mettre l’adresse host (adresse de l’esclave?) et sur l’esclave ou sur le maitre?

    • F1ATB André dit :

      host c’est uniquement si vous voulez pilotez un relais quelconque externe par un ordre http://….
      Un relais sur le routeur, on ne met rien.

      Cdlt

  3. STACHURA dit :

    bonjour, une autre utilisation du travail d’André avec une modif soft mineure : j’ai une cheminée equipee d’un recuperateur de chaleur dans le grenier qui « souffle » la chaleur dans une chambre éloignée. Dés que la temperature depasse 22°C je veux soufler de l’air chaud.
    J’utilise un ESP32 avec le logiciel standard placé dans le recuperateur dela cheminée ds le sejour pour mesurer la temperature et j’utilise le second ESP32 afficheur pres du soufleur ds le grenier pour commander le relais SSR cablé sur le gpio17.
    a suivre la petite modif logicielle..

  4. STACHURA dit :

    Suite petite modif logicielle:
    tft.drawString(Heure, 8, 3, 1);
    if (Temperature > -100) {
    String Tem = String(Temperature) +  » C »;
    tft.drawString(Tem, 120, 3, 1);
    }
    if (Temperature > 24) {
    digitalWrite(RELAIS,HIGH);
    Serial.println(String(Temperature) +  » C »);
    } else { digitalWrite(RELAIS,LOW);
    }
    C’est vers la ligne 500…
    en plus il faut declarer RELAIS et legpio17…. et faire evoluer les versions log pour ne pas tout melanger

    Si on veut changer la temperature de consigne , c’est facile avec l’OTA.
    cela permet d’eviter le cablage….pour quelques euros d’ESP32!!

  5. teddy dit :

    Bonjour André,
    Merci pour tout.
    Sur la page action, j’ai bien : routage via triac
    Mais pas routage vers relais. hors je n’utilise que des relais SSR.
    De plus, je ne peux donc pas parametrer le mode sinus .
    merci d’avance

    • F1ATB André dit :

      Essayez un CTRL-F5 pour forcer le chargement de la page et des fichiers associés.
      En dernier retéléchargez le programme en .zip et re-installez sur l’ESP32.

      Cdlt

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *