Réalisez un Routeur Solaire pour gérer la surproduction

Version V2
Remplacé par la version V8
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 stocker cet excédent est de l’envoyer au chauffe-eau électrique.

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 il est fréquent de n’avoir que quelque centaines de watts disponibles et non pas la puissance de 2400 w que demande la résistance du chauffe-eau en branchement classique.

Exemple de régulation. Puissance consommée -16W, ouverture 76 % du temps vers le chauffe-eau.

Tableau des Versions

Différentes versions de routeur ont été décrites :

VersionMesure courant / puissanceActionneursModulaireDomoticzMQTT / Home AssistantDescription
1Sonde AmpèremétriqueRelaisNonOuiNonRouteur Solaire. Mesure de Puissance avec un ESP32
2Sonde AmpèremétriqueTriac + RelaisNonOuiNonRéalisez un Routeur Solaire pour gérer la surproduction
3.04_UxISonde AmpèremétriqueTriac + RelaisOuiOuiOuiU x I : Routeur Solaire pour gérer la surproduction photovoltaïque
3.10 LinkyLinkyTriac + RelaisOuiOuiOuiRéalisez un Routeur Solaire avec un Linky

Ici, nous allons réaliser un système qui envoi uniquement la puissance excédentaire au chauffe-eau 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. Ce système ne fonctionne que pour les chauffe-eaux électriques classiques dans lesquels se trouve une résistance électrique et un thermostat électro-mécanique pour contrôler la température.

Schéma du routage de l’énergie excédentaire vers un Chauffe-Eau

Le routeur solaire agit comme une vanne qui s’ouvre pour laisser passer la surproduction en surveillant le courant en entrée de la maison afin qu’il soit nul.

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 nous allons mesurer la tension générée.

Il existe différents modèles suivant le courant Max que l’on souhaite mesurer. La version 100A est adaptée à un domicile ayant une puissance max délivrée de 12kVA. On la trouve en Chine chez Aliexpress.

Capteur de la tension

Pour savoir si de l’énergie rentre ou sort de la maison, il faut de même mesurer la tension électrique. C’est en comparant la phase du courant I et de la tension U que l’on connaitra le sens du transfert d’énergie.

Transformateur 220V/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.

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 sous-dimensionné sachant qu’il devra fonctionner pendant plusieurs heures. Rajoutez des éléments d’aluminium ou remplacez-le par un plus-grand. De même les 2 pistes entre le connecteur 230V et le Triac sont un peu faibles. On peut, en rajout, souder une couche de fil de cuivre.

En plus d’un gradateur, on peut rajouter en option 1 ou 2 relais solide pour actionner d’autres dispositifs si besoin.

Présentation de la réalisation matérielle

Mesure Courant et Tension

La mesure des 2 tensions représentantes du courant et le la tension secteur se fait par les entrées analogiques de l’ESP32. Ces entrées acceptent une tension positive entre 0 et 3.3V et numérisent la valeur sur 12 bits, valeurs entre 0 et 4095. Pour s’adapter à la dynamique d’entrée, on crée une référence de tension au milieu de la plage à 1.65V =3.3V/2 à laquelle on rajoutera la tension en sortie du transformateur et de la sonde de courant.

On prélève le 3.3V de l’ESP32 qui en passant par un pont de 2 résistances (R6 et R7) de 4700 ohm connecté à la masse nous fourni au milieu une référence de 1.65V. Pour éviter du bruit de mesure, un condensateur de 470uF (C2) filtre le 3.3V et un autre de 10uF (C1) filtre le point milieu à 1.65V.

Afin de ne pas dépasser les 3.3V crête à crête des signaux à mesurer, ou 1.65V crête, on se fixe une limite de +-1V efficace maximum.

Pour la sonde de courant avec 80A et une résistance de 24 ohm , on arrive à peu près au 1V crête à crête.

24*80A/2000=0.96V efficcace ou 1.36V crête à crête.

Ainsi la tension à mesurer sera dans la plage 1.65V +/- 1.36V.

Chez moi, avec un abonnement de 12KVA, je ne devrai pas dépasser les 60A.

Pour la mesure de tension, il faut mettre un pont de résistances (R4 et R5) pour abaisser le 6V autour de 1V efficace et avoir ainsi un signal à mesurer entre 1.65V +/- 1.41V. Si la courbe rouge de tension sur l’affichage est plate en haut et en bas, il faut augmenter R4 ou diminuer R5.

Raccordement à l’ESP32

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

Le jeu de piste avec ces cartes qui intègrent un ESP32, est de trouver les GPIO disponibles et non utilisés pour la programmation Flash etc.
Dans notre cas, on mesure les tensions suivantes:
– GPIO 35 : la tension de référence à 1.65V en théorie.
– GPIO 32 : la tension en sortie du transformateur réduite par le pont de résistances R4 et R5
– GPIO 33 : la tension représentant le courant à mesurer

2 LED sur les GPIO 18 et 19 clignotent toutes les 2s. La jaune si on consomme du courant, la verte si on fournit du courant, car nous sommes en surproduction.

La commande du gradateur se fait via le GPIO22 et la lecture de l’impulsion du passage à zéro « Zero Crossing » de la tension secteur sur le GPIO23. Cette impulsion est essentielle pour se synchroniser avec le secteur.

En option, on peut par exemple, connecter un relais solide pilotable en 3.3V au GPIO5.

Timing

Ouverture du Triac 50% du temps

Le signal « Zero Crossing » sert de synchronisation au micro-contrôleur pour ouvrir le Triac entre 0 et 100% du temps d’une demi-période de 10 ms suivant le niveau d’énergie à transférer au chauffe-eau.

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 signal « Zero Crossing » du gradateur. Il passe à 1 durant 500 µs toutes les 10 ms lorsque la tension en 230v est nulle.

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 φ

Calibration

Un calibrage préalable doit être fait pour définir la constante multiplicative kV dans le programme qui permet la conversion de la tension mesurée en binaire vers la tension réelle. De même pour le courant, la constante kI . Utilisez un voltmètre, une pince ampèremétrique ou votre compteur Linky pour la calibration.

Tension en sortie du transformateur trop élevée. Courbe plate en haut et en bas. Il faut augmenter R4 ou diminuer R5.

Suivant le transformateur servant à la mesure de tension, il peut y avoir des ajustements à faire. Si la courbe rouge de tension est une belle sinusoïde, ne changez pas R4 et R5. Si la courbe est plate en haut ou en bas, il faut augmenter R4 ou baisser R5.

