U x I : Routeur Solaire pour gérer la surproduction photovoltaïque (DIY)

Modulaire — Flexible — Réactif
Version V3.04_UxI , remplacé par version V4.00_RMS

Pilotage depuis un SmartPhone ou un PC (navigateur Web)

Avec les panneaux solaires, dans une installation en autoconsommation, il est fréquent d’avoir de la surproduction d’énergie dont on ne sait que faire et qui est envoyée sur le réseau public. Une solution pour ne pas gaspiller cet excédent est de l’envoyer à un chauffe-eau électrique, un chauffage, une pompe de piscine…

Un rapide calcul, pour un chauffe-eau de 200l, équipé d’une résistance chauffante de 2400W, montre qu’il faut près d’une heure de chauffe, soit 2.3 kWh pour monter l’eau de seulement 10°.

200l*1000gr*4.18Joule*10°/3600s=2322 Wh = 2.3kWh

Chaque jour, c’est plusieurs kWh qu’il faut fournir au chauffe-eau. Pour un système classique, on effectue cela de nuit à un tarif réduit. En cas de surproduction dans la journée des panneaux photovoltaïques, il faut envoyer cette énergie au chauffe-eau. C’est une superbe batterie de stockage d’énergie. Mais, comme il est fréquent de n’avoir que quelques centaines de watts disponibles et non pas la puissance de 2400 w que demande la résistance du chauffe-eau en branchement classique, le routeur proposé ici ne fournit que cette puissance disponible.

Tableau des Versions

Différentes versions de routeur ont été décrites. La version 3.00_UxI remplace la version 2 devenue obsolète. Le hardware est inchangé, mais l’exploitation est plus simple et plus flexible.

VersionMesure courant / puissanceActionneursModulaireDomoticzMQTT / Home AssistantDescription
1Sonde Ampèremétrique
Monophasé
RelaisNonOuiNonRouteur Solaire. Mesure de Puissance avec un ESP32
2Sonde Ampèremétrique
Monophasé
Triac + RelaisNonOuiNonRéalisez un Routeur Solaire pour gérer la surproduction
3.04_UxISonde Ampèremétrique
Monophasé
Triac + RelaisOuiOuiOuiU x I : Routeur Solaire pour gérer la surproduction photovoltaïque
3.11_LinkyLinky
Monophasé ou triphasé
Triac + RelaisOuiOuiOuiRéalisez un Routeur Solaire avec un Linky
Voir à présent la version V4.00_RMS

Ce routeur propose deux types de contrôle de la puissance excédentaire :

  • à l’aide d’un Triac, agissant comme une vanne qui s’ouvre pour laisser passer la surproduction disponible en surveillant la puissance qui entre ou sort de la maison afin qu’elle soit nulle à l’aide d’une sonde de courant branchée derrière le compteur.
  • à l’aide de relais pour enclencher un moteur, une pompe

La régulation fine au Watt près, par Triac, ne fonctionne que pour les chauffe-eaux électriques ou les chauffages classiques dans lesquels se trouve une résistance électrique et un thermostat électro-mécanique pour contrôler la température. Les dispositifs à base d’électronique de contrôle doivent être alimentés en tout ou rien à l’aide de relais.

Schéma du routage de l’énergie excédentaire vers un Chauffe-Eau. Le routeur solaire agit comme une vanne ( le Triac) qui s’ouvre pour laisser passer la surproduction en surveillant la puissance active en entrée de la maison afin qu’elle soit nul.

Modularité

Système complet, Mesures et Actions, avec un seul ESP32

Le système se décompose en trois fonctions :
– la mesure de puissance au niveau du disjoncteur principal ou du Linky,
– le traitement à l’aide d’un microcontrôleur ESP32,
– les actionneurs avec un triac et des relais pour alimenter différentes charges.

Il peut s’éclater en différents modules pour s’adapter à des distances élevées entre le disjoncteur et les équipements à alimenter. De simples relais pilotables par Wifi peuvent également être contrôlés.

Système modulaire éclaté dans différents lieux de la maison.

Pour les détenteurs de serveurs de domotique comme Home Assistant ou Domoticz, les informations de puissance et d’état des actionneurs peuvent être envoyées pour y être traitées.

Matériels

Pour réaliser l’ensemble, il faut les matériels suivants:

Capteur du Courant

Transformateur de courant 100A/50mA

Pour mesurer le courant en entrée de la maison, on utilise un capteur de courant dans lequel on fait passer le fil de phase du secteur. En sortie, agissant comme un transformateur, il fournit un courant identique, mais 2000 fois plus faible. Ce courant est envoyé aux bornes d’une résistance et dont on mesure la tension générée.

Capteur de la tension

Transformateur 230V/6V (Aliexpress)

Pour mesurer la tension, on utilise un transformateur bobiné classique abaisseur de tension qui nous isole du secteur. Par exemple un 230v/6v. Il faut un modèle le plus petit possible, on ne prélève aucune puissance. Cela n’est plus très facile à trouver. Un transformateur, dit de sonnette, peut faire l’affaire.

Pour les détails de montage se référer à cet article.

Micro-Calculateur ou Microcontrôleur

ESP32 – Development Board

Pour effectuer les mesures de tension et les calculs, 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,
– une bonne capacité de calcul
– une liaison WIFI pour faire du reporting à distance sur une page web ou un système de domotique.

Gradateur – Triac

Gradateur avec détection de zéro

Pour ajuster le courant à injecter vers le chauffe-eau, 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 en 16A ou 24A et est disponible chez Aliexpress.
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/

Présentation du routeur photovoltaïque U x I

Raccordement à l’ESP32

Schéma électrique complet – ESP32 Development Board 2*19 pins

Mesure

La mesure des 2 valeurs représentant la tension et le courant prend environ 150uS. En pratique, on prévoit sur une période de 20ms (1/50Hz) de prélever 100 couples de valeurs, ce qui donnera une bonne description de la tension à priori sinusoidale et du courant souvent chahuté par les alimentations à découpage.

Formules de calcul des puissances

Pour bien caler dans le temps chaque mesure, on utilise le compteur des micro-secondes de l’ESP32.

Toutes les 40 ms, on effectue :
– la mesure des tensions et courants durant 20ms
– une moyenne sur les dernières mesures pour lisser et réduire le bruit de mesure
– le calcul du courant efficace Ieff
– le calcul de la tension efficace Ueff
– le calcul de la puissance apparente Pva en kVA
– le calcul de la puissance active Pw en kW
– le cosinus φ

Configuration modulaire

