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. Christophe L. dit :

    Bonjour André.

    Tout d’abord je tiens à vous remercier une nouvelle fois pour votre travail et votre implication pour tous les projets que vous réaliser qui nous sont tous bien utiles et profitables !

    Je viens de réaliser le routeur UxI et je suis en train de le tester à blanc avec une ampoule à la sortie du Triac pour le moment. Je dois avouer que ça fonctionne plutôt bien mis à part quelques détails qui m’intriguent.

    En effet, j’ai:
    – Le même modèle de pince que vous. J’ai mesuré la résistance interne et elle est des 200 ohms.
    – Un transformateur commandé sur ali en me calquant sur vos préconisations et finalement j’ai reçu un modèle 6V/3W.

    Aussi je tiens à préciser que j’ai bien souvent du 236/237V mesurés au secteur. Du coup je me suis retrouvé avec une tension oscillant entre 6,9 V et 7V en sortie du transformateur. J’ai dû augmenter R4 à 27Kohm ce qui m’a permis d’avoir une tension abaissée de référence de 1,02V/1,03V AC ce qui je pense est tout à fait acceptable. La tension de référence que j’obtiens pour la mesure de I est de 1,637V DC.

    Maintenant ce que je trouve étrange est que je suis obligé d’appliquer un coefficient de 1450 pour Ieff pour retrouver une mesure de VA similaire au linky lorsque je suis en talon de consommation (contre 835 pour Ueff). Ca vous semble normal ? Serait-ce lié au transformateur qui fait 3W au lieu de 1W ?

    Je tiens aussi à préciser que dans mon coffret électrique les 2 fils en sortie de mon compteur sont vraiment très proches ainsi que la terre et que du coup j’ai dû insérer la pince de mesure entre ceux-ci pour arriver à faire passer la phase à l’intérieur. Est ce que vous pensez que ça peu fausser un peu les mesures ? Je peux vous envoyer une photo si vous le souhaitez.

    Aussi, vous préconisez d’étalonner Ieff en faisant en sorte de mettre en route un appareil fortement consommateur. Le soucis de mon côté est que quand je fais ça, mon Ueff mesuré chute beaucoup plus que la réalité et les VA ne correspondent plus à ce qui est affiché sur le Linky. Là aussi il y a un écart important.

    Une dernière question. N’est il pas préférable de faire cet étalonnage les panneaux éteints pour ne pas fausser les mesures ?

    Merci d’avance.

    • F1ATB André dit :

      La puissance du transfo 6V ne joue pas. On ne consomme rien.
      Faites un calibrage de Ieff le soir sans photovoltaïque avec une grosse consommation (four par exemple).
      Votre sonde est peut-être un peu perturbée par la présence à côté de l’autre phase. Ce qui explique un coef de 1450.
      Cdlt

      • Christophe L. dit :

        Bonjour André.

        Après plusieurs investigations j’ai fini par trouver d’où cela provenait. En fait j’utilise une plaque d’essai et il se trouve que je n’avais pas suffisamment coupé une piste et donc j’avais une légère résistance résiduelle et comme de juste sur la mesure de I. Du coup maintenant j’ai un coef. multiplicateur de 1150 ce qui fait une sacrée différence !

        Par contre maintenant je rencontre un autre problème. En effet, je possède un cumulus avec un contacter HC / HP que je souhaiterais conserver. Sur un de vos schémas vous montrez comment effectuer les branchements (phase à couper uniquement) sauf qu’il apparait que les neutres du cumulus et de l’entrée du contacteur HC / HP sont reliées ensemble alors que ce n’est pas du tout le cas ! Le contacteur que je possède coupe aussi bien le neutre que la phase qui vont à mon cumulus. Comment peut on faire dans ce cas ? Merci d’avance.

        • F1ATB André dit :

          Ce n’est pas grave. Laisser le neutre branché en permanence et vous faites passer la phase par le Triac.
          Cdlt

          • Christophe L. dit :

            Merci beaucoup pour votre réponse rapide, du coup j’ai fait appel à un ami électricien et il m’a résolu le problème en 2 temps 3 mouvements ! Merci encore pour votre implication et votre travail, franchement ça marche du tonnerre. Et les plages horaires c’est vraiment le top !

          • F1ATB André dit :

            Merci

      • Comte nicolas dit :

        Bonjour
        Merci encore pour le partage .

        est il possible d’utiliser la Passerelle de communication ECU-C ZIGBEE d’APsystems à la place de la pince ampèremétrique . Un appairage en zigbee ou utilisation wifi est il possible avec votre routeur solaire. ( utilisation d’un programme sur l’esp32 )

        Sinon
        Dans le cadre de la mesure avec Le linky , si je n’ai pas de contrat avec edf donc pas de mesure de la puissance envoyée sur le réseau edf . Cela ne fonctionne pas ?

        • F1ATB André dit :

          Avec l’ECU-C d’AP système on ne peut collecter les puissances que toutes les 5mn (valeur de mémoire) je crois. Pour un bon routeur, il faut plutôt être autour de la seconde. Le Linky avec 2 secondes c’est acceptable. 5mn, ce n’est pas acceptable. Mettez une sonde ampèremètre et un transformateur dans la version UxI du routeur pour ne pas avoir besoin du Linky. Vous aurez une mesure toutes les 40ms.
          Cdlt

  2. JACK GAUDOUX dit :

    Bonjour André,
    Merci pour votre partage et pour votre réactivité dans les échanges que je lis régulièrement depuis début juin.
    La dernière V3.03_UxI est très précise avec des graphiques qui matérialisent très bien l’état de la consommation/production pour un novice en électricité.
    Suite à la question de SEB, j’ai modifié le routage du Triac pour qu’il puisse réagir durant les heures creuses de 12:36 à 15:36 dans mon cas.
    J’observe un tracé sur le graphique Moyenne puissance/Puissance apparente « chaotique » qui démontre que V3.03_UxI travaille.
    Novice aussi en matière de thermostat de chauffe eau, je me demande si c’est utile de couper le Triac durant les heures creuses alors que votre programme gère parfaitement la consommation ?
    Encore merci.

    • F1ATB André dit :

      Le système peut gérer les heures creuses en se basant sur l’horloge.
      Si vous prenez la douche le matin en général, laissez le Triac chauffer dans la journée si de l’energie est disponible. Ne pas forcer l’heure creuse à midi si vous avez du soleil l’après midi, vous n’en profiterez pas.
      Cdlt

      • JACK GAUDOUX dit :

        Bonjour André,
        Je note ces précisions pour optimiser l’efficacité de la récupération d’énergie solaire.
        Je vais suivre de près votre actualité notamment pour la température du Triac.
        Actuellement j’utilise votre code du capteur DS18B20 pour contrôler les variations de température du Triac sur les ailettes du radiateur amélioré. Ca se passe bien (42 degrés max) pour la production de 2 panneaux de 405W chacun. Dans un mois je vais doubler la surface, ce contrôle de température me semble très utile.
        Cordialement.

  3. Michel.P dit :

    Bonjour André.
    Merci pour ce super travail et vos explications très précises pour un néophyte comme moi ni électronicien , ni informaticien.
    J’ai commencé la réalisation du montage du routeur solaire version 3.3 . Je procède étape par étape en vérifiant à chaque étape que je retrouve bien les données que vous fournissez dans votre tuto . J’ai actuellement réalisé la partie transformateur alternatif 6 volts , 1w qui délivre 7,5 v à vide, câblé avec la pince SCT013 mais pas raccordé de dimmer ni de relay.
    Mon montage correspond à la partie gauche de votre Schéma .
    J’ai téléversée le code dans l’ESP32 et je peux visualiser sur mon smartphone les données le l’outil.
    Hors je bloque sur la partie étalonnage dans la page données Brute., Je n’arrive pas à avoir une sinusoïde propre la courbe est aplatie en haut et en bas avec les valeurs R4 240K et R5 47K J’ai modifié les valeurs R4 et R5 sans obtenir de résultat probant .
    J’arrive à obtenir une demi période propre en positif avec une tension de 1,3 V sur le GPIO 32 , mais l’autre demi période est aplatie en négatif et beaucoup plus longue en temps , cela quelque soit les valeurs R4 et R5 . Actuellement j’ai R5 à 47K et R4 130K pour une demi période propre en positif. Si je fais passer une tension dans la pince SCT013 je retrouve bien les infos Intensité et puissance dans la page accueil.
    Un élément du montage est-il défectueux et comment le tester?
    Cordialement

    • F1ATB André dit :

      Il n’est pas impossible que cela soit dû à des résistances trop élevées par rapport à la résistance d’entrée de l’ESP. Divisé par 10 les valeurs et mettez 4.7K et 13K.
      Cdlt

      • Michel.p dit :

        J’avais dans mes essais essayé avec ces valeurs et avec les mêmes résultats. J’ai oublié de preciser que pour le montage j’ai utilisé un condensteur de 22micro 50v n’ayant pas de 10 micro .
        si vous pensez que cela peux provenir de l’esp je peux faire l’essai avec un autre. celui que j’utilise est un 30 broches.
        cdlt

  4. Nutta dit :

    J’ai un ESP UxI avec un RobotDyn pour le chauffe eau, puis un deuxième distant avec un relais pour pompe piscine.
    Celui destiné à la piscine n’est pas encore branché sur la pompe (donc même si l’onglet indique « pompe piscine ON », il n’y a pas de conso).
    Lors des essais à vide, le relais pompe s’enclenche parfois alors qu’il n’y a pas réellement de puissance disponible car celle-ci est envoyée vers le chauffe eau.

    Je vois qu’il y a un pic (entre -5 et -4 min sur photos jointes) sur le tracé du signal « puissance active » – ce pic est inversé entre les deux ESP – ceci explique le démarrage du relais « pompe » (le pic négatif fait démarrer la pompe), mais je ne sais pas d’où provient cette inversion.

    https://i.servimg.com/u/f81/15/44/36/18/cumulu10.jpg

    https://i.servimg.com/u/f81/15/44/36/18/pompe10.jpg

    • F1ATB André dit :

      Si pour les 2 ESP vous avez mis le seuil de déclenchement à 0W. Ils peuvent déclencher l’un ou l’autre ou les 2. Cela dépend de la réactivité, du temps de transfert de l’info etc. Mettez le seuil du chauffe-eau à 0 et le seuil de la piscine à -20. Ainsi quand le chauffe-eau s’arrêtera parce qu’il a rejoint sa température, la piscine prendra la main.
      Cdlt

      • Nutta dit :

        Je me suis mal exprimé.
        Le seuil de déclenchement de la piscine a (expérimentalement) été réglé à -100W.
        Il y a eu un pic positif de 350W environ mais le truc c’est que ce même pic est négatif (et de -220W cette fois-ci) sur la page web de la piscine et donc cela a enclenché le relais.

        Les 2 photos sont des captures des 2 ESP au même instant (à 20 secondes près) – les deux pics de signes et de valeurs différentes ont pourtant eu lieu au même instant.

        • F1ATB André dit :

          On prélève pour la courbe 1 point toutes les 2 secondes. Si dans ces 2 secondes, on a un pic positif suivi d’un négatif, suivant l’instant de prélèvement, on a un résultat différent.

  5. Daniel Billès dit :

    Bonjour André,

    J’utilise la dernière version du routeur solaire V3.03 Uxl le soucie que j’ai chez moi avec l’esp32 est que certains jours il se bloque, est il reste bloqué si je n’interviens pas, je coupe l’alimentation secteur puis je rebranche aussitôt et ça refonctionne après.

    J’ai essayé de changer la carte ESP 32 c’est pareil, j’ai changé l’alimentation 5v pareil aussi, je suis dans une impasse.

    Cordialement.

  6. Haeflinger Patrick dit :

    Tout d’abord félicitations pour votre développement, c’est vraiment super.
    Je suis en train de partir de votre code pour rajouter un deuxième triac pour un deuxième chauffe eau. Je compte aussi rajouter du coup deux tores de mesure pour savoir si les chauffe eau ont atteint leur température (commande active et non consommation = température atteinte ) ce qui permettra de passer d’un chauffe eau à l’autre (enfin c’est l’objectif) et de savoir s’il faut rajouter une séquence la nuit . Je rajoute aussi un afficheur de 4 lignes de 20 caractères pour avoir des indications directement lisibles (en plus des pages web).
    Sur le code existant de la version 3_03 je me demandais s’il ne manquait pas deux instructions « break » après les lignes 520 et 522 dans le fichier « RouteurSolaire_V_3_03_UxI.ino ». Si j’arrive à faire ce que je désire je suis prêt à vous fournir gratuitement le code si cela vous intéresse
    Cordialement
    Patrick

    • F1ATB André dit :

      Bien vu, il y a un bug sur la version 3.03. J’ai publié le correctif, une version 3.04, RouteurSolaire_V_3_04_UxI
      À la place de 2 Triacs, vous pouvez mettre un relais et un Triac.
      Le Triac régule autour de 0W et si jamais le premier chauffe-eau atteint sa température, un relais basculant à -50W commutera le Triac vers le deuxième chauffe-eau.

      La prochaine version (V4) qui devrait sortir vers la fin du mois aura un capteur de température DS18B20

      Cdlt

      • Haeflinger Patrick dit :

        Effectivement mettre un relais en sortie du triac est aussi une solution envisageable, je vais réfléchir à celle que je vais finalement utiliser. Quant à la version avec sonde de température je lui préfère personnellement la version qui mesure le courant consommé par la charge pour les raisons (personnelles) suivantes
        – Le routeur va être positionné près du tableau électrique loin du chauffe eau
        – Difficile de rajouter une sonde de température au niveau du chauffe eau car déjà occupé par le thermostat mécanique (que je souhaite pas enlever)
        Encore bravo pour votre belle réalisation
        Cordialement

      • StefanDu30 dit :

        Bonjour,
        Par curiosité avant de televerser la v3.04, quelles sont les modifications apportées et bug corrigés ? La v3.03 semble bien fonctionner sur deux ballons du coup juste pour comprendre ?
        Merci encore pour tout en tous cas, un plaisir de vous suivre !

        • Nutta dit :

          En commentaire dans le programme, il est noté :

          La version V_3.01_UxI rajoute des sorties MQTT : pws, pwi (P en W soutiré et Injecté) et toujours >=0
          La version V_3.02_UxI corrige un bug affectant les IDE Arduino sous Linux
          La version V_3.03_UxI corrige un bug. L’échange de la variable Pw entre les coeurs
          La version V_3.04_UxI corrige un bug sur la lecture des mesures faites par un ESP extérieur.

        • Haeflinger Patrick dit :

          Comme mentionné dans le commentaire de la 3.04 cela ne concerne que la mesure faite par un un ESP distant. Il s’agit d’un manque de deux instructions « break; » dans une commande « switch » qui a été corrigé

          • StefanDu30 dit :

            Ok merci, je n’ai pas encore téléchargé cette nouvelle version et n’avais du coup pas vue le commentaire, mais ayant tout en distant je vais m’attaquer aux mises à jour des esp !

  7. JACK G. dit :

    Bonjour André,
    Je viens de tester manuellement une façon de gérer la température de l’eau du chauffe eau l’après midi pendant les heures creuses de mon contrat. (12:36 à 15:36)
    J’ai programmé le Triac sur Off à 12:36 pour laisser le chauffe eau fonctionner automatiquement avec le déclenchement ENEDIS.
    J’avais remarqué précédemment grâce à votre programme que les périodes de chauffe du thermostat étaient plus importantes jusqu’à 14:00.
    J’ai donc programmé le Triac sur « 0 à 100% » à partir de 14:00 et j’ai basculé manuellement sur Off le contacteur jour/nuit du chauffe eau.
    De fait, toute ma production solaire a été injectée dans le chauffe eau de 14:00 à 15:36 et au-delà, régulièrement.
    Aussi je me questionne sur l’idée d’utiliser la gestion du relai pour ouvrir ou fermer l’alimentation ENEDIS à un certain moment en fonction de l’ensoleillement par exemple.
    La nuit le chauffe eau récupère si besoin et laisse monter la température pour la sécurité sanitaire.
    Est-ce que cette expérience vous semble utile ?
    Est-ce qu’un relai peut supporter les 2000W du chauffe eau ?
    J’ai noté la V4 à venir. Merci.

    • F1ATB André dit :

      De mon coté, je n’utilise pas le contacteur jour/nuit. Je laisse chauffer la journée uniquement avec le soleil et la nuit je force sur ON pendant les heures creuses. Ainsi si l’eau n’est pas assez chaude en début de nuit par manque de soleil, cela sera chauffé par EDF jusqu’à bonne température. Le matin l’eau est correcte pour la douche.
      Cdlt

      • JACK G. dit :

        C’est effectivement une autre solution.
        Ce dernier hiver ENEDIS a décalé l’impulsion qui déclenche le chauffe eau d’une heure ou 1 heure et demie. Je n’ai pas manqué d’eau chaude pour autant.
        C’est dans le même esprit que je me questionne sur la façon de programmer le blocage de l’arrivée électrique ENEDIS derrière le déclencheur à 3 positions. Peut-être un programmateur séparé de votre excellent Routeur.
        Cordialement.

  8. Christophe L. dit :

    Bonjour André. Je suis en train de régler le routeur afin de trouver les bons compromis pour l’ouverture du Triac et je m’aperçois que quand il n’y a pas de régulation, I et U sont parfaitement coordonnés dans le temps (courbes de a page données brutes) mais par contre dès que la régulation opère j’ai I qui est en retard par rapport à U alors que dans votre exemple de « routage et régulation à Zéro Watt » ils sont parfaitement coordonnés dans le temps. Est ce normal ? Merci d’avance.

    • F1ATB André dit :

      Au moment de la régulation, il y a un comportement complex mélangeant injection et consommation sur une demi période. Ne vous souciez pas de la forme de I. Cela dépend de l’ouverture du Triac de la charge connecté etc.. Le principal, c’est que le bilan en Wattheure (ce que vous payez) ne change pas ou très faiblement.
      Cdlt

  9. ROUX Jean claude dit :

    Bonjour André.

    Concernant l’alimentation 230V/6V AC est-il possible de remplacer la résistance 24k (R4) par une résistance variable pour essayer d’obtenir une sinusoïde parfaite ?

    • F1ATB André dit :

      Oui, mais démarrez avec la résistance maximum. Si vous mettez trop de tension sur l’entrée de l’ESP vous allez le griller. RIP

      Cdlt

      • ROUX Jean claude dit :

        Bonjour
        Merci pour l’info. Le problème avec les transfos 230/6V c’est qu’ils délivrent beaucoup plus de tension que 6V, plutôt 10 ou 11V.
        J’avais récupéré un vieux tranfo en 12V sur lequel j’avais enlevé des spires pour obtenir 6V juste et la sinusoïde était nickel, mais un peu trop gros pour mon boitier.

  10. herve dit :

    Bonjour,
    En plus de l’énergie soutirée et l’énergie injectée, serait-il possible d’afficher (et transmettre en MQTT) l’énergie routée ? C’est à dire l’énergie récupérée grâce au routeur, et donc non injectée dans le réseau.
    Merci.
    Cordialement

  11. Yvon dit :

    Bonjour André.
    Merci pour ce super travail et vos explications toujours au top !
    Je viens de réaliser le routeur (version 3.03) et je suis en train d’ajuster les réglages.
    1) Si on veut envoyer l’énergie vers un autre consommateur à travers le triac quand le chauffe eau atteint sa température et s’arrête, si j’ai bien compris il faut mettre le seuil ON PW<-50w par exemple mais que faut-il mettre pour le seuil OFF ??
    2) je n'arrive pas à accéder au routeur depuis Domoticz..que faut-il déclarer comme matériel et dispositifs dans Domoticz ?
    3) lorsque je déclare un MQTT (période de 5 secondes), le routeur devient très lent et pratiquement inaccessible sur le net, est-ce normal ?
    Merci, Cordialement

  12. ANDRE Christophe dit :

    Bonjour André,
    en televersant le programme j’ai ce message:
    :
    Utilisation de la bibliothèque WiFiClientSecure version 1.0 dans le dossier: C:\Users\Christophe\AppData\Local\Arduino15\packages\esp32\hardware\esp32\1.0.6\libraries\WiFiClientSecure
    exit status 1
    Erreur de compilation pour la carte ESP32 Dev Module

    Pourrais-tu SVP m’aider à régler ce problème ?

    Merci,
    A bientôt,
    Christophe.

  13. seb dit :

    Bonjour,
    Il y a t il un sens pour installer / câbler le tore ?
    Seb

  14. PINET dit :

    Bonjour André,

    j’ai le routeur qui est en fonction depuis plusieurs semaine et je note un dysfonctionnement. Je suis signataire d’une CACSI et mes panneaux sont pilotés par une passerelle de chez Enphase qui gère l’injection.
    J’ai essayé plusieurs réglages de seuil notamment 200w qui est mon bruit de fond en consommation sans résultat. Le surplus est bloqué et non récupéré pour chauffer le ballon d’ecs.
    J’ai mis temporairement en fonction une grosse demande (four) pour relancer la production des panneaux mais lorsque j’arrête le four le surplus n’est pas dirigé vers le ballon et la passerelle réduit donc leurs production.
    Merci de m’indiquer sur quels paramètres agir pour contrer ce soucis.
    Bien cordialement.

  15. StefanDu30 dit :

    Bonjour André,
    J’utilise actuellement la version v3.04 qui fonctionne parfaitement pour les deux ballons ECS.
    Serait-il possible d’intégrer au programme une tempo. ? Je m’explique, lorsque je démarre le four ou le fer à repasser par exemple et que je dépasse par exemple le seuil d’arrêt défini à 0W, est-il possible par exemple de mettre une ligne de prog pour une tempo par exemple de 30 minutes ? La régulation du four fonctionnant en tout ou rien, en l’état actuel ça crée un pompage avec de nombreux marché/arrêt de la prise délestée, l’idée serait de provoquer un arrêt plus long avant redémarrage pour limiter ce pompage ?

    • F1ATB André dit :

      Bonne remarque. Il est vrai que de nombreux appareils ménagers ont une consommation en dents de scie. Du coup le routeur fait la dentition inverse….
      Je vais réfléchir à votre proposition de tempo la plus simple et efficace.

      Cdlt

      • StefanDu30 dit :

        Si vous trouvez je suis preneur ! Je pensais intégrer une ligne de prog pour cet esp32 pour une tempo entre deux mesures mais c’est certainement pas la meilleure solution, il doit y avoir mieux c’est sûr !
        Merci à vous !

  16. seb dit :

    Bonjour
    Je viens de mettre en service le routeur, merci André.
    J’ai toutefois un souci j’ai bien l’impression que le surplus ne sort pas du triac, j’ai actuellement un surplus de 1000W qui repart direct sur le réseau et pas dans le chauffe-eau.
    Une idée ????
    Merci

  17. Christophe L. dit :

    Bonjour André.

    J’utilise moi aussi le routeur UxI v3.04 depuis quelques jours et je fais face à un phénomène étrange concernant la mesure de la tension efficace. Celle-ci varie beaucoup parfois alors que quand je mesure au multimètre je ne constate pas ces variations. J’ai vérifié les tensions de références et la tension en sortie du transfo et elles semblent stables. Par contre elle ne dépasse jamais le max de ce que je mesure au multimètre.

    Cela peut varier de 220V à 236V alors que j’ai bien 234 à la prise. J’ai testé plusieurs alimentations 5V différentes et cela ne change rien.

    Ce qui est étrange c’est que ça ne le fait pas tout le temps, seulement par moment.

    Avez-vous une explication ? Ne serait pas lié à des problèmes de lenteurs de mesures de l’ESP32 ? Peut être que d’autres ici font face à ce problème ?

    Merci d’avance.

    • Nutta dit :

      Ça ressemble à une mauvaise connexion, une mauvaise soudure.. Les résistances R4 et/ou R5 sont bien des résistances et non-pas des ajustables ?
      Le coefficient multiplicateur est élevé – une très légère variation en entrée en l’ESP se traduit par plusieurs volts à l’affichage.
      Je n’ai pas ce problème.

      • Christophe L. dit :

        Vous avez tout à fait raison et c’est bien vu ! Le transfo que j’ai actuellement n’est pas exactement le même qu’André, il s’agit d’un 3W et il me donne du 7V en sortie bien souvent. J’ai dû augmenter R4 à 27K. Je me retrouve avec un coefficient de 835 et donc en effet la moindre variation se traduit par plusieurs volts. A y regarder de plus prêt je pense que ce dernier est en cause car sa tension de sortie à tendance à varier (ce qui fausse le coef. multiplicateur qu’il faudrait réajuster ?).

        Je vais donc remplacer ce transfo par le même qu’ André fin de m’approcher le plus possible des 6V en sortie et donc avoir un coefficient moins élevé. Ce n’est pas grand chose à faire, je verrais bien si ça change quelque chose.

    • F1ATB André dit :

      Non, l’ESP32 fait une mesure de tension toutes les 100 micro seconde. C’est plutôt le multimètre qui lisse et ne voit pas passer des pics brefs de tension. Cela peut être dû à des mises en routes/arrêts de machines grosses consommatrices dans le voisinage. La norme de tension 230V est de 207 V mini et de 253 V maxi.
      Ne touchez pas à l’alimentation 5V, cela ne change rien. Si le 5V est pourri, l’ESP32 ne démarre pas.
      Cdlt

    • AB dit :

      Bonjour,

      J’ai exactement le même comportement sur mon routeur.
      Parfois, la tension descend progressivement de 237V vers 225V en quelques dizaines de secondes, se stabilise quelques minutes, puis revient très progressivement à la tension réelle du réseau.

      Je pense qu’il s’agit d’un problème de mesure, pour 2 raisons :
      – Je ne vois pas cette fluctuation avec mon multimètre en mode min/max
      – La puissance active mesurée par le routeur baisse. Elle devrait rester stable s’il y avait une chute de tension sur le réseau grâce à l’augmentation naturelle du courant pour maintenir la même puissance, surtout lorsque la conso de la maison est faible

      Je n’ai pour le moment pas d’explication.
      Les tensions 3,3V et 1,65V sont très stables.
      J’ai essayé un 2nd transfo, identique au 1er mais plus récent donc probablement un lot différent, je n’ai pas vu d’amélioration.
      Prochain essai dans les jours à venir: changement de la carte ESP32…
      L’idéal serait d’instrumenter simultanément les alim et la tension d’entrée sur l’ADC, mais je n’ai pas d’oscilloscope sous le coude.

      • Christophe L. dit :

        Merci donc on rencontre tous les 2 le même problème. Je veux bien être tenu au courant merci 🙂

        • AB dit :

          Bonjour Christophe,
          Après changement de l’ESP et calibration (il y a un léger écart d’un ESP à l’autre), je n’ai pas vu d’amélioration.
          Toujours cette chute de tension de temps en temps.
          Lorsque la mesure chute, je ne vois pas la tension diminuer en sortie du transfo et en entrée de l’ESP, mais il me faudrait un instrument de mesure plus précis pour en être certain. Si c’est le cas c’est que le problème se situe au niveau de l’ADC.
          Vous utilisez une carte ESP AZdelivery ou une officielle Espressif ? AZdelivery de mon côté.

          • Christophe L. dit :

            Bonjour AB.
            Merci d’avoir pris le temps de me répondre. J’utilise une WROOM 32 38 pins achetée sur ali. Concernant notre problème j’ai comme l’impression que cela provient de chez nous en fait, du secteur. Je ne sais pas où vous habitez mais moi je suis en campagne Je pense que la courbe ne doit pas être jolie à voir et qu’elle doit être énormément bruitée / instable, d’où ces problèmes de chutes de tension inexpliquées. D’ailleurs quand je regarde chez moi ce que donnent les micro onduleurs de mes PV plug’n play, j’en ai un sur une prise qui va me donner 237V par exemple alors que l’autre va me donner 240V sur une autre prise (mesures prises avec OpenDTU). Donc déjà ce n’est pas normal que chez moi je n’ai pas la même valeur d’une prise à une autre. ce qui prouve que la tension du secteur n’est pas du tout stable.
            J’ai lu aussi quelque part que les entrées ADC des ESP32 sont énormément bruitées et qu’il y a des méthodes pour réduire cela:

            https://electroniqueamateur.blogspot.com/2019/08/esp32-utilisation-des-entrees.html?showComment=1669310971320#c4812758312677697925

            Comme l’utilisation de condensateurs qui devraient pourtant suiffire.

            Bon relativisons car de mon côté ça n’empêche en rien le routeur de fonctionner ce qui est l’essentiel 🙂

          • F1ATB André dit :

            Le plus important c’est d’avoir le signe de la puissance. La valeur exacte ou pas, cela a peu d’impact.
            Cdlt

  18. JEAN MICHEL VRAUX dit :

    Bonjour André,
    Après une longue panne du réseau internet Orange (3semaines quand même) dans mon quartier, j’ai remis en service le routeur et gros coup de chaud sur le TRIAC.
    J’ai tout coupé parce cela aurait pu provoquer un incendie et j’ai entrepris un diagnostic.
    Témoin bleu allumé il y a la même tension en sortie de triac que sur le réseau.
    Témoin bleu éteint il y a une tension de sortie de 140v en permanence (240v réseau).
    Je pense que c’est ce qui a fait chauffer car la résistance du chauffe-eau prend ces 140v.
    Il me semble que la tension de sortie du triac en mode OFF doit être à 0v.
    Je me trompe?
    Merci par avance pour votre avis, bien à vous.
    JM VRAUX

    • F1ATB André dit :

      La tension en sortie du Triac doit être à zéro quand il est sur Off. Oui et Non.
      En fait le Triac n’est pas un interrupteur parfait. S’il n’y a rien de branché en sortie et que l’on met un voltmètre qui a besoin d’un courant infime pour fonctionner, il va afficher quelque chose car le Triac a un petit courant de fuite sur Off. Pas contre, si une charge résistive comme un chauffe-eau est branchée, la tension doit tomber à zéro. Le courant de fuite étant trop faible.
      Si le chauffe-eau branché et que vous avez une tension élevée, le Triac est mort. Remplacez-le avec un costaud comme le BTA40-800B. Voir l’article : https://f1atb.fr/index.php/fr/2023/09/28/triac-gradateur-pour-routeur-photovoltaique/
      Cdlt

      • JEAN MICHEL VRAUX dit :

        Bonjour André,
        Merci pour votre retour rapide.
        J’ai prolongé mon diagnostic en branchant une ampoule à incandescence sur la sortie triac.
        Témoin bleu éteint, la lampe s’allume et le voltage est de 125v en permanence.
        Le triac est effectivement parti au paradis des triac.
        Le dissipateur a été augmenté de 3 ou 4 fois son état initial et je n’ai pas beaucoup de puissance, 500w maxi, en attendant mon troisième panneau.
        Je fais sûrement partie des malchanceux car j’ai lu quelque part qu’il y avait au moins 20% des composants électroniques qui claquaient presque immédiatement.
        J’en suis d’autant plus convaincu que j’ai également dû changer l’ESP 32 au bout de 3 semaines car il était devenu muet, pb de wifi probablement.
        Impossible de le remettre en service malgré une reprogrammation.
        J’ai fait le nécessaire pour remplacer le triac suivant vos conseils en espérant ne plus être dans la tranche des 20%.
        J’espère que la carte support du triac n’est pas endommagée.
        Bonne journée, bien cordialement.
        Jean Michel.

    • Christophe L. dit :

      Avez-vous suffisamment dimensionné le dissipateur du Triac surtout si la charge est importante ?

      • JEAN MICHEL VRAUX dit :

        Bonjour Christophe,
        Le dissipateur a été augmenté de 3 ou 4 fois son état initial et je n’ai pas beaucoup de puissance, 500w maxi, en attendant mon troisième panneau.
        Je fais sûrement partie des malchanceux car j’ai lu quelque part qu’il y avait au moins 20% des composants électroniques qui claquaient presque immédiatement.
        J’en suis d’autant plus convaincu que j’ai également dû changer l’ESP 32 au bout de 3 semaines car il était devenu muet, pb de wifi probablement.
        Impossible de le remettre en service malgré une reprogrammation.
        Bonne journée.

  19. Gailord dit :

    Bonjour André ,félicitations pour ce super travail ça fait plusieurs semaines que j’utilise le routeur solaire ça marche à merveille . Une petite question je voulais savoir s’il était possible de piloter les relais avec MQTT où HTTP ? Pour les contrôler avec jeedom ou autre système domotique. Dernière petite question comptes tu intégrer un jour une sonde de température du style Dallas (DS18B20) ?
    Encore merci et bonne journée.

    • F1ATB André dit :

      Pour la sonde de température DS18B20, cela va arriver dans les prochains jours avec la sortie de la V4. J’écris actuellement la documentation.
      Pour les commandes des GPIO, pas prévu pour l’instant, mais pourquoi pas à l’avenir.
      Cdlt

      • gailord dit :

        C’est une bonne nouvelle je tends la V4 avec impatience. J’ai actuellement un ESP8266 sous tasmota avec 2 sondes de température DS18B20
        pour monitorer la température du cumulus et celle du triac. Si l’ ESP32 pouvait l’intégrer ça ferait un module la moins qui tourne.
        bonne journée.

      • Stef D dit :

        Bonjour
        Je n’ai pas testé mais le pilotage des GPIO ne fonctionne pas par requête HTTP genre « http://192.168.1.6/control?cmd=GPIO,5,1 » ?

        merci

  20. seb dit :

    Bonjour si cela intéresse quelqu’un j’ai 3 cartes PCB que j’ai fait faire pour monter le routeur de André.

    https://www.amazon.fr/photos/share/GavsIrJ1PyA6RoRtphwi6k2JEOHdnctzYCwnCJJFyRs

    Seb

  21. Manuel dit :

    bonjour
    j essaye d avoir la température a l aide d une ds18b20
    j ai bien la température qui s affiche dans le moniteur série mais j arrive pas a la récupérer dans home assistant.
    voila ce que j ai modifié

    clientMQTT.loop();
    mqtt_publish(MQTTPrefix + « pva », PVA);
    mqtt_publish(MQTTPrefix + « easj », EASJ);
    mqtt_publish(MQTTPrefix + « eaij », EAIJ);
    mqtt_publish(MQTTPrefix + « pw », PW);

    mqtt_publish(MQTTPrefix + « temp_ext », TEMPER2);
    mqtt_publish(MQTTPrefix + « temp_retour », TEMPER2);

    if (LesActions[0].Actif == 1) { //CAs du Triac
    int triac = 100 – retard;
    mqtt_publish(MQTTPrefix + « triac », triac);
    }
    for (int i = 1; i < NbActions; i++) {
    if (LesActions[i].Actif == 1) {
    etat = 0;
    if (LesActions[i].On) { etat = 1; }
    mqtt_publish(MQTTPrefix + "action" + String(i), etat); //Etat On Off des actions (relais)
    }
    }
    clientMQTT.loop();
    }

    ce que j obtient dans le moniteur serie:
    Charge Lecture UxI en ms – Min : 2 Moy : 4 Max : 106
    Charge Boucle générale en ms – Min : 1 Moy : 1 Max : 488
    ESP32 ON depuis : 0.01 heures
    Temp C: 28.00

    et dans home assistant:
    Message 146 reçu sur UxI/temp_ext à 20:48 :
    0.00
    QoS: 0 – Retain: false
    Message 145 reçu sur UxI/temp_ext à 20:48 :
    0.00
    QoS: 0 – Retain: false

    • F1ATB André dit :

      De mémoire, il me semble que le caractère underscore – est interdit.

      • Manuel dit :

        non pourtant ca fonctionne avec pva,j ai bien les remonter des valeurs

        Message 3 reçu sur UxI/pva à 7:15 :
        583.00
        QoS: 0 – Retain: false
        Message 2 reçu sur UxI/pva à 7:15 :
        594.00
        QoS: 0 – Retain: false
        Message 1 reçu sur UxI/pva à 7:15 :
        588.00
        QoS: 0 – Retain: false

        • Manuel dit :

          non desolé erreur de ma part
          j ai changer et enlever les underscore toujours 0.00 qui remonte

          • Manuel dit :

            j ai ajouté ca:

            unsigned long previousMqttMillis;

            ///////////////////////////////////////////////// capteur temperature /////////////////////////////////////////////////////////

            OneWire oneWire(oneWireBus); // Configurez une instance oneWire pour communiquer avec n’importe quel appareil OneWire
            DallasTemperature sensors(&oneWire); // Passer notre référence oneWire au capteur de température Dallas
            DeviceAddress TEMPballon = { 0x28, 0xFF, 0x64, 0x1E, 0xF6, 0x6A, 0x2C, 0x0A }; // sonde ok

            la fonction lecture de la sonde

            void lecture()
            {
            currentTime=millis();
            //Envoi d’un message par minute
            if((currentTime-previousTime)>2000){
            previousTime= currentTime;

            sensors.requestTemperatures();
            tempballon = sensors.getTempC(TEMPballon);
            Serial.print(« Temp ballon: « );
            Serial.print(tempballon);

            }
            }

            et :

            clientMQTT.loop();
            mqtt_publish(MQTTPrefix + « pva », PVA);
            mqtt_publish(MQTTPrefix + « easj », EASJ);
            mqtt_publish(MQTTPrefix + « eaij », EAIJ);
            mqtt_publish(MQTTPrefix + « pw », PW);
            mqtt_publish(MQTTPrefix + « tempballon », TEMPER1); /////////////////////////////////////////////////

          • F1ATB André dit :

            La version 4 du routeur UxI et Linky, que je pense publier dans les jours à venir, aura le capteur de température et la découverte automatique dans HA.

            Cdlt

      • Sébastien dit :

        Bonjour André, j’ai un soucis avec le cosinus phi, celui est négatif et je ne comprends pas la raison ! Même lorsque que j’utilise un gros consommateur j’ai par exemple 1650Va et – 1500 w.
        je ne comprends pas. Avez-vous une explication ?
        Merci beaucoup.

        • F1ATB André dit :

          Vous avez la sonde à l’envers.
          Soit vous faites faire un demi-tour à la sonde de courant.
          Soit vous inversez les fils en entrée ou sortie du transformateur.
          Cdlt

  22. ROUX Jean claude dit :

    Bonjour André
    Est-il prévu dans la nouvelle version la possibilité de sauvegarder sur le PC les principaux paramètres . Utile en cas de changement d’ESP.
    Merci

  23. Serge+11 dit :

    Bonjour,
    Cela fait maintenant plusieurs mois que j’utilise le routeur et j’en suis satisfait même si dans certain cas, j’ai l’impression que le dimmer ce lâche sur la puissance délivrée avec des pics de puissance alors que personne n’est à la maison!.
    Cette démarche m’a donnée envie d’aller plus loin et je me lance dans la domotique.
    J’ai installé HomeAssistant et je pense y intégrer les données MQQT du routeur.
    La question est comment le faire et comment exploiter les données.
    Si vous avez des conseils ou tuto.
    D’avance merci.
    Serge

    • Marcos83 dit :

      Je reprend le dernier post d’André à ce sujet. Voici le. Copier/coller de son post.
      « La version 4 du routeur UxI et Linky, que je pense publier dans les jours à venir, aura le capteur de température et la découverte automatique dans HA. »
      Cdlt.

      • Marcos83 dit :

        Sinon. Dans Home Assistant, Vous allez dans paramètres et vous sélectionnez « appareils et services ». Ensuite vous cliquez sur « ajouter une intégration » et vous cherchez « mosquitto ». Installez le et laissez les paramètres par défaut. Vous pouvez trouver des tas de tutos sur le web pour connecter core mosquitto intégré dans home assistant. Je vous conseille de créer un utilisateur supplémentaire dans home assistant qui servira uniquement à connecter l’ESP32 à MQTT mosquitto. Pour ça: Paramètres > personnes> utilisateur. (Par exemple « utilisateurMQTT » et un mot de passe Cela évite d’utiliser votre login et mdp qui vous servent à vous connecter à home assistant.
        Voici un lien de l’aide home assistant (en anglais).
        https://www.home-assistant.io/integrations/mqtt/
        Cdlt.

        • Serge+11 dit :

          Merci pour votre réponse.
          Je vais patienter jusqu’à la version intégrant HA dans la config.
          Personne n’a remarqué que le dimmer ce lâche sur la puissance délivrée avec des pics dépassant la puissance disponible sur les PV?

          • F1ATB André dit :

            Le bug des valeurs parfois hors échelle a été corrigé dans la version 3.03. Normalement depuis, c’est OK.
            Cdlt

  24. Dum03800 dit :

    bonjour, dans un premier temps je tiens vraiment à vous féliciter pour le travail réalisé.
    cela fait un mois que j’utilise votre montage pour chauffer mon chauffe-eau avec mon surplus solaire. cependant j’ai régulièrement un probleme, je n’arrive plus à accéder au module par l’adresse IP fixe que j’ai configuré, je suis obligé de presser le bouton reset pour que je puisse de nouveau y accéder. avez vous déjà était confronté à ce problème. Merci d’avance de votre aide. cordialement.

    • F1ATB André dit :

      Sur les 3 routeurs chez moi, un me fait ce genre de blague. En fait c’est le niveau du Wifi qui est bas et la communication se bloque. Le logiciel teste la présence du Wifi. En cas de non connexion au bout de plusieurs minutes, l’ESP32 se reset tout seul. Dans la dernière version V4, à publier prochainement, j’ai réduit le temps à environ 1mn pour se reseter.

      Cdlt

      • Dum03800 dit :

        bonjour, sur mon routeur même après plusieurs heures l’esp32 ne se reset pas. je suis obligé de le faire manuellement. question, pendant ce laps de temps que je n’ai pas accès à l’interface est ce que le module continue de charger mon chauffe eau en pilotant le triac ?? Merci

  25. Serge+11 dit :

    Bonjour,
    Sur la version 2, j’ai intégrer un petit écran OLED qui affiche PW, Ief et % ouverture triac avec un bouton poussoir et une tempo pour affichage dans une boucle IF; ELSE dans le LOOP. les définitions étant en début de programme après les librairies.
    Cela fonctionne très bien avec la V2 UxI, mais je n’arrive pas à l’intégrer dans la V3.4. Il me donne a chaque fois l’erreur:
     » I:\Arduino pour ESP32\skechs\RouteurSolaire_V_3_03_UxI_Serge_OLED\RouteurSolaire_V_3_03_UxI_Serge_OLED.ino:545:3: error: expected unqualified-id before ‘if’
    if (buttonState == LOW) {
    ^~

    exit status 1

    Compilation error: expected unqualified-id before ‘if’ « .
    Le bouton est bien déclaré en début de programme: « int buttonState = 0; ».
    Est sur la V2 ça fonctionne!
    J’ai positionné la boucle à différents endroits dans la LOOP mais toujours le même résultat.
    Si vous avez une idée pour résoudre mon problème.
    Merci d’avance.

    • F1ATB André dit :

      Essayez
      if (buttonState == 0) {

      • Serge+11 dit :

        Même erreur avec :I:\Arduino pour ESP32\skechs\RouteurSolaire_V_3_03_UxI_Serge_OLED\RouteurSolaire_V_3_03_UxI_Serge_OLED.ino:545:3: error: expected unqualified-id before ‘if’
        if (buttonState == 0) {
        ^~

        exit status 1

        Compilation error: expected unqualified-id before ‘if’

        • F1ATB André dit :

          La ligne précédente, il ne manque pas un ;

          • Serge+11 dit :

            A priori non.
            Ci dessous mes lignes de programme que j’ai intercalées dans votre programme:
            En fin de déclaration des librairies:
             »
            #include // pour OLED

            #define SCREEN_WIDTH 128 // OLED display largeur, en pixels
            #define SCREEN_HEIGHT 64 // OLED display hauteur, en pixels
            #define OLED_RESET -1 // Reset pin # (or -1 if sharing Arduino reset pin)
            #define SCREEN_ADDRESS 0x3C ///= 0; compteur–) // ici on compte à rebours, en décrémentant le compteur
            {
            display.clearDisplay();
            display.setTextSize(1); // Normal 1:1 pixel scale
            display.setTextColor(SSD1306_WHITE); // Draw white text
            display.setCursor(0, 0);
            display.print( » Rout.: « );
            display.println(WiFi.localIP());
            display.setCursor(0, 15);
            display.setTextSize(2);
            display.print(« P : « );
            display.println(int(PW));
            display.print(« I : »);
            display.println(Ief);
            display.print(« % : »);
            display.println(100-retardF);

            display.display();
            }
            } else {
            display.clearDisplay();
            display.display();
            }
            …..
             »
            Ces lignes fonctionnent avec la version 2 !!! ???

          • F1ATB André dit :

            Déjà en première ligne il y a une erreur
            #include et rien derriere..
            Cdlt

          • Serge+11 dit :

            Oups, erreur de copie:

            la première ligne:
            #include // pour OLED

  26. ROUX Jean claude dit :

    Bonjour.
    Simplement un petit message pour remercier Seb (voir plus haut) pour l’envoi sans contrepartie du PCB de ce routeur.

  27. AB dit :

    Bonjour,
    Merci beaucoup André d’avoir partagé ce projet. Ce tuto est très complet, et j’imagine que le développement software et la validation ont dû vous prendre beaucoup de temps.
    Le résultat est au rdv: mon routeur fonctionne depuis 3 semaines et fait très bien le boulot. Le serveur web permet une très bonne supervision.

    Concernant la partie hardware, j’ai ajouté 3 éléments:
    un fusible 500mA et un convertisseur 230Vac 5Vdc 1A référence Hi Link HLK-5M05 (Aliexpress)
    une capa céramique 4,7uF entre la pin 3,3V et GND sur la carte dimmer

    J’ai juste un petit problème non résolu pour le moment: une chute de temps en temps sur la mesure de tension qui n’existe pas sur le réseau. Le sujet a déjà été abordé plus haut, je vais d’ailleurs répondre à Christophe.
    Le changement du transfo et de l’ESP n’ont rien donné et les tensions sont stables.
    Pensez-vous qu’il puisse y avoir un bug du côté de l’ADC, Vréf interne ou clock instable par exemple ?
    Cdlt

  28. lemoine dit :

    Bonjour André,

    merci pour votre partage, encore l’entraide de nos jours cela fait du bien.

    je rencontre un souci sur mes courbes, qui selon moi vient du montage.
    Sur la page « Données Brute » ma courbe de tension (U) sur les premières 10ms est à 0 et les 10ms suivante sont en courbe négative, j’ai vérifier mes condos ils sont bien raccordé.
    Auriez vous une idée, sinon je referais tout mon câblage dans le doute.
    Du coup ma consommation lu est très différente du Linky (pour moi normale du coup).

    Un grand merci pour votre échange de savoir.
    bien à vous

  29. Haeflinger Patrick dit :

    Bonjour André, je viens de lire dans un de vos commentaire que dans laV4 vous alliez introduire la découverte automatique pour HA. Je viens de faire cela aussi dans ma version dérivée de la votre et cela fonctionne très bien, et du coup comme Domoticz supporte l’auto Discovery il est tout à fait possible de supporter d’une façon spéciale Domoticz dans la page de « Paramètres ». Qu’en pensez vous ?

  30. Haeflinger Patrick dit :

    André dans mon message précédent je voulais dire en fait qu’il n’était plus nécessaire de supporter séparément Domoticz si on dispose de l’auto discovery HA

    • F1ATB André dit :

      Non pas essayé avec mon système et je ne sais pas s’il donne le sens de la puissance. Certains modules de ce type ne fournissent pas le sens du transfert.

      Cdlt

  31. yannick dit :

    Bonsoir je trouve que vos projets sont très intéressants. Je voudrais réaliser un routeur off grid. mon installation actuelle est composée de panneaux solaires d’un onduleur hybride et d’un inverseur de source (chinois) et de 2 batteries. Quand les batteries sont pleines et que la consommation d’électricité n’est pas suffisante, l’alarme de surproduction se déclenche et l’inverseur me fait passer sur enedis. Pour éviter ça je voudrais réaliser un routeur pour utiliser cette surproduction pour faire chauffer mon ballon d’eau chaude. je voudrais savoir comment faire. merci d:avance pour votre réponse.

    • F1ATB André dit :

      Vous mettez le routeur à l’entrée de la maison. Quand votre système passe en surproduction et envoi vers Enedis, le routeur rentrera en action et alimentera le chauffe-eau.

      Cdlt

  32. yannick dit :

    Merci pour la réponse. Je vais faire ça et je vais tester

    Bon dimanche

  33. yannick dit :

    Désolé j’ai oublié de demander si la version de routeur présentée dans ce post est la plus adaptée à mon projet. Merci d’avance.

  34. varin olivier dit :

    Bonjour André. merci pour le partage. ça fait deux jours que j’essaye de programmer l’esp 32. a chaque fois que je compil il y a des erreurs. J’ai corrigé le bug dans remote debug, et j’ai relancé une compilation. voici ce qu’il me donne:
    C:\Users\olivier\Documents\Arduino\RouteurSolaire_V_3_04_UxI\RouteurSolaire_V_3_04_UxI.ino:58:
    C:\Users\olivier\Documents\Arduino\RouteurSolaire_V_3_04_UxI\pageHtmlBrute.h:4:13: error: redefinition of ‘const char* PageBrute’
    const char *PageBrute = R »====(
    ………
    raries\RouteurSolaire_V_3_04_UxI/Actions.h:4:7: note: previous definition of ‘class Action’
    class Action {
    ^~~~~~
    la çà me depasse. si vous aviez un peut de temps pour regarder…. je suis debutant mais super intéressé.

  35. Arno dit :

    Bonjour
    je continue mon installation du routeur solaire je n ai que la partie mesure car le triac a été remplacé dans mon colis par une vis??
    Quelle est la fonction en mode continue des leds ?
    je simule l’injection ou la consommation avec une bouilloire mais je n’ai dans ces deux cas que la led rouge qui clignote.
    est ce normal
    cordialement arno

  36. Dum03800 dit :

    bonjour, sur mon routeur même après plusieurs heures l’esp32 ne se reset pas en cas de perte du wifi. je suis obligé de le faire manuellement. question, pendant ce laps de temps que je n’ai pas accès à l’interface est ce que le module continue de charger mon chauffe eau en pilotant le triac ?? Merci

  37. Mathieu dit :

    Bonsoir,
    En premier lieu un grand bravo pour toutes les réalisations d’André.
    J’ai découvert se routeur par l’intermédiaire d’une personne avec qui je communique par mail par rapport au MaxPV.
    J’ai donc décidé de passé au UxI et pas au UxIx2 parce que je suis avec un CE qui est installé dans la salle de bain à une bonne dizaine de mètres du tableau électrique.
    J’ai décidé de faire un PCB à l’ancienne, dessin fait sous Designer, un calque avec l’imprimante, etc… je ne sais pas faire avec la procédure plus pro. trop compliqué pour moi.
    Actuellement pour le SSR j’ai coupé le neutre, j ‘ai compris que j’allais devoir modifier, et passer sur la phase, les Wagos sont la pour ça!!!!…..
    Je compte garder ma gestion de la température de l’eau du CE si le soleil n’est pas au rendez vous, pour ça j’utilise un thermostat avec une sonde 3 fils PT100 (cette sonde est dans le même doigt de gant que celle du thermostat électronique du CE)
    Ci-joint le lien de mon câblage: https://www.cjoint.com/c/MKvr0Z4BoSU
    Et du dessin de mon PCB: https://www.cjoint.com/c/MKvr56gQeiU
    Si vous voyez des choses qui ne sont pas cohérentes,n, je suis tout ouï
    Avec mes remerciements.
    Jean

  38. Mathieu dit :

    Bonjour André,
    Merci pour le coup d’œil sur se que j’ai fait, pour le moment je ne vais pas réaliser le PCB, je préfère attendre d’avoir tous les composants, pour éventuellement retoucher mon dessin du PCB.
    En attendant j’essaie de m’imprégner de tout ça, j’ai téléchargé le firmware UxI_V_3.04, je vois qu’il y a deux fichiers *.ino,
    RouteurSolaire_V_3_04_UxI.ino et Stockage.ino, pour le moment je n’ai pas trouvé « le pourquoi » il y a deux fichiers, je viens de les ouvrir tout les deux, ça me semble être les mêmes firmwares, bon, André a la réponse.

    Dans IDE Arduino, il semblerait que la bonne carte soit ESP Dev Module (à confirmer) du moins je n’ai pas d’erreur sur le choix de celle-ci, par contre je vais devoir mettre à jour mes libraries.

    Pour RemoteDebug, c’est OK, par contre avec NTP Client, je n’arrive pas à trouver le bon fichier.zip, j’ai trouvé la réponse ici: https://randomnerdtutorials.com/esp32-ntp-client-date-time-arduino-ide/
    J’ai passé l’étape des libraries, mais il y a ça qui ne va pas:

    Arduino : 1.8.16 (Windows 10), Carte : « ESP32 Dev Module, Disabled, Disabled, Default 4MB with spiffs (1.2MB APP/1.5MB SPIFFS), 240MHz (WiFi/BT), QIO, 80MHz, 4MB (32Mb), 921600, Core 1, Core 1, None, Disabled »

    C:\Users\Le Jeannot\Documents\Arduino\libraries\libraries\RemoteDebug-master\src\utility\WebSockets.cpp:42:10: fatal error: hwcrypto/sha.h: No such file or directory

    Plusieurs bibliothèque trouvées pour « WiFi.h »

    #include

    ^~~~~~~~~~~~~~~~
    Utilisé : C:\Users\Le Jeannot\AppData\Local\Arduino15\packages\esp32\hardware\esp32\2.0.11\libraries\WiFi
    compilation terminated.
    Non utilisé : C:\Program Files (x86)\Arduino\libraries\WiFi
    exit status 1
    Erreur de compilation pour la carte ESP32 Dev Module

    Ce rapport pourrait être plus détaillé avec
    l’option « Afficher les résultats détaillés de la compilation »
    activée dans Fichier -> Préférences. (je n’ai pas cette option sur mon IDE Arduino 1.8.16)

    Là, je dois avouer que pour moi c’est du chinois, IDE Arduino n’est pas du tout ma tasse thé!!!!….

    Je vais continuer à potasser tout ça.

    Bonne journée André et merci pour l’aide.

    Cordialement

    Jean

  39. Mathieu dit :

    Bonjour André,

    Voilà mon PCB, j’avais oublié un fusible sur l’entrée 220V, j’ai uni les borniers qui sont pour le gradateur/triac, j’ai vu qu’avec un montage débrochable pour l’ESP32 la prise USB passera au dessus des borniers;
    https://www.cjoint.com/doc/23_11/MKwkNrUlbtU_PCB-F1AT-UxI.png
    Jean

  40. Mathieu dit :

    OK, merci André, je vous tiens au courant.

    Dans le cas ou envisagerais le routeur UxIx2 et au regard que mon CE se trouve dans la salle de bain et lion du tableau électrique (~10m) côté CE, je mets le gradateur/triac et côté tableau électrique l’ESP32 plus le JSY_MK_194T, est ce que ça poserait au problème que je passe un fil 2,5 qui irait de mon tableau au gradateur/triac tout en passant au travers du JSY

    Je sais que ça représente du travail, car si je choisis cette solution je vais devoir passer un fil en aller/retour et sous gaine de la salle de bain au tableau électrique, j’ai fait ça pour passer deux câbles, un pour la PT100 et l’autre pour le SSR, à 77 balais ça calme!!!!….. bref, ça demande réflexion.

    Jean

    • F1ATB André dit :

      Passez le fil en allez et retour ne pose pas de problème, sauf la pose.
      Autre solution, c’est de mettre un deuxieème ESP près du chauffe eau et passer le fil d’alimentatin generale du chauffe-eau présent au tableau dans la bobine du premier ESP.

  41. Mathieu dit :

    Bonsoir André,
    Je commence à réfléchir au câblage entre mon CE thermostat électronique et le gradateur/triac plus un contacteur pour l’HC, je dois dire que je sèche un peu.
    Un aperçu: https://www.cjoint.com/c/MKwrr2E7wAU

    Jean

  42. Mathieu dit :

    André,
    De « jongler » avec les ESP32 c’est pas trop mon truc, mais bon avec de l’aide je devrais y arriver, dans ma petite tête j’ai du mal à voir le principe avec deux ESP32, je viens de faire se dessin, reste toujours une interrogation au niveau du thermostat électronique du CE, j’ai les fils qui viennent du thermostat qui sont « en l’air » je dois avouer que là ???….. je suis dans l’impasse aussi bien pour la solution UxI ou que pour la UxIx2
    https://www.cjoint.com/c/MKwr15rEJ8U
    Jean

  43. Mathieu dit :

    OK André, je suis d’accord pour que le thermostat assure ça fonction, je viens de trouver peut être une réponse à mes soucis de câblage ici: https://forum-photovoltaique.fr/viewtopic.php?f=110&t=67337 Restera à voir le câblage avec deux ESP32
    https://www.cjoint.com/c/MKwuldKsbSU
    Bonne soirée à vous.
    Jean

  44. Mathieu dit :

    Bonsoir André,

    Je viens de terminer (où pas!!!…) mon schéma de câblage pour le routeur UxIx2, avec un seul ESP32, j’ai volontairement « zappé » le passage de la phase de dans la ferrite du JSY, je vais perdre les Watts de routage, mais ça m’évite de passer un fil 2.5 mm2 en aller/retour.
    Je garde ma gestion de complément de chauffe en HC, si le routeur pour une raison « X » s’arrête, j’ai se système qui m’assure une chauffe en HC, de plus c’est déjà en place.

    https://www.cjoint.com/c/MKypeMLW1dU

    Là ou je souhaite une attention particulière c’est surtout sur se que fait par rapport aux deux relais (un R2 NO/NF et R1 NF/NF)

    Pour info. j’ai installé IDE Arduino 2.2.1, me reste à voir se qu’il va me dire, pour le moment ça me demande des libraries qui manquent.

    Avec mes remerciements.

    Bon week-end à vous.

    Jean

  45. Mathieu dit :

    Bonjour André,

    Merci pour votre réponse, si ça vous semble correcte, ça me rassure, c’est mieux si ça ne fume pas!!!….

    J’ai également soumis mon schéma sur le forumphotovoltaique, une personne a soulevé une interrogation au sujet de la distance (environ 10m) que j’ai entre mon tableau électrique et mon CE qui est dans la salle de bain, à propos de la liaison 4 fils du gradateur/triac vers l’ESP32 qui lui est à côté du tableau électrique.

    Pour info. je suis avec du câbles 5 fils blindés, mais je vais peut être passer un câble RJ45 classe 4

    Avec mes remerciements.

    Bonne journée à vous.

    Jean

  46. Mathieu dit :

    André,
    Je viens de voir une petite confusion avec RX/TX du JSY vers les entrées GPIO26/RX et GPIO27/TX (lignes 69/70 du firmware 5.10) ici: https://f1atb.fr/index.php/fr/2023/10/06/capteur-uxix2-pour-routeur-photovoltaique/
    les lignes sur le schéma se croisent alors quelles ne le devraient pas, en image:
    https://www.cjoint.com/c/MKzjnOwKHoU
    Jean

    • F1ATB André dit :

      Non c’est normal. Voir la page: Raccordement à l’ESP32
      Le module de mesure se connecte en 3.3V. La liaison série entre le module et l’ESP32 s’effectue 4800 bauds suivant le protocole MODBUS. La broche TX de l’un se connecte au RX de l’autre.

      TX veut dire émetteur, RX veut dire récepteur. L’émetteur de l’u se connecte au récepteur de l’autre pour échanger des messages dans les 2 sens.
      Cdlt

  47. Mathieu dit :

    OK, André,

    Vous ne me dites pas pour mon premier message d’aujourd’hui à 9h13 ,c’est à propos de la distance qui me sépare du gradateur/triac (salle de bain) au ESP32 qui lui est à côté du tableau électrique (en bonne dizaine de mètres)

    Jean

Laisser un commentaire

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