Ensuite, commencer par mesurer avec un voltmètre la tension exacte du secteur. Par exemple, si la valeur affichée par le montage est 10% en dessous de votre mesure, augmentez la valeur de kV de 10%. Pour le courant, si vous n’avez pas de pince ampèremétrique, utilisez le Linky qui affiche la puissance apparente de VA. Comparez avec la valeur donnée par le système et augmentez ou diminuez en conséquence la valeur de kI.

La convention prise est d’avoir Pw positif si l’on consomme du courant en provenance d’Enedis et Pw négatif en cas de surproduction. En cas d’inversion du signe, tournez d’un demi-tour la sonde de courant sur la phase du secteur ou inversez les fils.

Taux de distorsion harmonique

À la demande de réalisateurs de la version 1 du système, j’ai rajouté le « Taux de distorsion harmonique ». THD. C’est un peu technique, vous pouvez sauter ce paragraphe….

THD + N pour la tension et le courant


Une tension et un courant idéals sont définis par une forme sinusoïdale parfaite à 50 Hz. En pratique, les appareils (type alimentations à découpage ou autres) introduisent des courants non sinusoïdaux générant de nombreuses harmoniques à 100 Hz, 150 Hz, 200 Hz, 250 Hz……et perturbent le fonctionnement des générateurs, transformateurs etc. Le THD va mesurer l’énergie contenue dans les harmoniques (Énergie totale – Énergie du signal à 50 Hz) par rapport à l’énergie principale et donner un pourcentage.
0% = une sinusoïde parfaite à 50 Hz,
100% = toute l’énergie se trouve dans les harmoniques

Ici, pour des simplicités de calcul, le résultat inclus l’énergie du bruit N en plus des harmoniques.

Exemples harmoniques

Ci-dessous trois cas de consommation/production. Le point de mesure est au niveau du compteur de la maison. Attention les échelles en verticale ne sont pas les mêmes. Les courbes sont toujours calées au max du graphique.

Le courant en vert est fortement non sinusoïdal, la consommation de 556 W est un exemple de ce qui tourne dans la maison avec probablement beaucoup d’alimentations à découpage qui génèrent cette forme de courant.

Pas de production photovoltaïque (PV) et pas de Triac

Triac = ouvert à 0%

PV = 0 W

I = 3.05A

PW = 556W

PVA= 752 VA

THDI+N= 42%

Le courant est très chahuté, mais l’échange avec le monde extérieur est faible 12W. La régulation par le Triac est en cours. C’est le résultat d’une consommation importante non sinusoïdale (2400W) et de la réponse des onduleurs.

Régulation avec le Triac pour amener autour de zéro la consommation en W

Triac = ouvert à 60%

PV = 2400 W

I = 2.12 A

PW = 12 W

PVA = 522 W

THDI = 99%

Ici en légère surproduction, le Triac est ouvert à 100%, il ne génère plus un courant non sinusoïdal, mais la consommation totale (2739W) non sinusoïdale de la maison se fait toujours sentir. Avec plus de charges résistives consommatrices comme du chauffage, on peut retrouver un sinus en courant comme la tension.

Surproduction

Triac = 100%

PV =3000W

I = 1.89A

PW = -261W

PVA = 469 VA

THDI+N = 53%

Fonctionnement

Toutes les 40 ms, la tension et le courant sont mesurés sur 100 points durant 20 ms. Si la puissance active Pw est orientée vers le réseau public (Pw<0), le triac s’ouvre un peu plus pour favoriser le transfert vers le chauffe-eau. Ceci est répété jusqu’à atteindre le point d’équilibre ou Pw est proche de zéro.

Si la température est atteinte, le thermostat du chauffe-eau coupe l’alimentation de la résistance. Dans ce cas, le routeur va ouvrir au maximum le triac, mais aucune surproduction ne sera consommé. La valeur Pw va devenir fortement négative, du niveau de la surproduction. À partir d’une certaine valeur, on peut activer (en option) un relais pour consommer sur un autre appareil. On l’arrête si la surproduction cesse. Attention d’avoir une différence entre le seuil d’enclenchement et d’arrêt supérieur à la consommation de l’appareil afin de ne pas avoir une entrée en oscillation du relais.

La nuit, si le niveau de chauffe du ballon n’est pas atteint, on laisse le relais Jour/Nuit d’Enedis prendre le relais (s’il est conservé) ou l’on peut programmer le routeur pour qu’il ouvre le Triac (23h à 4h en hiver). Le routeur prend l’heure sur le réseau internet. Attention, en cas de coupure d’internet, il risque de se désynchroniser. Mettre une plage horaire d’activation qui couvre l’horaire d’hiver et d’été pour éviter les mises à l’heure.

Dans le code source, vous trouverez un reporting vers le système Domoticz. C’est un exemple, en option, pour envoyer des données vers l’extérieur si besoin. Si vous ne le souhaitez pas, passez en commentaire la ligne 435 :
// SendToDomoticz();
Si vous l’utilisez, mettez à jour les paramètres de votre serveur Domoticz autour de la ligne 90.

Dans un souci de simplification, j’ai limité à l’essentiel les fonctionnalités. Les personnes à l’aise dans la programmation peuvent rajouter d’autres Triacs ou relais. De même, il est possible de rajouter une sonde de courant de 20A pour mesurer et afficher le courant envoyé au chauffe-eau.

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 de l’ESP32 dans le champ d’adresse de votre navigateur web.

Tableau des mesures
Courbes Tension et Courant vers le chauffe-eau

En mode « Auto », le système ajuste l’injection vers le chauffe-eau afin de ne plus envoyer de la surproduction vers le monde extérieur. On peut forcer, à la main, d’autres niveaux d’injection.

Il est possible d’afficher à distance ces mêmes informations sur un petit écran défini ici: https://f1atb.fr/affichage-a-distance-consommation-ou-surproduction-electrique/

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

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

Dans le schéma ci-dessous, on garde le contacteur Jour/Nuit et on installe en parallèle le routeur.
Remarque: le routeur ne coupe pas le neutre mais la phase uniquement.

Schéma de principe contacteur et routeur en parallèle

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 comme décrit 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 3 fichiers installés dans le même dossier :
– le fichier principal SolarRouter_v2.ino
– le fichier PageWebb.cpp qui contient le code HTML et Javascript de la page web
– le fichier PageWeb.h de déclaration