Si une grande distance sépare le disjoncteur général pour la mesure de puissance et les appareils à piloter, il est possible d’éclater la structure entre plusieurs modules ESP32 qui échangeront les données par le WIFI.

En premier, on implante un module de mesure près du disjoncteur principal. Le Triac ou des relais ne sont pas nécessaires a priori, mais on peut en mettre si besoin de commander quelque chose à côté.

ESP32 en charge de la mesure de puissance uniquement

Près des dispositifs à piloter, on implante un ou des modules ESP32 avec un Triac ou des relais si besoin. Ils iront chercher les informations de puissance à l’entrée de la maison auprès de l’ESP32 chargé de la mesure.

Le même logiciel est à implanter dans les différents ESP32. Ils seront configurés à la mise en route.

ESP32 actionneur. Triac et relais en option

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 les courbes de la tension et du courant durant une période de 20 ms. 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 tension efficace Ueff en Volts
  • le courant efficace Ieffen Ampère
  • la puissance apparente en VA, produit Ueff*Ieff
  • la puissance active Pw en Watt. C’est elle que vous payez. Pw>0 vous consommez sur le réseau. Pw<0 vous injectez sur le réseau
  • le cosinus(Phi), rapport entre la puissance active et la puissance apparente
  • l’énergie active soutirée depuis 0h en Wh
  • l’énergie active injectée depuis 0h en Wh

Un deuxième tableau, donne l’état courant des actionneurs. Ici, l’ouverture du Triac à 38% du temps. La régulation est en cours pour ajuster la puissance consommée/injectée de la maison autour de 0W. Un relais de chauffage est Off et une commande vers un relais externe de moteur de piscine est On.

Un premier graphe donne la puissance active en rouge et la puissance apparente en bleu-vert durant les 10 dernières minutes. Entre (0 et -1mn ) et (-4 et -10mn) on est en phase de régulation, la puissance active est proche de zéro. Entre -1 et -4mn on est en surproduction. 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

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 par le système.

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. Dans le cas de mesures effectuées par un ESP distant, ce sont les données distantes représentées ici.

Un 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 principalement aux paramètres réseau.

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 pour obtenir les données de puissance, vous n’avez pas la sonde ampèremétrique et le transformateur 6V branchés sur cet ESP, mais un autre distant, cochez la case ESP UxI Externe et rentrez l’adresse IP de ce dernier.

Si vous souhaitez envoyer des données à Domoticz, mettez une période de répétition autre que 0 et remplissez les champs. Domoticz recevra la dernière puissance Active Pw (Soutirée – Injectée) connue.

Si vous souhaitez envoyer des données à Home Assistant via un broker MQTT, mettez une période de répétition autre 0 et remplissez les champs. MQTT recevra plusieurs topics precédés d’un prefix. Exemple :
– « UxI/pva » la puissance apparente en VA
– « UxI/pw » la puissance active en W signée
– « UxI/pws » la puissance active soutirée en W
– « UxI/pwi» la puissance active injectée en W
– « UxI/easj » l’energie active soutirée du jour en Wh
– « UxI/eaij » l’energie active injectée du jour en Wh

Et en option s’ils sont activés :

– « UxI/triac » l’ouverture du Triac entre 0 et 100%

– « UxI/action1 » état binaire 0 ou 1 de l’action1 ,action2 etc..

Extrait fichier mqtt.yaml avec un prefixe "UxI/"
- state_topic: "UxI/pva"
  name: "UxI PVA"
  unique_id: uxi_pva
  unit_of_measurement: VA
  device_class: apparent_power
- state_topic: "UxI/easj"
  name: "UxI E Soutirée "
  unique_id: uxi_easj
  unit_of_measurement: Wh
  state_class: total_increasing
  device_class: energy
- state_topic: "UxI/eaij"
  name: "UxI E Injectée "
  unique_id: uxi_eaij
  unit_of_measurement: Wh
  state_class: total_increasing
  device_class: energy
- state_topic: "UxI/pw"
  name: "UxI PW"
  unique_id: uxi_pw
  unit_of_measurement: W
  device_class: power
- state_topic: "UxI/pws"
  name: "UxI PW Soutirée"
  unique_id: uxi_pws
  unit_of_measurement: W
  device_class: power
- state_topic: "UxI/pwi"
  name: "UxI PW Injectée"
  unique_id: uxi_pwi
  unit_of_measurement: W
  device_class: power
- state_topic: "UxI/triac"
  name: "UxI Triac"
  unique_id: uxi_triac
  unit_of_measurement: '%'
- state_topic: "UxI/action1"
  name: "UxI Action1 Relais"
  unique_id: uxi_action1
Calibration

L’ESP en charge de la mesure de tension et du courant nécessite une calibration des valeurs mesurées pour s’adapter aux disparités des transformateurs, résistances etc. Commencer par la tension en mesurant votre tension secteur avec un voltmètre ou l’affichage du Linky et adapter le coefficient multiplicateur pour avoir la même valeur affichée sur la page d’Accueil. Un coefficient de 1000, correspond au schéma avec un transformateur de 6V. Baisser ce coefficient si la tension affichée est trop haute, montez-le si elle est trop basse.

Pour la calibration du courant, il est préférable de le faire lorsque la consommation de la maison est forte. On utilise la puissance apparente instantanée affichée en VA au niveau du Linky. On ajuste le coefficient pour avoir sur la page d’accueil des valeurs similaires à celle du Linky.

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.

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 :

  • Triac forcé à Off
  • Triac forcé à On (100%)
  • 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.
SonOff Mini R2

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

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

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’inialiser à 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.

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.

En fin de configuration, ne pas oublier de sauvegarder.

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

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.

Montage

Montage

Dans une boite d’électricien, on installe :

  • La carte ESP32 (Development Board 2*19 pins) chez Aliexpress ou plus rapidement une carte 2*16 broches ESP 32 Wroom chez uPesy.fr)
  • Une alimentation 230V – 5V 1A DC pour l’ESP32
  • Un transformateur basse tension 230V – 6V AC pour mesurer la tension (Aliexpress)
  • Un gradateur 16A ou 24A de RobotDyn suivant la puissance du chauffe-eau (Aliexpress)
  • Sonde de courant 100A/50ma (Aliexpress)
    • Résistances R1 et R2 : entre 470 et 820 Ω 1/4 ou 1/8W
    • R3 : 24 Ω 1/4W
    • R4 : 24000 Ω 1/4 ou 1/8 W (À ajuster suivant transformateur)
      • R5 : 4700 Ω 1/4 ou 1/8W (À ajuster suivant transformateur)
      • R6 et R7 : 4700 Ω 1/4 ou 1/8W
  • Condensateur C1 : 10μF ou plus en 12V ou plus
  • Condensateur C2 : 220μF à 470μF en 12V ou plus
  • 2 LEDS en face avant
  • Du fil de câblage et une plaque à trou pour le montage
  • Un fusible (option) pour protéger l’arrivée 230V
  • Un ou des relais (option) solides ou électromécanique pilotable 3.3V

