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. Thierry260 dit :

    Bonsoir,
    Petit retour, j’ai pas reçu les PCB mais j’ai reçu mon esp32 donc j’ai fais un montage sur breadbord pour tester mon alim avec le zmpt107 mais ça na pas été concluant, pas moyen d’avoir une sinusoïde de qualité. Du coup j’ai refais les essais avec mon bloc moulé et là c’est beaucoup mieux la sinusoïde est pas 100% parfaite mais après avoir ajuster le pont diviseur et le calibre de Kv et Ki et viré la résistance R3 je suis pratiquement au watt près sur la lecture de la pince (30A 1v).
    Du coup j’ai revu le PCB du routeur et adapter aussi pour l’intégrer dans un boitier din avec presque l’envie de mettre une résistance ajustable pour le pont diviseur et refais une alim AC/DC en rail din.
    Une fois tester en montage définitif je verrai pour une commande en nombre des 2 PCB
    https://zupimages.net/viewer.php?id=23/12/k2v6.jpg

  2. Dominique E dit :

    Bonjour,
    tout d’abord, bravo pour le super boulot que vous avez fait, et surement les nombreuses de montage vidéo et de documentation 🙏👏.
    J’ai une question concernant le thermostat du chauffe eau. Toute votre installation est montée en amont du thermostat, cela veut donc dire qu’il va être alimenté avec une tension inférieur à 230 V ? cela ne va pas lui poser de problème dans le temps ? avant de « tomber » sur votre projet (très documenté), j’ai plutot imaginé installer mon routeur solaire après le thermostat… mais le cablage est un peu plus penible (notamment pour conserver le cycle heure creuse). Qu’en pensez vous ?
    Cordialement.
    Dominique

    • F1ATB André dit :

      Le système que je présente est à la base pour un thermostat électro-mécanique (pas d’électronique) qui se moque bien de la tension qu’on lui présente. Pour les thermostats électroniques, il faut faire quelque chose en aval, car on ne peut alimenter ce thermostat avec une tension en dent de scie.
      Pour les heures creuses, mon système prend l’heure sur internet et peut forcer la mise en route à certaines heures.

      • Dominique E dit :

        Merci pour votre retour rapide. Donc, pour les heures creuses, vous n’utilisez plus le contact Jour / Nuit d’Enedis ?

  3. Damien dit :

    est il possible d’avoir une installation distante entre le capteur d’intensité sur l’entrée réseau électrique et le gradateur ? De même, est il possible d’imaginer une solution avec plusieurs gradateurs avec une priorisation de ceux ci ?

    • F1ATB André dit :

      La sonde de courant peut être mise à distance si on prend du fil blindé. Exemple une paire sur du fil réseau.
      On peut adapter le programme pour plusieurs gradateurs, il y a de la ressource disponible. On peut mettre des règles de déclenchement.

      • Laurent46 dit :

        Bonjour,
        je rebondis sur la question, quelle distance maxi entre la sonde et le la carte avec du cable blindée. Dans mon cas j’ai 25 m de cheminement de cable entre les deux, le charme des vieilles maisons … merci

  4. Crapaud28 dit :

    Bravo pour tous ces tutos bien structurés ,
    je me permet de reformuler ma question:
    j’aimerai modifier votre routeur solaire pour l’adapter à mon installation triphasé.
    j’ai bien compris qu’il faille rajouter 2 tores et 2 transfos!…mais pour le reste suis un peu perdu…..comment calculer pour limiter l’injection réseau est un mystère pour moi.
    Merci
    Crapaud28

    • F1ATB André dit :

      Il faut calculer la puissance par phase et ensuite faire la somme pour voir le signe. On peut avoir une phase positive et les 2 autres négatives.
      Autre solution, d’ici 1 mois, je souhaite pouvoir publier un routeur sur un autre principe qui devrait fonctionner pour du triphasé. Je suis en phase de développement , essais et ne peut en dire plus.

      • Crapaud28 dit :

        Merci André,
        je comprends bien la somme des puissances qui vont nous donner le sens import/export.
        j’ai du coup regarder les entrées ADC de l’ESP32….Il n’y en a que 6 dispos ( si WIFI)….
        Il faut donc récupérer l’entrée 1,65V et la câbler en dur dans le programme.
        Merci encore et n’oubliez pas de dormir un peu.
        Crapaud28

        • F1ATB André dit :

          Il n’est pas nécessaire de mettre 3 tranfo de tension. On ne cherche pas à mesurer les puissances avec une grande précision. Le point important est d’avoir un transfo sur la phase qui sera utilisée pour le chauffe-eau afin d’être parfaitement synchronisé pour déclencher le Triac au bon moment. Pour les autres phases, on prendra pour le calcul la même tension que celle de la phase mesurée. Par contre, il faut 3 sondes de courant.

  5. Damien dit :

    Est ce que je me trompe si je dis que qu’un anneau ampermétrique de 60A suffirai pour une installation de 12kVA ?

    • F1ATB André dit :

      60A*230V=13.8kVA. Cela va parfaitement.

      • Damien dit :

        Est ce qu’un anneau de 60A est considéré comme plus précis qu’un anneau de 100A pour une mesure sur 12kVA ? ou ça ne change rien ?

  6. Thierry260 dit :

    Bonjour,
    Bon PCB reçu est monter mais problème pour tester. Me suis trompé en mettant le 230v sur le secondaire du transfo est i a pas bien aimé.
    Du coup commande de bloc transfo pour test
    Petite photo du PCB
    https://zupimages.net/viewer.php?id=23/13/ax4n.jpg

    • mchlbgs dit :

      Bonjour,
      Avez vous finalisé votre test avec le PCB ?
      (je suis toujours intéressé à l’obtenir pour ce projet 🙂 )
      Cordialement
      Michel

  7. Manu dit :

    bonjour
    trop content je suis enfin arrivé à compiler et même à communiquer en wifi
    par contre montage en l’air mais valeur de tension complètement à l ouest de 412v qd je suis sur l alim USB et complètement aléatoire 100 à 300v qd je suis sur l alim sur le deuxième enroulement du transfo pas celui de la mesure.tout le tps en variation
    et pince en l air 12 à 14A
    ?????

    • F1ATB André dit :

      Votre transfo a 2 enroulements au secondaire : les enroulements sont ils bien séparés? Surtout pas de point commun.

  8. Nutta dit :

    F1ATB André à écrit : « je souhaite pouvoir publier un routeur sur un autre principe qui devrait fonctionner pour du triphasé. Je suis en phase de développement , essais et ne peut en dire plus. »

    Alors là, ce serait carrément le Graal !
    Dites-nous en d’avantage !
    Je plaisante..

  9. Eric REMUSON dit :

    Bonjour André, je viens vers vous non pour parler directement de votre routeur, mais pour comprendre votre logique pour driver le dimmer en fonction de la puissance sortante relevée.

    Je m’explique: Je suis sous Home Assistant, J’ai un onduleur Sofar Solar qui me remonte le surplus solaire dans une variable.

    Je relève mon surplus solaire.

    Je calcul le % de dimming à appliquer et je l’envois.

    Seulement, de ce fait, le surplus solaire chute, car il est consommé.

    Et de ce fait, le calcul se basant sur le nouveau surplus, qui a donc baissé, j’ai un nouveau calcul de dimmer qui est proche de zéro.

    Et cela arrête pas de faire le yoyo…

    Quelle logique devrait-je appliquer pour que cela tourne ?

    Merci pour votre aide…

    Eric

    • F1ATB André dit :

      Vous êtes dans la situation classique d’instabilité d’un asservissement, car vous réagissez trop vite. Divisez par 10 votre correction afin d’arriver doucement et en plusieurs fois a la bonne valeur.

  10. Damien dit :

    Concernant le dimensionnement du dimmer, va t il limiter l’intensité absorbée par l’appareil alimenté ou va t il « cramer » s’il est inférieur ?
    Existe t il d’autres dimmers fiables comme ceux de RobotDyn ? Avez vous des références, des liens pour en acheter ?

    • F1ATB André dit :

      Le dimmer ne limite rien. Si on consomme trop, il va chauffer et cramer. J’ai acheté sur Aliexpress.
      Avec un Triac et un peu d’électronique autour, on peut refaire le système de Robotdyn.

      • Marcos83 dit :

        Bonjour André et merci pour votre partage. Simple et efficace si on suit bien toutes vos explications. J’ai consulté pas mal de sites proposant des routeurs mais franchement votre système et vos tutos sont au top !!
        Pour ma part, j’ai pu réaliser une grande partie du projet en suivant vos recommandations, mais je suis bloqué car je n’ai pas le gradateur de robotdyn et je n’arrive pas à faire fonctionner le mien avec l’esp et votre code. Pourtant Tout s’affiche parfaitement sur le site du routeur. Mon gradateur est de type Dolla tek 4000w avec commande numérique. voir -> (https://www.amazon.fr/gp/product/B07L2T7T28/ref=ppx_yo_dt_b_asin_title_o05_s00?ie=UTF8&psc=1#customerReviews) qui comporte bien un signal pour le zero crossing mais une tension d’alimentation en 5 v. J’ai essayé en l’alimentant en 3,3v par l’esp et également en 5v avec une alim commune pour esp et gradateur. Dans tous les cas, avec la commande de l’esp (GPIO22), mon gradateur s’ouvre à fond d’un coup sans aucune variation (il fonctionne pourtant bien avec sa commande d’origine) et le site du routeur affiche bien le surplus (simulé) et les autres infos.
        Ps : toutes les tensions sont bonnes, en tous cas je suis dans la fourchette de 0,2 v à 3,1 v
        Auriez-vous une piste pour m’aider à progresser avec ce gradateur ? Ah oui ! Je précise quand même que ce gradateur n’est pas des plus précis même avec sa commande.
        Bah sinon, j’envisagerai de fabriquer un gradateur « maison » en récupérant les composants de l’actuel. D’ailleurs si vous avez un schéma de câblage pour en réaliser un je suis preneur.
        Encore merci pour votre partage.

        • F1ATB André dit :

          Je ne vois pas bien comment vous aider. Je ne connais pas votre gradateur et sur le site d’Amazon, j’ai pas trouvé de doc technique.
          Pour des schémas, cherchez ‘Gradateur Arduino » pour trouver des exemples.

          • Marcos83 dit :

            Merci André. Je viens d’en trouver des simples et au pire je commande le même que le votre sur ali.
            Je continue mes essais et vous remercie encore pour ce beau partage.
            À bientôt.

        • Laurent C dit :

          Bonjour
          j’ai utilisé ce même gradateur pour mon montage. Vous pouvez retrouver le pilotage de ce gradateur sur le site
          https://www.pierrox.net/wordpress/2019/03/04/optimisation-photovoltaique-3-controle-numerique-du-variateur-de-puissance/
          Pour vous inspirer, voici mon programme intégrant le pilotage avec ce dimmer + d’autres ajustements sous
          https://drive.google.com/file/d/1sZjfvcpm1jrx8-GrxWCehSIF4YiTvPou/view?usp=share_link
          Laurent

          • F1ATB André dit :

            Bonjour
            Il y a une chose que je ne comprends
            pas dans votre montage, c’est comment vous faites la régulation sachant que le PZEM-004t fourni bien la puissance, mais pas le sens du transfert d’énergie (consommation ou injection) à moins de le modifier. Cdlt

          • Laurent C dit :

            Bonsoir André
            j’ai réalisé le montage que vous avez fait, avec le capteur de courant SCT 30A et le transfo pour la mesure de tension.
            J’ai seulement changé le pilotage du dimmer car il ne fonctionne pas de la meme facon. Celui ci devient passant lorsqu’il recoit une impulsion a 1 sur une certaine durée, et ce jusqu’au prochain zero crossing , alors que le votre devient passant lorsque sa commande est a 1

  11. Robert34400 dit :

    @F1ATB André
    Bonjour André,
    La tension secteur à appliquer au primaire du transfo 230V/6V doit-elle être prise impérativement exactement à l’arrivée de la phase et du neutre au tableau général?
    Ou peut-elle être prélevée à une prise de courant dédiée placée toute seule sur une ligne directement tirée du tableau général (derrière un disjoncteur différentiel et un disjoncteur magnétothermique)?
    D’avance merci pour votre réponse.
    Cordialement
    RB

  12. Sylvain dit :

    Bonjour F1ATB André,

    Je suis épaté par les connaissances que vous avez sur le sujet du routeur solaire.

    De mon côté je voudrais commander un module « Triac » un peu spécial, il se commande en tension de 0 à 5 Volts « 0 volt pas de commutation » 5 Volts, le triac est en pleine commutation.

    Comment puis-je faire pour que le ESP32 n’envoie pas d’impulsions, mais un signal O-5 Volt ?

    Bien à vous.

    • F1ATB André dit :

      Etes vous bien sur que c’est un Triac. Il faut pouvoir mettre ON au milieu de la sinusoide de 230V.
      Dans le programme que je propose, l’ESP32 envoi un signal à +3.3V pendant toute la durée ou le Triac doit être ouvert. Pour passer cela en 5v, attaquez un transistor sur la base via une résistance. Inversez si besoin la sortie de l’ESP32.

      • Sylvain dit :

        Oui, c’est un module spécial. Il gère déjà le passage à Zéro. Il a besoin d’un signal analogique variant de 0 à 5 Volts DC. 0 Volt pas de conduction du triac, 2,5 volts conduction à 50%, 5 volts conduction à 50 %.

        Donc besoin d’un signal variant de 0 à 5 volts (Pas 0 ou 5 volts).

        • F1ATB André dit :

          Il faut modifier le code de l’ESP32 pour utiliser une sortie analogique, mais ce sera du 0 à 3.3V. Il faudra un peu d’électronique pour passer en 0 à 5V.

          • Sylvain dit :

            André,

            Oui, en effet, modifier le code. Je suis nulle en programmation.

            Ou alors intégrer le signal PWM 3,3 volts dans un filtre R-C et et adapter via AMP Op vers 0 à 5 Volt.

            Quand pensez vous ?

          • F1ATB André dit :

            Oui c’est une solution.

  13. Manu dit :

    bonjour André
    pensez vous que mon probleme de déformation de sinusoïde et de tension crête farfelues vient d une erreur de montage ou parasite
    merci

    • F1ATB André dit :

      La tension, une fois branchée au transfo doit avoir une forme stable et si bien réglée,une sinusoïde. Si c’est n’importe quoi, les pins du GPIO sont en l’air.
      Le courant, si la sonde n’est pas sur un câble, cela donne n’importe quoi. Comme le programme cadre le signal entre le min et le max détecté, sur un faible bruit, cela prend des formes bizarres.

  14. Thierry260 dit :

    Bonsoir,
    J’ai reçu les transfos neuf et passage au test, j’ai pas le résultat au top du coup j’ai remis sur breadbord pour faire des modif sur le pont diviseur et pas moyen d’arriver a avoir une sinusoïdal correct , bizarre car l’autre jour je suis arrivé a un résultat très positif.
    J’ai fais plusieurs test en passant le pont diviseur 0.6v a 0.98v et rien.
    J’ai pas trop le temps en ce moment mais je vais suivre mon idée d’utiliser une résistance ajustable et je vais rajouter un condo sur le AC.

    • F1ATB André dit :

      Le problème de la résistance ajustable. A peine vous la touché, il faut reprendre les cadrages kV.

      • Thierry260 dit :

        Oui je suis d’accord sur le fait de reprendre Kv, mais je vais mettre des résistances talons pour déjà avoir un fixe sur le pont diviseur

  15. Nutta dit :

    F1ATB André à écrit : « La tension, une fois branchée au transfo doit avoir une forme stable et si bien réglée,une sinusoïde »

    Ici, la tension appliquée à la ref de 1.65V est de 1.10V crête seulement – pensez-vous que la sinusoïde est trop déformée ? https://i.servimg.com/u/f81/15/44/36/18/onde310.jpg

    • F1ATB André dit :

      Je ne sais que dire. La sinusoide n’est pas parfaite, mais elle est symétrique. La montée est lente, mais il ne semble pas avoir d’écrêtage. Je ne sais si vous aviez à ce moment une forte production qui déformerait la sinusoïde? Voir aussi si elle s’améliore à certaines heures du jour qui traduirait le fait que c’est le réseau dans votre quartier qui est ainsi. Le 1.1V crête c’est suffisant.

  16. Nutta dit :

    Elle est toujours à peu près comme ça tout au long de la journée – mais en fait ça me convient très bien quand-même car les valeurs affichées semblent très satisfaisantes et surtout, je n’ai aucun panneau solaire actuellement.. et je suis en triphasé..
    C’est surtout le coté ludique du montage qui m’intéresse beaucoup, pour l’instant.

    • Nutta dit :

      F1ATB à écrit : « Voir aussi si elle s’améliore à certaines heures du jour qui traduirait le fait que c’est le réseau dans votre quartier qui est ainsi. »

      Je viens de recevoir un petit oscilloscope et en effet, voici la forme d’onde au secondaire du transfo.
      https://i81.servimg.com/u/f81/15/44/36/18/215.jpg
      Je suis hyper satisfait du routeur – merci encore André, c’est un plaisir de l’avoir monté, d’essayer de découvrir quelques notions de programmation et qu’au final ça fonctionne parfaitement.

  17. fontaine dit :

    bonjour André

    Je me lance dans le projet car vous m’avez vraiment donné envi de le faire avec votre système.

    je suis à la phase de compilation mais j’ai une erreur std::round’ has not been declared
    using std::round;

    pourriez vous m’aider ?

    • F1ATB André dit :

      Aucune idée pour cette erreur. Conflit de bibliothèques ?
      Le texte complet de l’erreur indique probablement dans quel fichier elle se situe.

      • fontaine dit :

        In file included from /private/var/folders/18/vsxzhnx55x30q51ppx5f0_q40000gn/T/arduino/sketches/8382715B817606A43DCFB423DDB5B997/sketch/SolarRouter_v2.01.ino.cpp:1:0:
        /Users/moi/Library/Arduino15/packages/esp32/hardware/esp32/2.0.7/cores/esp32/Arduino.h:194:12: error: ‘std::round’ has not been declared
        using std::round;
        ^

        exit status 1

        Compilation error: exit status 1

  18. lgod dit :

    Bonjour,
    merci pour votre travail,
    je suis en train de monter le circuit, mais avez vous prevu d’expliquer le parametrage a faire coté domoticz pour lire les données?
    par avance merci

  19. Guitou030 dit :

    Bonjour André
    Merci pour ce partage et tous les conseils dans ce fil de discussion. Je viens de finir la construction du routeur. Et j’avais une quelque question :
    Lors de mon test cet après-midi le routeur routait entre 45 et 65% vers le chauffe-eau. J’ai suivi en direct sur l’appli emphase et aucun import sur du réseau EDF. En revanche le Linky indiquait par moment un import de 500 à 1100VA puis repassait à 0 import voir en export alors que ni la passerelle emphase ni le routeur ne semblait détecter cet import. Avez-vous une idée ?
    Si je coup l’alimentation en 220V du triac (pour supprimer l’alimentation du ballon d’eau chaude) j’ai bien la même puissance sur le Linky, l’appli Emphase et le routeur !
    Autre question, l’ESP32 semble chauffer un peu est ce normale ?
    De mon côté j’ai désactivé le déclenchement horaire la nuit, j’ai laissé le routeur tournée plusieurs jours et parfois il ne repassait pas en auto le matin il restait en mode 100%. Je pense que parfois il ne parvient pas à récupérer l’heure. Avez-vous déjà observé ce problème ?

    • F1ATB André dit :

      Parfait pour cette nouvelle réalisation.
      Lorsque le routeur envoie de la puissance disponible au chauffe-eau, il essaye d’obtenir un bilan de puissance active en W, proche de zéro. La puissance active est obtenue en faisant la moyenne sur un grand nombre de mesures des produits P=U*I durant une période de 20ms. Suivant la phase de U et I a tout instant, le produit est positif ou négatif. Il faut que la somme des P=U*I sur une période de 20ms soit nulle. Cela ne veut pas dire que chaque produit P=U*I est nul.
      Par contre, lorsque l’on fait un calcul de puissance apparente en VA, on calcule séparément la tension et le courant efficace. La tension efficace est la racine carrée de la moyenne des carrés des tensions prises de nombreuses fois durant les 20ms. De même le courant efficace est la racine carrée de la moyenne des courants. Voir les définitions au chapitre Mesure dans l’article.
      Si vous regardez la courbe de courant en vert quand le routeur envoi de l’énergie au ballon d’eau chaude, vous verrez qu’elle ne ressemble pas beaucoup à une sinusoide et est parfois en phase avec la tension sur une partie et en opposition sur une autre.
      Le bilan de tout cela est une puissance active en W qui est proche de zéro mais une puissance apparente en VA qui n’est pas nulle du tout.
      Votre Linky, donne en temps réel la puissance apparente en VA. Elle est non nulle. En même temps il ne vous donne pas la puissance active en W que vous voyez sur le routeur ou la passerelle emphase. Par contre il vous donne le cumul des W en Energie Active en Wh. Ce sont les Wh que vous payez et non les VA. Comme la Puissance Active est nulle, les Wh de votre Linky ne bouge pas si vous y regardez.
      Tous les points que vous avez remarqués sont corrects et cohérents.

      Pour l’ESP32 qui chauffe, je ne me souviens pas, il est enfermé dans sa boite depuis des mois, mais cela ne m’étonne pas. Toutes les 40ms, il tourne à fond pour récolter le maximum d’echantillons U et I durant 20ms. Il arrive à prendre 130 U et 130I environ. J’en garde 100 répartis sur les 20ms pour les calculs qui sont effectués dans la tranche des 20ms suivantes.

      Pour l’histoire du retour en mode automatique au petit matin, je ne le constate pas chez moi. La seule explication que je verrai c’est un problème de WIFI, mais je ne comprends pas bien. À investiguer.

      Excusez-moi, pour la longueur des explications…

      • Guitou030 dit :

        Merci beaucoup pour ces explications c’est très clair.
        Concernant le jour nuit j’avais un peu bricolé le programme pour ne chauffé qu’au petit matin mais à la lecture des commentaires je pense avoir fait une erreur je corriger et tester.
        Encore merci pour tous ces partages

  20. Loïc40 dit :

    Bonjour André,
    Un super boulot de fait ça fonctionne à merveille.
    J’ai toutefois un soucis avec les heures creuses, car je voudrais mettre de 12h30 à 14h30.
    Dans le code c’est par heure entière mais pour essayer si je mets de 13 à 14h le routeur est forcé en mode 100% même si je remets en « Auto » il repasse à 100% quelques secondes après. voici ce que j’ai écrit :

    300 – if (hour >= 13 || hour <= 14) { //Force water Heater On during the night. Values OK for Summer and Winter even if one hour error
    301 – ModeHeater = 5;
    302 – retard = 0;
    303 – retardF = 0;
    304 – }

    Ensuite je comprends pas ce que je dois mettre à la place du 5 et 6 ci dessous ?

    305 – if (LastHour == 5 && hour == 6) { ModeHeater = 0; } // Back to Automatic mode
    306 – LastHour = hour;

    Merci d'avance pour ton aide

    • F1ATB André dit :

      D’abord à la ligne 300, il faut mettre
      if (hour >= 13 && hour < 14).... Inférieur à 14 et non pas inférieur ou égal Il faut remplir les 2 conditions donc un 'et' qui s'ecrit && Ce n'est pas la même chose si on a le passage à 0h dans l'intervalle souhaité Ensuite à la ligne 305 il faut écrire: 305 – if (LastHour == 13 && hour == 14) { ModeHeater = 0; } // Back to Automatic mode Il faut comprendre que ce bout de code est répété régulièrement. A 14h, au passage précedent dans la boucle il était 13h59..., LastHour vaut 13 et comme Hour, la nouvelle heure vaut 14, on revient en mode auto. J'ai noté que dans la prochaine version du logiciel, il faudra pouvoir prendre en compte les 1/2 Heure. Bon Routage...

      • Loïc40 dit :

        Merci pour ta réactivité, j’ai modifié le code je verrais demain ce qu’il en est. Pour rajouter les minutes c’est compliqué ? il ne suffit pas de mettre Hour23 et Min24 un truc dans le genre ?
        Je souhaite rajouter des heures creuses la nuit, je peux doubler les lignes 300 à 305 ? en adaptant les HC de nuit.

        300 – if (hour >= 13 && hour 2 créneaux HC avec les minutes
        > Sortie optionnelle sur relais à distance (par ex alimente le relais d’un autre ESP32 à l’autre bout de la maison pour la piscine par exemple)
        > MQTT
        > Pince pour la consommation du ballon d’eau chaude
        > un capteur de luminosité et/ou température du chauffe eau (par exemple s’il fait pas lumineux le chauffe eau se déclenche en HC de journée, s’il fait beau le chauffe eau reste en auto durant les HC en journée pour laisser d’autres appareils fonctionner au lieu de se mettre à 100%)
        > Eventuellement gérer le décalage horaire

        Voila ce qui laisse réfléchir à l’évolution.
        Encore un grand merci

        • F1ATB André dit :

          Pour avoir les minutes il faut rajouter:
          int minutes = int(temps.getMinutes());
          Ensuite passer en heures decimales
          float Hdeci=float(hour)+float(minutes)*100/60;
          Ensuite faire des comparaisons
          ex if (Hdeci >= 22.5 || Hdeci <= 4.25) { // Entre 22h30 et 4h15 .... if (Hdeci > 4.25 && Hdeci < 4.3) { ModeHeater = 0; } //Retour mode automatic avant 4h20 environ Avec 2 périodes de temps il faut bien jongler avec le ET logique &&, et le OU logique ||