Le code source est disponible ici:

Dezipper l’ensemble et ouvrez dans l’IDE Arduino (version 2.xx) le fichier SolarRouter_v2.01.ino.
Vérifiez que vous avez les bibliothèques installées sur votre IDE Arduino :
– RemoteDebug
– NTPClient
Pour la compilation du fichier SolarRouter_v2.01.ino, veuillez sélectionner la carte ESP32 Dev Module. Avec certaines cartes, si le téléversement du code dans l’ESP32 ne se fait pas, il faut presser sur le bouton boot au début de la tentative de téléversement.

Personnalisation

Il est nécessaire de modifier les premières lignes du code afin de donner à l’ESP32 les caractéristiques de votre réseau ethernet à la maison.

//WIFI
const char* ssid = "nom_du_reseau_wifi"; //Put here your WIFI SSID
const char* password = "12345678"; //Put here the WIFI password
// Set your Static IP address
IPAddress local_IP(192, 168, 0, 208);
// Set your Gateway IP address
IPAddress gateway(192, 168, 0, 254);
IPAddress subnet(255, 255, 255, 0);
IPAddress primaryDNS(8, 8, 8, 8);    //optional
IPAddress secondaryDNS(8, 8, 4, 4);  //optional

À la première ligne, mettez le nom de votre réseau Wifi auquel l’ESP32 devra se connecter.

À la deuxième ligne, mettez le mot de passe de votre réseau Wifi.

Il faut ensuite donner une adresse IP (IPAddress local_IP) à votre ESP32 (c’est comme un numéro de téléphone). En général, les box internet ont un champ d’adresses dynamiques (qui peuvent changer à tout moment) qu’elles attribuent lorsque que quelqu’un se connecte au WIFI. Si c’est votre smartphone, c’est parfait, vous ne cherchez pas à communiquer avec lui. Pour l’ESP, il faut lui attribuer une adresse fixe. En allant 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. Souvent 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. C’est ce qui est traduit par le masque subnet (255,255,255,0) qui dit que les 3 premiers chiffres sont fixes sur le réseau et le dernier peut changer d’une machine à l’autre.

Toutes ces adresses sont au format IPV4, ancien format bien pratique mais qui sature et est en cours de remplacement par IPV6. Si vous avez un PC sous windows, tapez cmd dans le moteur de recherche en bas, puis dans la page à fond noir vous tapez ipconfig . Vous en saurez un peu plus sur votre réseau et l’adresse IP de votre PC

Les primaryDNS et secondaryDNS correspondent aux « Domain Name Server » ceux qui veut dire les serveurs d’annuaires. Quand vous tapez une adresse http://ToTo.com, ces serveurs convertissent le nom en adresse IP, seule compréhensible par les machines. Ainsi votre ESP quand il doit chercher l’heure chez « fr.pool.ntp.org », il peut trouver un serveur. Ne les changé pas.

Forçage de nuit

Le code comprend un forçage de nuit de 23h à 4h. Si vous voulez le retirer, passez le en commentaire en mettant en début de ligne //

//if (hour >= 23 || hour <= 4) {               //Force water Heater ....
//    ModeHeater = 5;
//    retard = 0;
//    retardF = 0;
//  }
// if (LastHour == 4 && hour == 5) { ModeHeater = 0; }  // Back to Automatic mode

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/

L’IDE Arduino va vous demander un mot de passe lors de la compilation. Répondez n’importe quoi, 1 lettre minimum.

Parfois avec l’IDE Arduino en fin de transfert, l’icone reste jaune et vous n’avez plus la main. Fermez l’IDE et le relancer.

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.

Diagramme fonctionnel

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.

Toutes les 40ms et durant 20ms, 100 valeurs de tensions et 100 valeurs de courants sont prélevés et stockés. Ensuite, les calculs de puissance sont effectués et peuvent être envoyés au client web qui les demande.

Présentation du logiciel

Heure de la douche

Maintenant que vous avez je l’espère bien compris le fonctionnement, vous remarquerez qu’il faut prendre sa douche le matin les jours de grand soleil afin de profiter de la surproduction à midi.

Exemple de routage

Dans cet exemple, il y a une légère surproduction. L’ouverture du triac vers le chauffe-eau est de 76% du temps. Le système se régule pour avoir une puissance échangée avec le réseau public autour de 0 (ici -16W). Sur une durée de sinusoïde de 20 ms, on a des périodes en orange où l’on consomme (produit U*I >0) sur le réseau public et des périodes en vert (produit U*I<0) où l’on injecte sur le réseau. Le somme des 100 mesures du produit U*I sur la période de 20 ms donne un résultat proche de zéro (-16 W). 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 (776 VA).

Cette courbe est chahutée pour 2 raisons :
– le triac n’est ouvert que 76% du temps. Dans une demi-période de 10 ms, on envoie du courant au chauffe-eau en dents de scie (voir courbe ci-dessus) ce qui se traduit à l’entrée de la maison par des phases de consommation et d’injection suivant la réponse des onduleurs. Avec un bilan de puissance active (W) proche de zéro
– nombre d’appareils (comme les chargeurs, les alimentations d’appareils électroniques.) ne consomment pas un courant sinusoïdal et cela ressort plus lorsqu’il n’y a pas une grosse charge résistive qui consomme.

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