Raccordé à cette boite, on a la sonde de courant à placer autour du fil de phase du secteur à mesurer. Relier le blindage à la masse (Gnd) pour éviter de capter du bruit électrique.

Longue distance

Pour ceux qui sont sur une grande habitation avec le disjoncteur ou les actionneurs loin du routeur 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.

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

Implantation

ESP32 avec antenne déportée et Triac. Refroidisseur remplacé permettant de piloter des charges de maximum 1500W.
Important refroidisseur avec une charge de 3000W

Code Source

L’ensemble du code est écrit en utilisant l’IDE Arduino. Il est injecté dans un premier temps par la liaison série, puis une fois en place, on peut le modifier si besoin par le Wifi (voir les explications ici). Il faut dans les préférences de l’IDE, faire appel au gestionnaire de carte de « Espressif » qui développe l’ESP32. Allez dans Fichier / Préférences et mettez l’adresse : https://dl.espressif.com/dl/package_esp32_index.json

Le code source est composé de 9 fichiers à installer dans le même dossier.

Il est disponible ici sous forme d’un .zip:

Dezipper l’ensemble et ouvrez dans l’IDE Arduino (version 2.xx) le fichier RouteurSolaire_V_3_04_UxI.ino.
Vérifiez que vous avez les bibliothèques installées sur votre IDE Arduino :
– RemoteDebug
– PubSubClient
Pour la compilation du fichier RouteurSolaire_V_3_04_UxI.ino, veuillez sélectionner la carte ESP32 Dev Module ainsi que le port de COM de Windows sur lequel est branchée la carte par le port série. Avec certaines cartes, si le téléversement du code dans l’ESP32 ne se fait pas, il faut presser sur le bouton reset au début de la tentative de téléversement.

Premier lancement du programme

Au premier lancement du programme dans l’ESP32, le logiciel ne connait pas le nom et le mot de passe de votre réseau Wifi. Il va créer son propre réseau Wifi et passer en mode point d’accès. Sur votre Smartphone ou PC portable, regardez la liste des WiFi disponibles. Connectez-vous à celui qui porte le nom UxI-ESP32….., il n’y a pas de mot de passe. Ouvrez un navigateur web et rentrez l’adresse 192.168.4.1 qui correspond à l’ESP32. Il va vous renvoyez une page vous demandant le nom du WiFi de votre habitation auquel se connecter à l’avenir et le mot de passe.

Regardez, le moniteur série de l’Arduino, vous trouverez l’adresse IP sur votre réseau Wifi qui a été attribuée automatiquement par la box (DHCP) qui gère le réseau. Appuyez sur Reset si besoin pour relancer le démarrage de l’ESP32 et sa connexion au réseau WIFI que vous lui avez indiqué. Rentrez cette adresse IP dans un navigateur Web connecté à votre réseau et vous serez connecté à l’ESP32. Il n’y a rien à modifier dans le code comme dans la version V2.

Au démarrage ou après un « Reset », les 2 LEDs clignotent simultanément lorsque l’ESP32 cherche à se connecter au réseau WIFI.

Adresse IP fixe

Si vous souhaitez fixer vous-même l’adresse IP, allez faire un tour auprès de votre box à la rubrique réseau / DHCP, vous trouverez le champ des adresses dynamiques. Par exemple, souvent les Livebox d’Orange attribuent des adresses dynamiques DHCP entre 192.168.1.10 et 192.168.1.150. Il vous reste alors un champ libre pour attribuer vos propres adresses entre 192.168.1.151 et 192.168.1.253. Fréquemment, les .254 et .255 sont réservés à autre chose. Vous pouvez ainsi donner comme adresse 192.168.1.200 à l’ESP32 si aucune autre machine sur le réseau occupe déjà cette adresse.

IPAddress gateway correspond à l’adresse IP de votre box. C’est elle qui fait la passerelle (gateway) avec le monde extérieur. Chez Orange, c’est en général 192.168.1.1. Chez Free, c’est plutôt 192.168.0.254. Les trois premiers chiffres 192.168.0 ou 192.168.1 doivent être les mêmes pour la box et votre ESP.

Arduino OTA

Le code inclut la possibilité de le mettre à jour non pas par la liaison série entre le PC et l’ESP mais via le Wifi. C’est la fonction Arduino OTA (On The Air). Dans l’IDE Arduino, allez à Outils/Port/Réseau Port vous y trouverez mentionné la carte ESP32 du routeur. Sélectionnez là et le téléchargement se fera via le Wifi et non plus le port série. L’IDE Arduino vous demande un mot de passe lors de la compilation. Répondez n’importe quoi, 1 lettre minimum. Cette fonctionnalité est bien utile, une fois le routeur implanté probablement loin de votre PC.

Bugs Soft

Attention, si vous n’arrivez pas à communiquer entre votre PC et l’ESP32, c’est qu’il vous manque le driver pour l’interface USB. En général, c’est le CP2102 qui se trouve sur la carte ESP32. De nombreux Tutos sur internet expliquent comment l’installer. Exemple: https://techexplorations.com/guides/esp32/begin/cp21xxx/

Sur certaines configurations, lors de la compilation, il y a une erreur de librairie inexistante :…..include <hwcrypto/sha.h>
Avec un editeur de texte, ouvrez le fichier dans vos bibliothèques Arduino C:Users/Utilisateur/Documents/Arduino/libraries/RemoteDebug/src/utility/Websockets.cpp
Le début de l’adresse peut changer suivant l’utilisateur. Retrouvez le dossier Arduino pour localiser le fichier dans les sous-dossiers.

A la ligne 42, remplacez :
#include <hwcrypto/sha.h>
par
#include <esp32/sha.h>

Ne me demandez pas pourquoi, sur mon PC de bureau, je n’ai pas besoin de faire cette modification, sur mon PC portable, j’ai besoin.

Remarque

Si vous regardez les premières lignes du programme, il y a 2 constantes :

#define HOSTNAME « UxI-ESP32-« 

#define CLE_Rom_Init 1234567892

La première définie le début du nom de votre ESP sur le réseau, le deuxième est une clé qui permet de tester si le programme a déjà tourné. Au premier lancement, la mémoire de stockage en ROM est virginisée, par la suite, elle contiendra tous les paramètres de configuration et l’état des compteurs d’énergie en Wh chaque jour à 0h. Si vous voulez, virginiser à nouveau la mémoire, changé la constante. Attention, votre ESP32 repartira en mode point d’accès, puis une fois le réseau WiFi connu, il aura une adresse IP obtenue par la box internet (DHCP).

Debug en ligne

Si vous êtes branché par le port série à l’ESP32, les messages de debug sous la forme Serial.print(…) ou Serial.println() sont disponibles sur le moniteur de l’IDE Arduino à 115200 bauds.

Si vous êtes branché uniquement en Wifi, le debugger de Joao Lopes est implanté dans le logiciel. Il est accessible par le navigateur web. Téléchargez le code ici: https://github.com/JoaoLopesF/RemoteDebugApp , décompressez le zip dans un dossier quelconque et cliquez sur index.html. Rentrez l’adresse IP de l’ESP32 pour obtenir les messages envoyés par les Debug.print() ou Debug.println(…) .

Watchdog

Le fonctionnement de l’ESP32 est surveillé par un watchdog (chien de garde). Si l’ESP32 se bloque pendant 120s, l’ESP32 se reset. Si vous ne voulez pas être embêté par cela durant des essais, passez en commentaire // les lignes ou il y a esp_task_wdt…..
De même, un test sur la présence du Wifi est effectué. En l’absence de WIFI, au bout de 10mn, l’ESP32 se reset.

Diagramme fonctionnel

Ici, nous exploitons les capacités double cœur de l’ESP32.

Le « Cœur 0 » effectue le prélèvement des mesures de tension et courant pendant 20ms ainsi que le calcul des puissances. Il répète l’opération toutes les 40ms.

Le « Cœur 1 » gère les surproductions et communique par WIFI.

Le gradateur avec le signal Zero Crossing toute les 10ms, permet de synchroniser l’ensemble en activant une interruption sur l’ESP32. Un timer fourni une interruption interne toute les 100μs permettant de générer un retard de 0 à 10ms par pas de 100μs pour déclencher l’ouverture du triac à l’instant défini par le logiciel.

Exemple de routage et régulation à Zéro Watt

Dans cet exemple, l’ouverture du triac vers le chauffe-eau est d’environ 50% du temps (5ms). Le système se régule pour avoir une puissance échangée avec le réseau public autour de 0W . Sur une durée d’une demi sinusoïde de 10 ms, on a une première période où l’on injecte de l’énergie puis le Triac s’ouvre, on consomme de l’énergie sur le réseau. La somme des 100 mesures du produit U*I sur la période de 20 ms donne un résultat proche de zéro en Watt. Par contre, pour le calcul de la puissance apparente qui est le produit de la tension et du courant efficaces qui ne tient pas compte du signe (voir formules ci-dessus), on a une valeur importante en VA.

Votre fournisseur d’électricité vous facture en fonction des W ou Wh et non pas sur le VA (puissance apparente).

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