871 réponses

  1. Serge 11 dit :

    Bonjour,
    Je viens de finaliser mon montage que je ne peux tester que partiellement, mon fournisseur de kit est toujours en retard pour livrer le coffret de protection AC / DC.
    Je ne manquerai pas de vous informer des résultats.
    En attendant, j’en profite pour fignoler mon dossier pour archivage et souhaite mettre à jour le schéma avec les modifications que j’ai apporté.
    Quel programme utilisez vous pour le schéma de raccordement (cf:Schéma électrique – ESP32 Development Board 2*19 pins)?
    D’avance merci.
    Serge

  2. olivier labatut dit :

    Bonjour André,

    Merci de votre projet partagé, du code C++ et du shéma de montage !

    Grâce à vos explications j’ai pu me lancer et réaliser ce routeur de surplus alors que je suis débutant en électronique.
    Tout fonctionne très bien !
    J’aime entendre mon chauffe-eau grésiller doucement quand le soleil brille !
    J’ai ajouté un petit ventilateur 5v sur le Triac qui chauffe quand même beaucoup, je n’ai pas osé déssouder le transistor pour le coller sur un plus gros radiateur.

    Bonne continuation !
    Olivier

  3. Marcos83 dit :

    Bonjour André,
    Juste pour savoir : Comme je vous l’avez indiqué, le site web fonctionne bien, le flashage se fait jusqu’au bout mais il m’indique ceci:
    C:\Users\…. SolarRouter_v2.01.ino:401:18: warning: iteration 100 invokes undefined behavior [-Waggressive-loop-optimizations]
    sinus[angle] = int(30000 * sin(angle_rad));
    ~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    C:\Users\…. SolarRouter_v2.01.ino:399:29: note: within this loop
    for (int angle = 0; angle <= 100; angle++){
    J'ai regardé le code aux lignes concernées mais je ne vois rien qui cloche… (j'ai copié collé le code).
    Une idée ?
    Merci d'avance.

    • F1ATB André dit :

      C’est la première fois que je vois cela.Vous devez avoir dans vos parametres de l’IDE d’Arduino, avoir demandé des « Warning ».

      Le compilateur suspecte un problème car il voit une centaine de boucles.
      C’est juste une table de sinus que je calcule au départ pour gagner de la puissance de calcul par la suite, car le calcul d’un sinus est gourmand en temps.

      • Marcos83 dit :

        Nickel !
        André, vous avez vu juste. Je viens de faire un test en modifiant « Avertissement du compilateur » dans les préférences de l’IDE en indiquant « None » et plus rien… plus de warnning pour info, le choix « Default »est sélectionné par défaut justement lors de l’installation.
        Je suis en train d’essayer de faire communiquer mon ESP32 avec HomeAssistant via Core-Mosquitto, mais je galère un peu. Entre configurer d’un coté et de l’autre c’est par très clair pour moi.
        J’ai repris les infos données par fratton dans un ancien commentaire, mais je n’ai pas encore réussi à soit écouter l’ESP32 soit à envoyer au Broker…
        Est-ce que le routeur doit être pleinement configuré et en fonction pour que ça fonctionne ou bien ça fonctionnera mais avec des valeurs farfelues ?
        Je suis preneur si quelqu’un à réussi à tout faire fonctionner correctement (core-mosquitto sur HA et router).
        PS: j’ai réglé mon problème de gradateur Dolly tek qui ne fonctionnait pas. En fait, c’est de ma faute, j’ai inversé phase et neutre entre le gradateur et le signal de tension du petit transfo (je travaille avec des multiprises et je me suis trompé de sens lors du branchement. J’ai eu juste à inverser le sens de la prise du petit transfo. Le gradateur fonctionne aussi avec du 3,3V bien que sur son connecteur il est indiqué 5V.
        Encore merci et belle journée.

        • F1ATB André dit :

          La comm vers le Broker peut etre faite meme avec des valeurs farfelues.
          A l’avenir j’expliquerai comment se connecter à Home Assistant, mais là je suis sur autre chose.

  4. Vince dit :

    Tiens en passant, le dissipateur thermique FA-T220-64E de chez RS parts est parfait pour ce triac.
    Avec 3°C/W il lui permet de tenir le coup.

  5. Marcos83 dit :

    Bonsoir René,
    Je suis toujours sur mes reglages et ça semble fonctionner correctement (à part les valeurs que je n’ai pas encore modifiées dans le code pour KV et Kl. En revanche, le regulateur me semble un peu long à reguler. en effet, lorsque je simule plus rien en surplus, ça lui prend facilement 30 secondes avant de reguler et éteindre complétement le radiateur (ça diminue graduellement mais très lentement).
    Y a t-il quelque chose à regler quelque part ?
    Merci d’avance.

    • F1ATB André dit :

      Attention, c’est un point délicat. Une évolution trop rapide peu faire entrer la régulation en oscillation. Néanmoins vous pouvez fairre un essai en changeant la ligne 278
      retardF = retardF + PW / 200;
      C’est le retard pour déclencher le Triac après le passage à zéro de la sinusoide de tension. Il est recalculé toutes les 40ms après la mesure de puissance PW. Si PW est positif (on consomme chez Enedis), le retard va augmenter, pour retardé un peu plus l’ouverture. Si PW est négatif, on fourni de l’energie à Enedis , le retard diminue.
      Vous pouvez ajuster le coefficient 200. En le réduisant, ce sera plus rapide. Mais attention à la charge derrière qui va influencer sur la réaction. Si vous avez fait l’essai avec un petit radiateur, ce n’est pas la même chose qu’un ballon de 2kW.
      Cdlt

      • Marcos83 dit :

        Merci pour la réponse.
        J’ai diminué le retard à 50 et ça fonctionne beaucoup mieux et comme j’avais pas mal de bruit sur le secteur (quartier ?) j’ai augmenté la capacité des deux condensateurs. Le radiateur qui me sert pour réaliser les tests fait 1800W et mon cumulus 2400W. Peut-etre que mon gradateur y est pour quelque chose dans le temps de réponse. (?) . J’ai aussi une sonde différente (récup). Une Shelly 50A (abo de 6KW chez moi). Les infos sur cette sonde sont 50A nominal pour 16,67mA en sortie soit un rapport de 3000. Sur la boite il est inscrit 20 ohm, mais lorsque je mesure j’ai 516 ohm… Et pour finir, mon compteur edf se situe à environ 25m avec des dépendances qui pompent sur le réseau avant d’arriver dans mon habitation. Je suis donc obligé de tirer 25m de cable pour placer la sonde…. J’ai donc du bricoler avec tous ces éléments assez différents de votre installation. Mais à force, on y arrive ! j’ai souhaité un temps de réponse rapide car j’utilise des plaque à induction qui s’alimentent par accoups et j’ai imaginé que le temps de réaction trop lent laisserait ‘echapper’ chez enedis de l’énergie produite par les panneaux solaires…
        En tous cas, c’est un super projet simple et ludique et je m’amuse comme un gamin. Encore merci André !

        • F1ATB André dit :

          Parfait. Je vois que vous maitrisez bien le sujet.

          • Marcos83 dit :

            J’ai beaucoup de distorsion sur la courbe d’intensité (THDI). J’ai vu dans un précédent poste que vous préconisiez un câble RJ45 pour les grandes longueurs reliant la sonde avec une mise à la terre de la gaine métallique Du câble RJ45. Sur le site d’un autre routeur, le concepteur préconisait de relier cette gaine métallique à l’un des fils de la sonde expliquant que la référence n’était pas la terre mais l’intensité (?). Je vais essayer les deux méthodes. On verra bien. Je partagerai mon retour d’expérience.
            Bonne journée à tous.

          • F1ATB André dit :

            Pour la connexion du blindage, différentes solutions :
            – le point milieu à 1.65V. Ce n’est pas mon favoris car cela pourrait perturber la tension de 1.65V
            – le moins de l’alimentation.
            – la bonne vieille terre.
            Faites-nous votre retour d’expérience.
            Cdlt F1atb

      • christian lm dit :

        Bonjour. J’ai remarqué le même phénomène. A l’activation ou retrait d’un abonné de 1kw, ou variation brutale de production (nuage), la compensation prend de 10à 15 secondes. Cette compensation est brutale et non progressive. J’allais inverser la sonde pour voir, ce n’est donc pas le pb. Sur une journée ce n’est pas forcément gènant sauf lorsque l’on utilise en paralèlle une plaque à induction, qui coupe et redémarre sans arrêt.
        Autre : que faut-il modifier pour que le CE ne se mette pas en route à 0h. Ligne 299 ou 300 à modifier je suppose. Je n’ai pas les heures creuses et à cette période, pas de soucis pour chauffer dans la journée. Solution pour l’instant: couper le routeur, sauf oubli.
        Pour André, Merci pour le bon coup de main pour la mise route. Je pense que je n’y serais pas arrivé.

        • F1ATB André dit :

          Pour que le routeur ne forcr pas la charge de nuit, passez en commentaires les lignes autour de 300
          //if (hour >= 23 || hour <= 4) { //Force water Heater On during the night. Values OK for Summer and Winter even if one hour error // ModeHeater = 5; // retard = 0; // retardF = 0; // } Je ne comprend pas bien votre remarque de compensation. Elle prend de 10 à 15s mais vous la trouvez trop brutale. On peut agir sur le gain de boucle de l'asservissement afin de trouver le bon compromis sur la vitesse de réaction du système pour retrouverl'équilibre après une variation de consommation. Tout se joue à la ligne 278 du programme. retardF = retardF + PW / 200; Si on consomme par exemple 1000 w (Pw) de trop, le retard pour ouvrir le triac va augmenter de 5%. Ainsi, on enverra moins de puissance au chauffe-eau. 40ms après, on refait la mesure et on applique à nouveau la même règle jusqu'à trouver le point d'équilibre. Si le système réagit trop vite, on peut augmenter la valeur 200. Par exemple mettre 400. En fait l'optimum n'est pas le même pour tout le monde car il dépend de la charge du chauffe-eau. S'il consomme beaucoup, par exemple 3kw, on peut augmenter la valeur. J'espère avoir été clair. Cdlt

  6. Nutta dit :

    Merci Vince pour l’info du dissipateur thermique FA-T220-64E.
    Par contre il ne touche pas les composants situés entre le bornier et le triac ?
    J’ai fait une superposition à l’échelle et vu comme ça on dirait que ça passe pas, si on utilise le trou prévu à 18,3 mm du pied.
    https://i.servimg.com/u/f81/15/44/36/18/rad10.jpg

  7. fouin dit :

    Bonjour André
    Merci pour votre projet partagé.
    J’ai un problème de fonctionnement.
    En mode consommation le voyant clignote normalement et le triac est ouvert puis au bout de 30 secondes le voyant s’arrête et 10 secondes après le triac se ferme à 100%.
    Merci de m’aider

    • F1ATB André dit :

      Avez-vous rentrez les paramètres du WIFI?
      La sonde est elle dans le bon sens? On consomme PW est positif, on injecte vers Enedis PW est négatif.
      Les courbes rouges et vertes ressemblent-t-elles à des sinusoïdes?

  8. Vince dit :

    LOL, tu as fait la même chose que moi.
    et observateur de surcroît.
    Un léger coup de lime sur 5mm du côté des composants évitera tout conflit. De l’autre côté ça passe nickel !.

    https://ibb.co/TkXKf9p
    https://ibb.co/CQGfwVw

    • Mitchel dit :

      Bonjour André,
      beau travail et merci pour votre partage.
      je me lance dans votre projet, tout est presque finalisé, j’ai créé un petit trakeur solaire avec 2 panneaux de 385wc ,le tout fonctionne à merveille, je réinjecte de trop donc le routeur tombe à pic.
      Le problème je ne suis pas un pro de l’informatique:
      pour injecter votre programme, il faut juste copier coller le fichier .ino + compilation et on fait quoi des 2 autres fichiers.
      Désolé je suis pas au top pour l’informatique, j’essaie d’avancer.
      Si il y a une âme charitable pour detailler les grandes lignes pour injecter le code.
      merci encore.
      bonne soirée.

      • F1ATB André dit :

        Tous les fichiers doivent être mis dans le même dossier et ouvrir SolarRouter_v2.01.ino. Ne rien faire avec les autres, ils seront appelés par le fichier principal SolarRouter_v2.01.ino.
        Pour vous familiariser avec l’ESP32, il y a de nombreux Tuto sur YouTube si besoin.

        • Mitchel dit :

          Bonjour André,
          merci pour votre réponse, je vais pouvoir lancer les hostilités avec mon pc. J’ai hâte de reprendre un peu de cette énergie perdu pour moi et pas pour enedis.
          encore merci pour ce partage.
          Bien cordialement.
          MG

  9. Bast51 dit :

    Bonjour, je ne comprend pas d’où vient mon erreur : une fois mon routeur en fonctionnement, je me connecte bien. Les valeurs sont bonne, la courbe est belle, la LED rouge ou jaune clignote, le gradateur est soit passant, soit ouvert, mais au bout de quelque seconde celui-ci se bloque fermé et la LED rouge ou jaune se met en fixe et les courbes tension et intensité se figent.
    Dès que j’appuie sur le bouton reset de l’ESP32 celui-ci ce remet en fonctionnement mais rebelotte au bout de quelques secondes. Impossible de savoir d’où viens mon soucis.
    Avez-vous une idée du problème ?

    • F1ATB André dit :

      L’ESP32 à l’air de se cracher. Regardez au niveau de l’alimentation en 5V. Peut-être quelle est faible.

      • F1ATB André dit :

        S’il le systeme se rest, c’est qu’il n’arrive pas à communiquer en WIFI. Erreur dans l’adresse ou le gateway

    • delorme olivier dit :

      Bonsoir André, Bonsoir Bast51

      J’ai eu un effet similaire.
      Tout fonctionnait pendant une quinzaine de secondes puis ça fige et les mesures deviennent folles.
      Reset, ça remarche et ça replante…

      J’avais bien saisi l’adresse IP wifi de l’ESP32 mais pas la bonne IP pour la passerelle (gateway), celle de la box.

      Les paramètres wifi sont capitaux.

      André, je suis intéressé par votre code exempt de wifi et toute forme de communication, puis-je abuser de votre gentillesse pour me le faire parvenir si vous avez le temps ?

      Encore un immense merci pour ces invention, science et partage phénoménaux

  10. Olivier42 dit :

    Bonjour,
    Encore une fois, merci pour votre magnifique travail !
    Mis à part plein d’erreurs concernant les bibliothèques utilisées, que je n’ai pas encore toutes résolues car je constate une différence de chemin. J’ai C:\Users\Moi\.arduinoIDE avec 5 sous-dossiers, mais je ne retrouve pas le dossier des librairies dans ces sous-dossiers. J’utilise la dernière version de l’Arduino IDE, la 2.04.
    Je ne peux donc pas résoudre l’erreur #include .
    Par ailleurs, j’ai apparemment un conflit de bibliothèque concernant la Wifi.h.

    J’ai reçu les composants qui me permettront de faire mon installation à plusieurs modules : la distance entre le compteur/tableau électrique et les charges (cumulus, …) étant importante, il faut que je scinde le système en plusieurs modules, la connexion filaire étant impossible.
    J’ai essayé d’analyser votre code, afin de déterminer ce qui doit être intégré dans les différents modules ESP32, mais je doute et bloque. Je dois continuer cette analyse car je ne comprends pas encore à quoi correspondent chacune des variables que vous utilisez.
    De la même manière, je ne sais pas trop comment la liaison entre les différents modules se fera car je suis obligé d’avoir un répéteur Wifi pour avoir une qualité correcte de Wifi dans mon garage, là où se trouvera le module principal. Je pense utiliser l’adresse IP comme référence.
    Je pense qu’une liaison par pairage des ESP ne fonctionnera pas.
    J’ai aussi un peu peur des retards liés aux communications car je pense qu’il me faudra instaurer une communication bidirectionnelle (envoi de la commande d’ouverture du triac par le module principal au module ESP de commande de celui-ci et retour de l’intensité consommée par la charge du module de commande concerné au module principal, afin de dériver la surproduction sur le module de commande 2 si le module de commande 1 ne consomme plus rien – eau suffisamment chaude).
    J’appelle « module de commande » les modules distants qui pilotent les cumulus.
    Je suppose que la meilleure façon de faire communiquer les modules entre eux serait de transmettre des chaînes de données, comme vous l’avez fait entre le serveur de l’ESP de votre routeur et le module d’affichage déporté. Me le confirmez-vous ou bien avez-vous une autre solution ?
    Concernant la partie Remote Debug, j’ai rajouté les lignes suivantes sous la ligne 350, afin que l’adresse MAC soit également affichée :
    Serial.Print(« Mac address: « );
    Serial.Println(Wifi.macAddress());
    Concernant la partie affichage déporté, il faut que j’intègre la vision des modules enclenchés (« On » ou « Off », ainsi que la puissance routée sur chacun des modules.
    Concernant la fonction de chauffe pendant les heures creuses, les miennes étant entre 3h00 et 7h00 du matin, me confirmez-vous que je dois avoir le code suivant à partir de la ligne 300 (?) :
    if (LastHour != 0 && hour == 0) { Wh = 0; } // Reset Watt Hour of the day. Once every day
    if (hour >= 3 || hour <= 7) { //Force water Heater On during the night. Values OK for Summer and Winter even if one hour error
    ModeHeater = 5;
    retard = 0;
    retardF = 0;
    }
    if (LastHour == 6 && hour == 7) { ModeHeater = 0; } // Back to Automatic mode
    LastHour = hour;+

    Si j'ai tout compris, quand ModeHeater est à 5, le triac est passant à 100 % de la sinusoïde et quand ModeHeater est à 0, le triac n'est pas passant. ModeHeater étant un entier, le triac commande par pas de 20%.

    Merci de votre aide et du temps que vous consacrez à nous aider !

    • Nutta dit :

      Bonjour Olivier,
       » je ne retrouve pas le dossier des librairies dans ces sous-dossiers » : Regarde dans C:/Utilisateurs/Toi/Documents/Arduino

      • Olivier42 dit :

        Bonjour Nutta,

        Merci pour la réponse. Je vais vérifier cela sur mon ordi fixe (celui qui me sert à bricoler).

        • Olivier42 dit :

          Bonjour,
          C’est bon, j’ai retrouvé !
          Effectivement, j’ai mes dossiers User (Documents, images, …) sur un autre disque dur.
          Je n’avais pas capté qu’Arduino IDE installait des choses dans le dossier utilisateur. 🙂

          Merci beaucoup !

    • F1ATB André dit :

      Ce qui règle l’ouverture du Triac, c’est la variable retarF calculée à la ligne 278.retardF = retardF + PW / 200;
      C’est le retard par pas de 100micro seconde après le passage à zero de la tension.
      retardF=0 : pas de retard.On ouvre immédiatement après le passage à zero
      retardF=100, on ouvre après 10ms, ce qui correspond à jamais car on arrive sur la période suivante.
      Toutes les 40ms, on recalcule retardF en additionnant une partie de la puissance mesurée/200. Si la puissance est positive, le retardF augmente, on ouvrira plus tard. Si la puissance est négative, surproduction, on ouvre plus tôt.
      Comme pour piloter le Triac, il faut un entier. la variable retard est la partie entiere du nombre réel retardF.

      Dans votre cas, il faut 2 ESP, un coté prise de mesure, l’autre coté Cumulus.
      Celui du Cumulus, doit appeler celui de la mesure toute les 2s à l’aide du WIFI
      Attention, il faudra probablement modifier la ligne
      retardF = retardF + PW / 200;
      car vous n’aurez plus de mesure toute les 40ms mais toutes les 2s.
      Il ne faut pas non plus que le système rentre en oscillation.

      D’ici à quelques semaines, je ferai une version avec la mesure déportée du chauffe-eau pour répondre à un besoin fréquent.
      Cdlt
      F1ATB

      • Olivier42 dit :

        Bonjour André (si je peux),

        La période de mesure de 2 secondes est liée à une contrainte technique (communication entre les modules) ? S’il était possible d’effectuer les mesures plus rapidement, cela éviterait un problème de réactivité du système lors par exemple du passage d’un nuage. Le but est d’auto-consommer le plus possible la production sans pour autant avoir de consommation en heure pleine, ce qui ferait que le système serait plus long à amortir.

        Concernant le schéma électronique du système multi-modules, je veux bien le mettre sous kicad.
        Je viens de l’installer sur mon PC.
        Si je peux aider, je suis partant !

        • F1ATB André dit :

          Oui je prend 2s, car on ne va pas occuper le WIFI à faire des transactions toutes les 100ms.
          Même si on ne régit pas très vite, la régulation est là et donnera son effet.

  11. pouick61 dit :

    Bonjour,
    ça y est , j’ ai construit le routeur . Par contre lorsque j’ installe la v2 j ai ce message.
    SolarRouter_v2.01:21:10: fatal error: ESPmDNS.h: No such file or directory
    #include
    ^~~~~~~~~~~
    compilation terminated.
    exit status 1
    ESPmDNS.h: No such file or directory

    ou puis je trouver ce fichier,j ai vérifier il n’ est pas dans librairies.

    • F1ATB André dit :

      Avez, vous installez les compléments pour ESP32 (url d’expressif) comme indiqué au chapitre code source de cette page?
      Si oui, vous avez dans les exemples de programmes 2 exemples spécifiques utilisant mDNS.

      • pouick61 dit :

        Bonjour,
        me revoila .ça avance doucement mais surement.
        nouvelle erreur:
        Le croquis utilise 846738 octets (64%) de l’espace de stockage de programmes. Le maximum est de 1310720 octets.
        Les variables globales utilisent 47112 octets (14%) de mémoire dynamique, ce qui laisse 280568 octets pour les variables locales. Le maximum est de 327680 octets.
        esptool.py v3.0-dev
        Serial port COM3
        Connecting…….._____….._____….._____….._____….._____….._____….._____

        A fatal error occurred: Failed to connect to ESP32: Timed out waiting for packet header
        Failed uploading: uploading error: exit status 2

  12. Halleux Daniel dit :

    Bonjour André,
    Il y a peut-être 2 mois, je vous avais posé la question de principe de savoir si au lieu d’utiliser une pince ampèremétrique et un petit transfo pour la mesure de tension afin que l’ESP32 calcule la puissance injectée, d’utiliser plutôt les « datas » issues du port P1 des compteurs soit disant « intelligents ».
    Et bien c’est chose faite, j’ai dû patienter plus d’un mois pour que mon gestionnaire de réseau (RESA ici en Wallonie – Belgique) active mon port P1. J’ai alors utilisé un sketch que j’ai adapté pour l’ESP32 (que vous m’aviez recommandé au lieu de l’ESP8266) pour décoder les données de mon port P1, non sans mal car il y a de petites différences dans les protocoles d’échange des datas entre les différents compteurs en circulation et il ne m’a pas été très facile de trouver des notes techniques là-dessus. L’avantage d’un tel système c’est un gain en matériel et que ça fonctionne en mono ou en triphasé (pas besoin des 3 petits transfos, ni des 3 pinces ampèremétriques, ni d’étalonnage)
    Je me suis permis d’utilisé en partie votre sketch, très bien pensé, pour l’exploitation du signal « puissance injectée » et la commande du triac, relais statique,…
    Voilà, dès que que j’aurais complété ma documentation, schéma,…. si cela vous intéresse elle sera à votre disposition.

    Bien amicalement
    Daniel

    • F1ATB André dit :

      Bravo pour votre réalisation en cours.
      Je développe la même chose actuellement avec le compteur « intelligent » que nous avons en France.
      Je serai bien sûr intéressé par votre code qui sera une alternative pour nos cousins belges.

      • Halleux Daniel dit :

        André,
        Si vous me donnez une adresse mail, je pourrais vous envoyer tous mes documents concernant mon projet ainsi que des notes sur les protocoles utilisés par les distributeurs en Belgique.
        Bon w-e
        Daniel

  13. fouin dit :

    Bonjour André
    Effectivement mon problème vient du wifi.
    J’ai bien renseigné le ssid et le password.
    Je ne vois pas ou il faut saisir l’adresse IP de l’ESP et l’IP de la passerelle.
    Merci pour votre patience, je ne suis pas à l’aise dans ce domaine.

    • F1ATB André dit :

      2 lignes en dessous
      IPAddress local_IP(192, 168, 0, 208); //Mettre l’adresse IP que l’on souhaite pour l’ESP
      // Set your Gateway IP address
      IPAddress gateway(192, 168, 0, 254); //Mette l’adesse IP de la box. En général fini par 1 ou 254

  14. Olivier42 dit :

    Re bonjour,
    Une autre question me titille :
    Vous avez mis le serveur Domoticz sur un mini-PC ou bien sur un Raspberry Pi ?
    J’ai un Raspberry Pi 3B qui traîne dans les tiroirs : je pensais l’utiliser à cette fin, mais je le trouve un peu « mou ». J’ai un peu peur qu’il ralentisse le système …

  15. vincentRR dit :

    Bonjour,
    un énième merci André pour ce super partage!

    Hier j’ai connecté mon module à mon cumulus 3000W (300l). Apres quelques moments d’utilisation, le triac chauffait énormément à tel point que j’arrivai à bouger le radiateur, la soudure était en train de fondre. J’ai donc arrêté le système.
    Le soir, j’ai réessayé, et à l’allumage, un composant du triac à lâcher ( j’ai entendu une bruit de composant qui lâche).
    Bref, il va donc falloir que je travaille le refroidissement du triac.
    J’ai donc recommandé deux triacs ainsi que des radiateurs.. ( pour en avoir un triac de rechange)
    C’est ensuite que je me suis demandé si je ne pouvais pas mettre deux triacs en parallèle suivant ce schéma :
    https://ibb.co/92BbXrW (le Zc du second restera non connecté)

    Je ne vois pas pourquoi cela ne marcherai pas, la puissance serait équilibrée sur deux triacs.

    Qu’en pensez-vous ?

    • F1ATB André dit :

      Pour le Triac, dans votre cas, il faut le modèle 24A.
      Ensuite, il faut augmenter la taille du refroidisseur.
      Certaines personnes ont augmenté la taille des pistes qui transportent le fort courant en 230V. Souder un fil de cuivre en superposition sur la piste.
      2 Triacs en parallèles devraient marcher, mais la moindre différence entre les 2 fera qu’un travaillera plus que l’autre. Il n’y a pas d’équilibrage.

  16. fred dit :

    Bonjour. Super projet que j’ai fait. Je chauffe mon ballon à 55 degrés la nuit mais le jour quand le thermostat atteint la temperature il coupe la charge et je ne peux donc plus router. J’aimerais pouvoir stocker de la chaleur pour le lendemain quand il n’y a pas de soleil, et donc à voir 55 degrés la nuit comme consigne et 70 degrés la journée comme consigne. Je ne vois pas de solution pour changer le thermostat autre que mettre un servo moteur sur le bouton pour le tourner, avez-vous une autre idée sans modifier la carte du BECS ?

  17. PINEDE JF dit :

    Bonjour,
    Je viens de construire un routeur solaire en suivant vos directives. La courbe de tension est une sinusoïde mais celle de l’intensité est toute hachée et d’une amplitude très faible. Pour faire ces tests, j’ai connecté le routeur à un radiateur électrique. L’intensité affichée sur le téléphone est de 0.23A, la tension 177V.
    Auriez-vous une idée pour me dépanner ?
    D’avance merci.
    JFP

    • F1ATB André dit :

      Déjà, calibrez la tension autour des 230V comme indiqué sur la page en prenant reference sur un voltmetre ou le Linky.
      Pour le courant. Passez qu’un seul fil dans la sonde, pas les 2.
      A part cela, à distance sans mesure, difficile de diagnostiquer.
      Cdlt.

      • PINEDE JF dit :

        Bonjour,
        J’ai calibré la tension à 230V qui correspondent à mon réseau mais toujours le même problème avec la courbe I. A noter que les taux de distorsion harmonique sont de 10% pour V et 98% pour I…

        • F1ATB André dit :

          Vous devez avoir un mauvais branchement sur la sonde de courant.
          Cdlt

        • Christophe Smiechowski dit :

          Bonjour, vous dites avoir calibré le voltage, mais avez vous calibré l’intensité ? (kI)

        • Christophe Smiechowski dit :

          Attention certaines sondes comporte une résistance ainsi qu’une diode. Sur la mienne j’ai dû la dessouder.

          • Nutta dit :

            « L’intensité affichée sur le téléphone est de 0.23A, la tension 177V »
            puis
            « J’ai calibré la tension à 230V qui correspondent à mon réseau »

            Je ne comprends pas – la tension se calibre en comparant ce qui est affiché sur le tel avec ce qu’indique le voltmètre, donc la calibration ne peut pas être faite.

            « Attention certaines sondes comporte une résistance ainsi qu’une diode. Sur la mienne j’ai dû la dessouder. »

            Moi je n’ai qu’une diode en série à l’intérieur de la sonde – je dois la shunter ??
            https://i81.servimg.com/u/f81/15/44/36/18/20230410.jpg

          • F1ATB André dit :

            La calibration en tension consiste à adapter le coefficient multiplicatif kV dans le programme pour obtenir le bon chiffre de tension.
            Le système fait une mesure, mais tout le monde n’ayant pas le même transformateur, il faut ajuster ce coefficient.

            La sonde de courant, doit être une simple bobine avec un rapport de 2000 (ex 100A / 50ma). La résistance aux bornes permet de convertir le courant en tension mesurable par l’ESP. Il ne faut pas de diode ou autre électronique.

  18. David dit :

    Merci beaucoup pour ce projet.

    Je confirme que le robotDyn n’est pas capable de refroidir son triac, il a vite cramé. Un nouveau BTA16-600, 3 points de soudure et un vrai radiateur et c’est nickel.

    J’ai ajouté une comm MQTT pour remontée d’info à Jeedom.

    Pour le moment tout roule parfaitement

    Encore merci

    https://photos.app.goo.gl/MWyDq6BrGynDQZ4W9

  19. STÉPHANE CHARRIER dit :

    Bonjour André,

    Tout d’abord merci pour votre partage de connaissance. Je viens de terminé mon installation photovoltaïque au sol de 3 KW. Après 3 jours de production j’ai énormément de surplus, et demain je m’attaque à la réalisation de votre routeur.
    J’ai une petite question, la sortie pour le relais statique n’a pas l’air programmée dans dans le code Arduino, je me trompe ?
    L’idée serai d’avoir 2 sorties Triac, lorsque le chauffe eau n’est plus en demande, basculer vers une deuxième sortie qui prendrai le relai en alimentant par exemple un radiateur pour la maison toujours avec le surplus.
    Je viens de transférer le code Arduino dans l’ESP32, tout c’est bien passé et j’ai bien la visu avec la page web, c’est un bon début.
    Merci à vous.

    Stéphane.

    • F1ATB André dit :

      Parfait. Le code pour le relais additionnel est écrit autour de la ligne 286.
      Bon montage.
      Cdlt

      • STÉPHANE CHARRIER dit :

        Merci pour votre réponse, je vois ça. Mais je n’arrive pas à comprendre comment et quand on pilote le SSR optionnel, j’ai encore beaucoup de mal avec le code Arduino. C’est quand le la sortie Triac ne fonctionne plus ? Il est piloté ouvert donc on envoie tout vers le SSR ?

        • Nutta dit :

          Quand le RobotDyn fonctionne, c’est qu’il y a de la puissance solaire de « trop » alors il dirige cette puissance vers le chauffe-eau afin de ramener toute injection vers le réseau à 0.
          Quand le chauffe-eau arrive à température et se coupe, alors la puissance dispo augmente et il y aurait à nouveau une injection réseau.

          La commande et les réglages autour de la ligne 286, font que le SSR est activé quand il y a au moins 1200W de dispo (que le chauffe-eau soit encore alimenté ou pas, en fait).
          Par exemple, moi j’ai indiqué :
          if (PW 300) { //Switch Off
          digitalWrite(OptionalRelay, LOW);
          car je désire qu’il soit actif quand il y a 600W de dispo puis inactif quand je consomme au dessus de 300W sur le réseau via le SSR – je peux donc utiliser un appareil quelconque de 900W maxi, en acceptant d’utiliser une partie de « puissance 300W réseau » dans mon cas.

  20. Nutta dit :

    il manque des lignes du code :

    if (PW 300) { //Switch Off
    digitalWrite(OptionalRelay, LOW);
    }