500 réponses

  1. Yvoline dit :

    Salut André,

    Ton projet est vraiment génial , c’est super impressionnant ! Je viens de tester la toute dernière version que tu viens de publier et il y a une petite coquille à la compilation . Il manque un include : #include « esp_sntp.h » .

    Je test cette nouvelle version (je tournais avec la version Linky).

    Merci beaucoup pour ce travail !

    • F1ATB André dit :

      Je ne comprends pas. De mon côté, je n’ai pas de bug de compilation. Pouvez-vous m’en dire plus?
      Cdlt

      • Yvoline dit :

        Voici l’erreur que j’obtiens sans le include :

        RouteurSolaire_V_3_00_UxI.ino:358:3: error: ‘sntp_set_time_sync_notification_cb’ was not declared in this scope
        sntp_set_time_sync_notification_cb(time_sync_notification);

        Avec le include , c’est parfait . Plus d’erreur .

        Je viens de tester la nouvelle version et rien à redire , c’est absolument parfait . Avec un ZMPT101B et une SCT013-30 A , les valeurs sont très stable et dans une fourchette d’environ 10-15VA en plus ou en moins de ce que fournis le Linky . Avec un cm Ueff de 3800 et un cm Ieff de 650.

        Encore chapeau pour le boulot 😉

        • Nutta dit :

          Avant d’aller plus loin et pour ne pas débrancher trop vite mon routeur V2 qui fonctionne à merveille, j’ai juste programmé un ESP non câblé et accédé à la page WEB et je n’ai eu aucun bug de compilation.
          Par contre j’ai dû changer le mot de passe de mon Wifi car il contenait un espace en dernier caractère, mais cet espace était interprété comme un « + ».
          Ce routeur V3.00_Uxl est fabuleux – merci pour ça.

        • F1ATB André dit :

          Merci pour votre retour.
          J’ai rajouté la bibliothèque
          #include « esp_sntp.h »
          et republiez le code.
          Comme l’explique un autre utilisateur, probablement une histoire de version de bibliothèque.

          Cordialement

      • Alain dit :

        J’ai la même erreur sur mon pc bureau et sur mon laptop cela fonctionne, je pense à des versions de librairies différentes..

        • F1ATB André dit :

          Merci pour votre retour. J’ai modifié et republié le code afin que cela passe chez tout le monde.

          Cordialement
          F1ATB André

      • Alain dit :

        sur la compil du haut le pc bureau avec l’ajout de #include « esp_sntp.h » (989125 octets)
        sur la compil du bas le laptop (fichier sans modif) 935210 octets
        on peut voir que les librairies sont différentes.
        le lien de l’image : https://e.pcloud.link/publink/show?code=XZ5f6fZRWILUU2Rcu4sgF6iUCaWX5VB6uJk
        et bravo, super boulot. !

  2. StefanDu30 dit :

    V3 chargée à la place de la v2 et ça parait fonctionner à merveille, super boulot, impressionnant, merci encore ! 😉

  3. Smiechowski dit :

    Bonjour André
    j’utilise la version V2, elle me paraît plus économique pour le pilotage du relais additionnel à partir du % d’ouverture du triac. Cela ne se traduit pas par une consommation supplémentaire. Sur la V3 il faut un PW+ pour switch off le relais, si j’ai bien compris ?

  4. STÉPHANE CHARRIER dit :

    Bonjour André, bravo et merci pour cette nouvelle version, cela a dû vous demander encore pas mal de travail.
    Je vais creuser de mon côté, ma V2 modifiée avec 3 Triac me conviens mieux qu’avec les 2 relais optionnels de cette V3, l’idéal serait d’adapter cette nouvelle version avec plusieurs Triac.
    Encore merci.

    • Smiechowski dit :

      Bonjour Stéphane
      La modification du programme est elle difficile ? J’ai installé une prise dans ma cuisine relié au routeur, peut-on définir une priorité pour les différents triac ?

      • Stéphane Charrier dit :

        Bonjour, la modification n’est pas des plus aisée, c’est un collègue qui me l’a fait. On ne peut pas gérer les priorités, c’est seulement quand mon chauffe eau a atteint sa température, le triac est à 100 % et comme on détecte de la réinjection, c’est le Triac 2 qui prend la relève.

        • gégé dit :

          Bonjour,
          Je voudrais mettre trois triac (j’ai deux chauffe-eau et un chauffage à accumulation avec une électronique très basique). Est-ce que je peux mettre un autre triac à la place des relais ?
          Quelle modification avez-vous faite ?

          • F1ATB André dit :

            Plusieurs Triacs, c’est vite difficile. Quelle sera la règle à mettre en place.
            Par contre vous pouvez mettre le Triac sur le chauffe eau le plus puissant et des relais sur les autres. En jouant sur les seuils de déclenchement, l’heure, le max du Triac et même la rapidité, on peut arriver à quelque chose de manageable.

          • Smiechowski dit :

            Bonjour géré,
            Sur mon installation j’ai 2 ballons sur un triac. J’ai juste divisé les resistance par 2 pour rester en dessous de 16A. Sur du steatite c’est très simple.

  5. Nutta dit :

    Bonjour, je ne suis encore qu’au stade des tests et j’ai bien l’impression que dans l’onglet ACTIONS, quand on défini plusieurs plages horaire avec des valeurs de seuils et d’ouverture maxi du triac, le passage à la plage horaire suivante n’est pas prise en compte.
    Je sauvegarde bien les changements, mais pour mes tests l’ouverture max aurait dû passer à 40% vers 6h00, or elle reste à 25% comme durant la nuit.
    Pensez-vous que je fais mal quelque chose ?
    André, je peux vous envoyer par mail de quoi accéder directement aux pages web, si nécessaire.

    • F1ATB André dit :

      Je viens de faire l’essai 2 fois avec succès sur mon chauffe-eau.
      Envoyez moi vos photos sur f1atb.fr@gmail.com

      • Nutta dit :

        Je ne comprends pas ce que je règle mal – Je vous ai envoyé un accès aux pages web par mail.

        • Nutta dit :

          Problème résolu !!
          J’ai envoyé 2 copies d’écran à André et il m’a fait remarqué que la date et l’heure n’étaient pas affichées sur la page d’accueil.
          J’ai téléchargé à nouveau le code (qui a été légèrement modifié par André, je crois, pour une autre raison) et ça fonctionne parfaitement. J’ai maintenant la date et l’heure et les % en rapport aux plages horaires.
          PS: André, le lien que je vous ai fait parvenir par mail fonctionne désormais, suite au chargement de la dernière version du programme.
          Encore merci.

  6. gégé dit :

    Super développement ! Bravo !

  7. LEFEBVRE dit :

    Bonjour André
    Bravo pour ce super travail!
    Installé depuis dimanche ça fonctionne nickel.
    J’avais avec la version 2 l’affichage à distance de la surproduction photovoltaïque,
    es-ce prévu de mettre à jour le code pour cet accessoire pour que ce soit compatible avec la V3?
    Merci
    bonne soirée

  8. gégé dit :

    Ajout de triacs : j’ai trouvé comment changer le code source. J’ai donc céée un version 3.20. Je n’ai pas encore fait tous les tests.
    Sur le source .INO, c’est complètement configurable avec juste deux lignes #define qu’il suffit d’activer ou de désactiver.
    Par contre je n’ai pas encore fait une version qui dépend de ces #define pour le source pageHtmlAction. Ca va me prendre un peu plus de temps.
    Je peux vous les faire remonter si ça vous intéresse (quand j’aurai fini mes tests)
    Cordialement.

    • STÉPHANE+CHARRIER dit :

      Bonjour Gégé, votre résultat de test avec plusieurs Triac m’intéresse. Si vous voulez partagez, je suis preneur. Je ne sais pas si je peux partager ici mon code avec la version V2 + 3 Triacs qui fonctionne pas trop mal pour moi.

      • gégé dit :

        Bonjour à tous,
        Je n’ai pas fini mes tests. Comme je n’ai pas encore tout reçu le matériel, ça va me prendre un peu de temps. J’ai dû apporter pas mal de modifs sur la page html actions. J’en suis rendu à piloter 3 triacs et 3 relais qui me serviront pour faire du délestage plutôt que du pilotage (pompe de piscine par exemple). J’ai aussi ajouté qqs lignes de code pour afficher sur une led si les les relais sont on ou off.
        Où puis-je vous envoyer ma version ?
        Cordialement,

  9. Marcos83 dit :

    Bonjour,
    Je lisais les commentaires sur l’option plusieurs triacs et relais. Je pose la question à André :
    Avez-vous éventuellement étudié d’autres possibilités pour gérer la surproduction quand le triac est déjà à fond ? Comme la possibilité de piloter un seul triac comme c’est le cas actuellement mais lequel alimenterait par exemple 3 charges actionnées par des relais. Ces charges seraient alimentées au fur et à mesure que la surproduction devient trop importante pour être absorbée par la première charge, mais toute la surproduction continue d’être gérée par le triac. Un peu comme des relais de délestage qui ajouteraient de la charge dés que le le triac sature à 100% d’ouverture. Rien n’empêche aussi de conserver un relais en optionnel hors triac comme c’est déjà le cas actuellement afin de limiter la puissance qui passe dans le triac. On aurait alors par exemple deux charges pilotées par le triac dont la somme de puissance soit acceptable par le triac (en cas d’alimentation des deux charges à fond en même temps) et une autre via un relais en direct. De plus, le triac pourrait continuer à réguler sur d’autres charges quand le cumulus principal à atteint sa température. Peut-être est-ce un peu compliqué à gérer pour éviter de trop faire chauffer le triac ? qu’en pensez-vous ?

    • F1ATB André dit :

      Le système peut déjà le faire. Il va falloir que je propose un schéma.
      Il suffit de brancher un ou plusieurs relais en sortie du Triac pour redistribuer vers d’autres charges.
      Après on décale les seuils de déclenchement
      Le Triac pour PW<0
      Relais 1 pour Pw<- 50 W Relais 3 pour Pw <-100 W Si la sortie en directe sur le Triac n'absorbe pas tout. La surproduction va passer < -50, Le relais1 va s'enclencher et ainsi on alimentera la charge directe et celle du relais 1. On mettra un seuil d'arret du relais 1 en positif. etc Cdlt

  10. F1ATB André dit :

    Version V3.01 publiée qui envoi en plus au broker MQTT la puissance soutirée et la puissance injectée en W.

  11. Marcos83 dit :

    Bonjour André et merci pour votre réactivité. J’ai vu le schéma. C’est top ! En revanche, et sans vouloir faire une usine à gaz, ne serait-il pas utile d’ajouter une sécurité paramètrable pour protéger le triac ? Une puissance maximale à ne pas dépasser pendant X temps avant de switcher sur un relais hors régulation triac ?

  12. Dominique dit :

    Bravo André, super boulot pour un ancien radio amateur, c’est mon frère F5OYK qui utilise la version 2 et du coup je l’ai fait aussi. J’avais quelque problème, quand le triac laissais passer le courant pour le chauffe-eau j’avais toujours une conso de 90 watts sur mon compteur et pas moyen de régler ce problème et je voulais te demander ou agir dans le programme V 2 pour déclencher le triac a un PW de -90 et j’ai vu que tu as fait une version 3.01 que j’ai installé, et la ça fonctionne à merveille.
    Je te remercie et encore Bravo pour le boulot ,73/51
    Dominique

    • Yvoline dit :

      Bonjour,

      J’ai aussi le même soucis sur la 3.0 même si compensé par le fait de pouvoir mettre un nombre négatif dans le controle du triac . Je dois être à -150w pour que ca arrête de consommer sur le réseau. Le soucis , c’est que dans les valeurs renvoyées , il me trouve forcément de l’énérgie réinjecté dans le réseau alors qu’en fait non. Serait il possible d’avoir une sorte de mise à zéro de la puissance réelle consommé/restitué ? Je suppose que tout se joue par là :
      PW = PW / 100;
      PVA = floor(Uef * Ief);
      PowerFactor = floor(100 * PW / PVA) / 100;
      if (PW >= 0) {
      EASJ += PW / 90000; // Watt Hour,Every 40ms. Soutirée
      } else {
      EAIJ += -PW / 90000; // Watt Hour,Every 40ms . Injecté
      }

      Mais trop peur de toucher à quoique ce soit et risqué de tout casser .
      Merci beaucoup.

      • F1ATB André dit :

        Ne touchez pas aux formulxe. Ce n’est que le calcul de la puissance en W et non la régulation.

        Comment mesurez-vous la puissance soutiree ou injectée? C’est la puissance active en W qui compte et non la puissance apparente en VA que vous voyez sur votre Linky. La puissance en active W est proche de zéro (c’est celle que vous payez) à l’équilibre et la puissance en VA peut monter à 1000VA. ReVoir à la fin de l’article l’explication.
        Le seul juge de paix c’est d’observer sur le compteur Linky que les Wh ne change pas ou pratiquement pas pendant la régulation par le Triac. Ce sont les Wh qui vont déterminer votre facture.
        Cdlt

        • Yvoline dit :

          Merci pour votre réponse . Je vous confirme , je ne touche pas ! Si je met le déclenchement du Triac sur 0 W , la courbe de la puissance active se stabilise bien aux alentours de zero avec une puissante apparente qui peut aller jusqu’à 1000 VA . Après plusieurs jours de test et surtout à des moments où je n’avais que mon talon de conso et des journées pleinement ensoleillé, j’avais une consommation (en index HP sur le Linky donc réellement facturé ) d’environ 170 W par heure .

          Depuis que j’ai mis le déclenchement du tric sur -150 W , j’ai une consommation d’environ 10/20W par heure relevé en index sur le Linky . Il y a donc un petit décalage entre le 0 en Watt trouvé par votre logiciel et le 0 en Watt du Linky d’environ 170 W. Le soucis vient peut être du fait que lors du calcul des coefficient I et U , j’ai essayé de faire matcher la tension avec ce que sortait le Linky et l’intensité aussi jusqu’a ce que j’ai une valeur quasi identique en VA entre le Linky et votre logiciel sous charge . J’aurais peut être du essayer de trouver la valeur identique en Watts et non en VA mais c’est difficile puisque le Linky ne donne pas la puissance instantané en Watt.

          • F1ATB André dit :

            Le coeff U et I n’influe pratiquement pas. Ce qui est important c’est le signe de U fois I qui donne le sens de transfert.
            Apparemment, il y a un petit Offset chez vous entre le Linky et le routeur ou un bruit de mesure. Si vous compensez en décalant les seuils, c’est bon aussi.

            Cdlt

  13. Robitzer dit :

    Bonsoir André,
    un grand merci pour votre montage.
    J’ai réalisé votre dernier montage UxI et j’aurai juste une question :
    lorsque mon triac injecte mon surplus d’électricité dans mon chauffe eau mon compteur linky indique une consommation de 800va (cette valeur varie entre 600 et 900va) est-ce normal ? si j’arrête le triac je tombe à 0 sur le linky.

    • F1ATB André dit :

      C’est normal. Voir l’explication en bas de l’article ‘Exemple de routage et régulation à Zéro Watt’

  14. StefanDu30 dit :

    Bonjour André,
    J’ai un dis fonctionnement qui ne gêne en rien le routage mais il m’arrive fréquemment que sur le premier graph, malgré une puissance apparente inchangée, la courbe de puissance active fasse un pic à -40000 ou autre valeur du même ordre de grandeur ce qui écrase l’échelle, il semble donc qu’il n’y ait pas de problème de mesure ou montage, un problème de calcul ou d’esp32 peut-être ? Si vous avez une idée ?

    • F1ATB André dit :

      Oui je connais ce phénomène désagréable. Cela apparait lors de la mise en route ou l’arret d’un dispositif puissant, on a des appels de courant qui font une pointe dans le calcul.
      Il faut que j’arrive à bien le piéger pour trouver la solution.
      Cdlt

      • StefanDu30 dit :

        Ok, merci ça me rassure, je pensais avoir un bug, du coup si vous trouvez pour palier au problème je suis preneur ! Merci encore pour tout !

        • Marcos83 dit :

          Je confirme avoir eu ce bugg. 24000 W d’un coup. Au bout d’un moment l’échelle redevient normale.

          • F1ATB André dit :

            L’échelle se cadre automatiquement par rapport à la valeur max rencontrée les 10 dernières minutes. Quand le pic sort des 10mn, on se recadre sur des valeurs plus faibles.
            Cdlt

          • StefanDu30 dit :

            Oui c’est ça, du coup peut-être simplement modifier la formule pour que, si la valeur est supérieure par exemple à 12000, alors valeur = 12000 pour éviter d’écraser l’échelle et éviter ce point aberrant ?

        • StefanDu30 dit :

          Par contre, quand je suis en prod. ou conso., j’ai un écart entre les puissances actives, par exemple j’ai :
          – Enphase 3,2 kW produit ;
          – routeur Linky 3,5 VA et 3,1 kW donc cohérent avec Enphase ;
          – routeur UxI 3,5 VA et 2,7 kW donc puissance apparente similaire mais puissance active décalée.
          Du coup je ne saisi pas trop, si vous avez une idée ?

          • F1ATB André dit :

            Peut-être qu’il faut monter de 5 ou 10% le coefficient de cadrage du courant sur la version UxI.

            Cdlt

          • StefanDu30 dit :

            Qu’appelez vous coefficient de cadrage ? Cet écart paraît permanent sur la plage de fonctionnement, que ce soit sur les basses conso/prod ou les hautes. Si je joue sur les coefficients de U ou I pour recaler la puissance active la puissance apparente se retrouve du coup elle décalée ?

          • StefanDu30 dit :

            Actuellement par exemple je suis en conso à :
            – Linky 730 VA // 250 W
            – UxI 730 VA // 360 W

          • F1ATB André dit :

            Attention, le Linky ne donne pas les W mais uniquement les VA et les Wh.
            Pour calculer les W, le routeur Linky prend la variation des Wh (cette valeur augmente en permanence) entre 2 mesures du Linky divisé par le temps entre ces 2 mesures. Sur le plan mathématique c’est exact mais le Linky fourni les Wh sous forme de nombres entiers sans chiffre après la virgule. Il en résulte un bruit de calcul parce que les Wh font des pas de 1 en 1. Sur une longue période ce n’est pas gênant, sur un intervalle de 2s cela donne des résultats chahutés. Quand la consommation est faible, ici 360W, ce n’est que toutes les 10s que le Linky varie d’un seul Wh 360/3600=0.1Wh par seconde.
            Le routeur fait un filtrage pour estimer au mieux la valeur en W.
            En pratique, il ne faut pas s’attacher aux valeurs en W quand elles sont faibles pour la version Linky. Ces erreur d’estimation sont sans importance pour le fonctionnement du routeur. Le plus important, c’est le signe. Pour cela le Linky avec sa valeur en VA soutirée ou injectée nous donne le signe toutes les 2s.

            Pour la comparaison et le calibrage de UxI, faite le quand vous consommez beaucoup.

            Cdlt

          • StefanDu30 dit :

            Ok, je n’avais pas saisi la méthode de calcul, je pensais pouvoir comparer, une fois les deux puissances apparentes des deux routeurs calées, les puissances actives du premier tableau …autant pour moi, j’essaye de vous suivre mais mes compétences sont plus que limitées par rapport aux votre !!! En fait j’essayais de caler les puissances actives pour définir les seuils des ssr et coller au plus à la prod. pour limiter l’exportation, mais je le fais du coup en relatif et ça marche plutôt bien au final, je pensais avoir un bug étant donné l’écart entre les trois systèmes de mesures à ma dispo.
            Merci encore pour votre disponibilité et pour votre travail impressionnant !

      • Marcos83 dit :

        Bonsoir André,
        J’ai pu constater des pics à l’affichage de la tension alors que les Watt ne bougeaient pas. J’ai constaté aussi l’inverse, les Watt explosent mais ni l’affichage de la tension ni celui du courant ne varient. Et dernier cas à l’instant, les watt et la tension ont tous les deux largement dépassé les échelles en même temps, puis l’affichage du courant est passé à 300A.
        Des fois que ces infos puissent vous aider.
        Cdlt.

        • F1ATB André dit :

          Je n’ai pas encore identifié exactement la cause. Cela est rare chez moi. Il semble que cela se produit quand un appareil qui consomme beaucoup dans la maison s’arrête ou redémarre. Exemple un four ou une clim ou un moteur électrique.
          Cdlt

          • Marcos83 dit :

            Chez moi ça l’a fait aussi bien à l’arret ou la mise en route du cumulus, mais également pour des spots d’environ 150w. et de plus, c’est très aléatoire ce qui ne me permet pas d’affirmer à 100% que ça vient des marche/arrêt des appareils. Je vais essayer de voir si ça le fait aussi lorsque rien n’est actionné dans un sens ou l’autre (marche ou arret). Ce qui est étonnant c’est que sur la version 2 je n’avais pas des sauts d’affichage de la tension ou des watt. La platine et les composants étant les mêmes, ça doit logiquement être le code qui est à l’origine ?
            Cdlt.

          • F1ATB André dit :

            En V2, on avait pas l’historique de 10 mn qui mémorisé bien ces pics.

          • Marcos83 dit :

            Sur la V2 j’avais l’historique (par seconde) de toutes les valeurs dans Home Assistant. Aucune trace de tels pics… J’ai d’ailleurs transféré mon code pour Home Assistant pour tous les capteurs de la V3 et je vois bien l’historique des pics de courant, tension, etc…

            En souhaitant que cette information vous soit utile.
            Cdlt.

  15. Nutta dit :

    J’ai installé provisoirement le montage sans coffret pour tester.
    https://i.servimg.com/u/f81/15/44/36/18/20230714.jpg

    J’ai câblé le montage sur une plaque de développement pour ESP32 ce qui m’a permis de câbler C1, R6, R7 directement sur le bornier, puis j’ai placé les résistances du diviseur de tension sur le transfo lui-même et enfin la résistance R3 à l’intérieur de la pince ampèremétrique. C2 est au plus près du 3.3v.
    https://i.servimg.com/u/f81/15/44/36/18/carte_11.jpg

    J’ai remplacé et déporté le triac par un BTA41 monté sur un « gros » refroidisseur de récup – c’est tiède même à 100%
    https://fr.aliexpress.com/item/1005005258697575.html?spm=a2g0o.order_detail.order_detail_item.9.1a067d56VOyAOw&gatewayAdapt=glo2fra

    J’ai utilisé une micro-alimentation 230V/5V qui fonctionne très bien, tout au moins pour les modules déportés (je n’ai pas testé sur le module principal routeur et ça n’est pas assez puissant pour alimenter un TTGO avec son écran).
    https://fr.aliexpress.com/item/32954163030.html?spm=a2g0o.order_list.order_list_main.29.720c5e5bp9CE0G&gatewayAdapt=glo2fra

    J’ai tenté d’utiliser un SSR chinois pour commander la pompe piscine depuis un module déporté. Ça ne fonctionne pas, la pompe grogne et ne démarre pas. je déconseille donc ce modèle : https://i.servimg.com/u/f81/15/44/36/18/20230715.jpg
    Par contre fonctionnement impeccable avec un SSR Siemens.

    Je n’ai toujours pas le bandeau orange/vert sur la maisonnette (ça fonctionnait avec la version V2) même sur un 2eme TTGO – comprends pas.

  16. Skinok dit :

    Bonjour André et merci pour tout ce travail!
    Que se passe t’il si le chauffe eau à déjà atteint sa température d’eau maximale ?
    Je n’aimerais pas que le sur-plus soit renvoyé vers EDF à cause du CACSI.

    J’imagine que tout est prévu, mais j’aimerais néanmoins une petit explication si possible 🙂

    Merci d’avance pour votre réponse 🙂

    • F1ATB André dit :

      Quand la température sera atteinte, le chauffe-eau ne consommera plus, le routeur sera probablement ouvert à 100% mais aucune énergie sera consommée par le chauffe-eau. L’excédent d’énergie partira vers EDF sauf si votre onduleur est programmé pour interdire les transferts vers EDF en limitant l’énergie extraite des panneaux.
      Cdlt

      • Skinok dit :

        Effectivement, je voudrais dans tous les cas garder le « zéro injection ». J’ai bien un onduleur avec l’option « Zéro injection », c’est ce que j’utilise actuellement sans le routeur. Il faudra donc que je laisse cette option activée, même avec le routeur ?

        Et si je laisse cette option, comment votre routeur pour détecter un excédant ? Je ne comprends pas comment cela peut fonctionner..
        Pouvez vous expliquer ce point très important afin d’être conforme avec le CACSI ?

        Merci d’avance André ! 🙂

        • F1ATB André dit :

          Bonne remarque. Avant que votre systeme zero injection se déclenche, il faut en avertir le routeur.
          Mettez le seuil du déclenchement du Triac non pas à zéro, mais par exemple 50 (soit 50W) ou 100. C’est à ajuster suivant votre système zéro injection. Faire quelques essais.
          Ainsi le Triac commencera à s’ouvrir avant que l’on bride la production.

          Cdlt

          • Skinok dit :

            C’est une réponse qui convient parfaitement ça… je n’y avais pas pensé!
            Cela résoudrait tous les problèmes en même temps… à tester !

            J’ai presque tout commandé pour mettre en place le système, donc ça ne devrait pas tarder.

            Excellent Mr André! :=)

    • Yvoline dit :

      Bonjour ,

      Le CACSI , contrairement à ce qui est marqué , autorise le renvoie sur le réseau de 3 kWh maximum. C’est dans la loi française donc peut importe ce qui est marqué dans la convention :
      – Article L315-5 modifié par Loi n°2017-227 du 24 février 2017 – art. 11
      – Article D315-10 créé par Décret n 02017-676 du 28 avril 2017 – art. 2

      Si possible , autant permettre la réinjection de ces 3 kWh plutôt que de faire de la zéro injection . C’est gratuit et c’est bon pour la planète 😉

      • F1ATB André dit :

        3kwh, c’est pas grand chose et vous y arrivez sans le vouloir.A chaque arrêt brutal d’une forte consommation,par exemple un four, votre routeur ou onduleur mettra quelques ms ou même secondes à réagir et vous injecterez de la puissance. Cdlt

  17. JACOLET dit :

    Bonjour, pour ma part mon chauffe eau de 200 litres triphasé est vite a température, je ne possède pas de piscine. Alors la surproduction sur le réseau elle va quand même être la à un certain moment. Je pense alors a interrompre l’onduleur quand la production pour les 24heures a été produites. Pensé vous qu’il y aie un problème a ce que je face cela. Mon compteur électromécanique pour le moments stokes l’énergie jusque le mois de septembres au relever d’index, et puis c’est reparti comme a zéro production nuit et jour. juste pour l’automne au moment ou la production commence a diminuer. Est ce que ont pourrait commander un contacteur avec Le ESP32 pour l’arrêt de l’onduleur ???

    • F1ATB André dit :

      Vous pouvez brancher un relais sur l’ESP32 et dans la programmation mettre une règle pour actionner le relais quand la puissance devient négative (injection vers EDF).

      Cdlt

  18. Olivier dit :

    Bonjour et félicitations pour votre travail, je démarre juste dans le solaire mais je constate déjà une forte injection dans le réseau, du coup je souhaite installer un routeur solaire dont je pense avoir compris le principe et j’ai lu beaucoup de commentaires positifs sur le votre, par contre je n’y connais rien en électronique ni en programmation… juste capable de faire des soudures. Du coup existe-t-il une possibilité pour l’avoir complet directement configuré?? juste à le brancher? Merci pour votre réponse, cordialement.

    • F1ATB André dit :

      Désolé, j’ai pas monté ma PME de fabrication des routeurs.
      Essayez la version Linky, elle est encore plus simple à câbler.

      • Olivier dit :

        Pas de soucis je comprends, par contre petite question, si j’ai bien compris, dans la version normale, la pince ampèremétrique mesure le courant afin de déterminer s’il y a consommation ou injection si surplus de production, et dans le 2nd cas le routeur n’envoie que le surplus sur le chauffe-eau. Dans la version linky, le routeur récupère l’information d’injection de surplus par le linky et fait le reste comme le normal. c’est bien ça? Par contre je n’ai pas compris votre remarque avec CACSI car c’est mon cas. .. étant en CACSI il vaut mieux la version normale?

        • F1ATB André dit :

          Oui c’est bien comme vous l’avez compris. Dans les 2 cas de routeur on envoie l’énergie disponible via le Triac.

          Comme vous un CACSI, votre onduleur n’envoie jamais de l’énergie sur le réseau public. Dans ce cas, au lieu de mettre un seuil de déclenchement de la puissance Active à 0 (0W) pour ni consommer, ni injecter, on remonte le seuil à 100 ou 200W, pour démarrer le routage vers le Triac avant que le routeur ne bride la production.
          Cdlt

  19. JACOLET dit :

    superbe programmation cette version ci, ces parfait.

  20. Marcos83 dit :

    Bonjour André,,,,,
    Dans cette version V3, Je n’ai pas compris comment régler l’ouverture du triac à 25% ou 50% etc.ou à volonté. Le curseur ne servant, à priori, qu’à régler la réactivité. Merci par avance de m’indiquer la façon de procéder. Bien à vous.

    • F1ATB dit :

      plus de réglage de la valeur max. Peu utile

      • Marcos83 dit :

        Vous écrivez « Il est possible de limiter l’ouverture maximum du Triac à moins de 100% du temps si l’on souhaite répartir la puissance disponible entre plusieurs équipements. ». Comment faites-vous cela ? Merci d’avance.