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

    Bonjour, dans le programme Arduino IDE 2.1.0 quand je modifie dans préférence, l’endroit ou stoker les fichiers en première ligne, le langage en Français, et en dernière ligne >> Additional boards manager URLs: https://dl.espressif.com/dl/package_esp32_index.json << Rien ne se passe Rien ne change même après redémarrage ? Savez vous peux être pourquoi

  2. Franck dit :

    Bonjour, mise en service à l’instant. C’est fonctionnel mais pose tout de même problème.
    Il ne route pas le surplus mais la totalité de la production solaire. Je m’explique ….
    Je produit 1000w, la charge (maison) consomme 300w donc j’injecte 700w dans le réseau EDF.
    Le routeur mis en route devrait logiquement me router les 700w vers le CE et bien pas dans mon cas, il cherche à router les … 1000w !!!
    En modifiant la ligne 278 qui est « retardF = retardF + PW / 200 » en « retardF = retardF + (PW+300) / 200 j’arrive à l’équilibre.
    Aurais je loupé quelques choses?
    Ps: j’ai un autre routeur en fonctionnement (ATMEG328P) qui lui route bien les 700w.

    • F1ATB André dit :

      vous n’auriez pas la sonde de courant monté a l’envers.?

      • Franck dit :

        Non, les valeurs sont bonnes et passe en négatif quand il le faut. Je vérifie la puissance dans chaque circuit via des shelly EM.
        Nous avons parlez par mail hier, vous m’aviez dit que vous aviez Discord, et dans mon dernier mail je vous est envoyé une invitation à rejoindre mon tchat. Je pourrais vous y montrez dès impression d’écran des différentes valeurs si vous voulez.

        • F1ATB André dit :

          Actuellement en voyage. Il m’est difficile de chater.

          • Franck dit :

            A l’occasion 😉
            Autre point, comment ce fait il que les valeur de U et I fluctue à ce point? Taux d’échantillonnage trop faible sur un ESP32 comparer à un ATMEG ? Je profite d’avoir les deux plate-forme pour faire des comparaisons.
            Étant donné que la base est la valeur PW, si cette dernière n’est pas stable il est normal que la commande du Triac en soit son reflet.

          • Franck dit :

            Je fait site à mon commentaire précédent car je n’est pas trouvé la façon de le modifier.

            Si je prend la valeur d’EDF, au multimètre elle ne fluctue que très peu (quelques mili-volt) donc pourquoi en sortie d’ESP celle ci fluctue presque de quelques volts?

  3. F1ATB André dit :

    Le calcul est fait sur 100 mesures durant 20ms. Elles ne sont pas moyennes comme le fait un multimètre. c’est pour cela que vous avez l’impression que cela fluctue. On pourrait faire une moyenne sur U et I, mais je préfère filtrer au niveau de l’ouverture du Triac, en fin de chaine de calcul.

    • Franck dit :

      Nous sommes bien d’accord mais j’ai rajouté dans la boucle Loop quelques Serial.print qui me permettent de visualiser dans le moniteur série les valeurs U, I et quelques autres.
      Mon point de comparaison est mon routeur actuel sur lequel je récupère U et I de la même manière et la comparaison est flagrante, Donc c’est le programme qui génère cette fluctuation de la régulation?
      Si je n’avais pas ce point de comparaison je trouverai peu être sa normal.

      • F1ATB André dit :

        Chez moi je n’ai pas de grosses fluctuations. en général inférieur a 1 volt. Cela me fait penser au problème avec certaines cartes qui n’ont pas les masses gnd reliées ensemble.

  4. Jos dit :

    Bonjour André,
    Merci pour tout ces explications. Super.
    Je n’arrive pas à communiquer avec l’ESP32. Je reçois le message d’erreur:
    exec: « python »: executable file not found in $PATH

    Compilation error: exec: « python »: executable file not found in $PATH

    Savez-vous pourquoi?

    • F1ATB André dit :

      Avez vous installé les bibliothèques complémentaires qui sont listés sur la page?

  5. LIMOU dit :

    Bonjour à vous,

    Je suis actuellement en plein apprentissage avec mon ESP32 et j’essaye tant bien que mal a charger le programme mais je suis bloqué depuis hier sur ce message d’erreur?

    /Users/Desktop/SolarRouter_v2.01/SolarRouter_v2.01/SolarRouter_v2.01.ino:30:21: fatal error: PageWeb.h: No such file or directory
    #include « PageWeb.h »
    compilation terminated.

    exit status 1

    Compilation error: PageWeb.h: No such file or directory

  6. F6FXW dit :

    73 André,
    Pour infos je voudrais ici partager quelques déboires que j’ai eu après réalisation du routeur V2.
    Le gradateur fonctionnait très mal. La charge (une lampe tungstène) ne pouvait s’allumer que pour des angles de retard importants ou très faibles.
    (Je précise que j’utilise le dimmer RobotDyn version 24A)
    J’ai donc réalisé un petit montage proto avec un nano qui me permette de piloter l’angle à partir d’un potard.
    Après quelques essais et mesures j’ai rapidement constaté que le triac ne pouvait s’allumer que pour des tensions instantanées inférieures à ~150V
    Donc soit en début de période de 10ms (retard faible) ou en fin de période (retard fort). Entre deux le triac ne s’allume pas tout simplement !

    -1- J’ai donc d’abord supposé que le triac était « foireux » et ai donc remplacé le BTA24 par un BTA12 que j’avais en fond de tiroir. Résultat idem !
    -2- J’ai ensuite soupçonné l’optoTriac CT3021, et l’ai remplacé par un MOC3023 que j’avais (Pas facile, car le CT3021 c’est du CMS, et le MOC3023 du traversant…).
    Et là bingo! Tout Ok, l’allumage est parfait sur toute la plage des 180°

    Le dimmer RobotDyn étant une « chinoiserie » d’AliExpress je ne suis pas trop surpris.
    Mais je tenais à laisser un message ici, car pour vos « follower » non électroniciens, et en tous cas sans oscilloscope ne pourront jamais comprendre pourquoi leur routeur tout neuf ne marche pas lorsque ce type de bug apparaît.
    Dans ce cas, et pour eux je pense qu’il ne faut pas hésiter ! Si vous avez ces mêmes symptômes, changez de dimmer. (A moins de 10€). Perso j’ai perdu deux jours à pister, investiguer et corriger… Mais je suis Radio-amateur et retraité, et n’abandonne pas quand j’ai un os à ronger !

    Encore merci André pour ce magnifique post qui est très clair.
    J’ai particulièrement apprécié l’idée du réservoir virtuel pour piloter la réinjection dans le réseau.

    Bonne continuation,
    et 73 de Michel F6FXW

    • F1ATB André dit :

      Je viens de faire une manip similaire, suite à votre remarque en mettant une ampoule à filament de 50W.
      La manip est très facile avec le routeur version 3.00_Linky ou demande de modifier le code en forcant le retard sur la version 2.01 avec une sonde ampèremétrique.
      Les résultats avec ampèremètre sont les suivants en dehors de la luminosité de l’ampoule qui suit bien le pourcentage d’ouverture du Triac.
      10% 0.03A
      20% 0.06A
      30% 0.10A
      40% 0.13A
      50% 0.15A
      60% 0.17A
      70% 0.18A
      80% 0.19A
      90% 0.20A
      100% 0.20A

      J’ai donc une bonne progression du courant en fonction du pourcentage d’ouverture.
      Vous avez fait l’essai avec une lampe tungstène. Je ne sais pas comment répond ce type d’ampoule avec un courant haché.
      7
      Cdlt 73

      • F6FXW dit :

        Bonjour,
        Oui bien sur, avec un module dimmer opérationnel on obtient les résultats tels que vous les indiquez.
        Dans mon cas il s’agit bien d’un module défectueux. (L’optotriac défaillant), et oui, la charge que j’ai utilisé est purement résistive (ampoule tungstène)
        J’ai les enregistrements scope si vous le souhaitez. Mais le défaut est réglé, ce n’est pas le problème.

        Ce post avait seulement pour objectif de prévenir d’autres makeurs qui seraient dans la même situation.
        Je n’ai bien sûr aucune idée du nombre de modules non-fonctionnels mis sur le marché.

        Ce dont je suis sûr, c’est que quelqu’un qui n’a pas une grande pratique de l’utilisation des triacs/thyristors aura bien du mal à comprendre ce type de fonctionnement erratique.

        Cordiales 73, F6FXW

      • Samuel BURG dit :

        Bonjour,

        j’ai fait récemment une manip similaire, aussi à cause d’un Dimmer partiellement défectueux (un ZC qui est en retard de 1.2ms).

        j’ai relevé la puissance de sortie du Dimmer RobotDyn avec comme charge une ampoule tungstène, la mesure est faite avec une « prise intelligente » qui relève W, VA, PF etc…

        j’ai pris en compte la correction du retard du ZC.

        j’obtiens alors une courbe très similaire à celle reportée par André avec 50% de sortie pour 30% d’ouverture et ~100% de sortie pour 80% d’ouverture.

        de mon coté j’ai fait ceci pour disposer d’une calibration du contrôle du dimmer que je vais injecter dans mon routeur basé sur une modification de la « V2 » de André.

        cordialement,

  7. JACOLET dit :

    Bonjour,Bonsoir, ouf j’ais reussi a ouvrir l’application sur un smartphone a encode les bonne valeur pour le voltage et l’ampérage, il me reste l’afficheur dans la petite maison dans la prairie a mètre au points, et ceci qui mes indiqué dans le moniteur série <> que cela veux t’il dire ?

  8. JACOLET dit :

    01:08:15
    Power:14802.00
    [498656][I][WiFiClient.cpp:253] connect(): select returned due to timeout 3000 ms for fd 53
    connection failed
    [524627][E][WiFiUdp.cpp:172] beginPacket(): could not get host from dns: 11
    01:08:45
    Power:10097.00
    [528658][I][WiFiClient.cpp:253] connect(): select returned due to timeout 3000 ms for fd 53
    connection failed
    [554627][E][WiFiUdp.cpp:172] beginPacket(): could not get host from dns: 11
    01:09:15
    Power:126127.00
    [558658][I][WiFiClient.cpp:253] connect(): select returned due to timeout 3000 ms for fd 53
    connection failed
    [584629][E][WiFiUdp.cpp:172] beginPacket(): could not get host from dns: 11
    01:09:45
    Power:49249.00
    [588660][I][WiFiClient.cpp:253] connect(): select returned due to timeout 3000 ms for fd 53
    connection failed
    [614627][E][WiFiUdp.cpp:172] beginPacket(): could not get host from dns: 11
    01:10:15
    Power:15146.00
    [618658][I][WiFiClient.cpp:253] connect(): select returned due to timeout 3000 ms for fd 53
    connection failed
    [644630][E][WiFiUdp.cpp:172] beginPacket(): could not get host from dns: 11
    01:10:45
    Power:120642.00
    [648661][I][WiFiClient.cpp:253] connect(): select returned due to timeout 3000 ms for fd 53
    connection failed
    [674647][E][WiFiUdp.cpp:172] beginPacket(): could not get host from dns: 11
    01:11:15
    Power:122504.00
    [678678][I][WiFiClient.cpp:253] connect(): select returned due to timeout 3000 ms for fd 53
    connection failed

    • F1ATB André dit :

      Visiblement le Wifi n’arrive pas à se connecter. Reprenez la zone dédiée au WIFI et vérifiez :
      – le nom (SSID)
      – le mot de passe (password) de votre réseau
      – l’adresse IP que vous donnez à l’ESP32
      – l’adresse IP de la passerelle (gateway)

      • JACOLET dit :

        Le wifi se connecte bien avec mon smartphone les valeurs sont affichés et le graphique avec les sinusoïdes aussi et a l’air de bien le rester.
        Mais la carte esp32 avec l’afficheur n’est pas encore alimenter.

  9. F6FXW dit :

    Bonjour,
    Je n’obtient pas l’heure correcte. (il n’y pas d’erreur de compilation pour NTPserveur.h )
    Lorsque la fonction « void Read_Hour()  » est exécutée, l’instruction « Serial.println(temps.getFormattedTime() » renvoie un horodatage incorrect.
    Voir ci-dessus un extrait de la console.
    On voit bien qu’il y a une lecture toutes les 30s, mais l’heure n’est pas juste (puisque qu’en réalité il était 17h13 au lancement du programme)
    Du coup ModeHeader passe à ‘5’ et donc force le dimmer à plein pots !

    Qu’est-ce que j’ai pu mal faire ?…

    // ~~~~~~~~~ Extrait du moniteur série ~~~~~~~~~~~~~
    17:13:58.417 -> Test Time ->01:00:47
    17:13:58.417 -> Power:0.00
    17:14:28.413 -> Test Time ->01:01:17
    17:14:28.413 -> Power:0.00
    17:14:58.438 -> Test Time ->01:01:47
    17:14:58.438 -> Power:0.00
    17:15:28.435 -> Test Time ->01:02:17
    17:15:28.435 -> Power:0.00
    17:15:58.430 -> Test Time ->01:02:47
    17:15:58.430 -> Power:0.00
    17:16:28.460 -> Test Time ->01:03:17
    17:16:28.460 -> Power:0.00
    17:16:58.454 -> Test Time ->01:03:47

    Cordialement,
    73 F6FXW

    • F1ATB André dit :

      Il ne trouve pas le serveur de temps. Probablement l’adresse IP du Gateway (passerelle de votre réseau. En général adresse de la box internet) pour accéder au monde extérieur n’est pas bonne.
      Cdlt

      • F6FXW dit :

        Merci André,
        Sorry, je me suis rendu compte que l’aviez précisé dans votre paragraphe « Personnalisation » !
        C’est corrigé, et après mise à jour de l’offset à 7200, je récupère bien l’heure locale « juste »
        Merci,
        73 F6FXW

  10. F6FXW dit :

    Bonjour,
    Je ne sais pas comment joindre un document sur ce site.
    Je vous ai donc envoyé un courrier à votre adresse gmail, avec des copies d’écran et analyse des résultats.
    Les observations faites me laissent perplexe, et votre avis me serait bien utile.
    Bien cordialement,
    F6FXW Michel

  11. Samuel BURG dit :

    Bonjour,

    Merci pour les différentes explications présentées sur cette page et sur les multiples réponses dans les commentaires.

    Ayant un dimmer RobotDyn un peu défectueux (1.1-1.2ms de décalage du ZeroCross) j’ai analysé différents paramètres du programme et du montage présenté pour la version ‘2’.

    J’ai bien réussis à obtenir les bonnes mesures de tension et un bon contrôle du dimmer comme suit :
    – ajustement des résistances pour avoir les mesures dans la plage utile des lectures du ESP32
    – calibration pour une réponse linéaire des ADC et DAC du ESP32 via une LUT
    – calibration pour une réponse linéaire de l’ouverture du dimmer via une LUT
    – calibration en amplitude du transformateur de courant pour une bonne lecture de la tension
    – calibration corrective du retard du zero-cross pour aligner la phase du courant lors de l’affichage et des calculs
    – le contrôle des LED fonctionne et je n’utilise pas le relais.

    Je n’ai par contre pas de bon résultat sur la (in)stabilité du 1.65V et sur la mesure de l’ampérage.

    1)
    J’ai ainsi constaté une très forte instabilité du 1.65v de référence (lecture 2000-2100 même après re calibration, soit +/-2.5%).
    Cette variance n’est pas du tout modifiée par la modification des capacités 10uF et 470uF (même quand je les enlève !?) qui filtrent le 1.65V et le 3.3V.
    J’ai donc supposé que ceci correspond à la variance du ADC du ESP32 lors de la lecture et j’ai modifié le code pour calculer une valeur moyenne du signal de la pin gpio / adc du 1.65V pendant les 20ms de lecture de la tension et de l’ampérage. Ceci me donne alors un résultat bcp plus stable.

    Ceci m’ammène à la question suivante : je ne comprend pas comment sont calculées les valeurs de ces deux capacités de 10uF et 470uF ?
    Y a t il une fréquence particulière à filtrer ? Pourquoi les deux filtres ne sont pas les mêmes ?
    J’ai essayé différentes combinaisons de 10 à 1000uF mais je ne constante aucune différence de mesure … ?
    Mon ESP32 est autant défectueux que mon dimmer RobotDyn ? Ca serait vraiment pas de bol …

    2)
    Pour les mesures d’ampérage, j’ai un problème de calibration et surtout de point zero avec le capteur de courant (un transfo 1/2000 tout à fait identique à celui présenté sur votre page web).
    J’ai rapidement obtenu une mesure raisonnablement précise et stable sur la plage -500W à -2500W (injection du surplus de production), mais j’ai à peu près n’importe quoi autour de +/-500W avec 200W de décalage entre le relevé via ESP32 et les rapports du compteur Enedis ou les rapports de mon onduleur (un Sofar Solar HYD 6000 EP avec le dernier firmware en v4.x).
    En testant tout les paramètres possibles du calcul d’intensité et de puissance j’ai identifié que mes calibrations tombent juste si je décale la phase de l’intensité de 600 à 700 micro-secondes par rapport à la tension !? Mathématiquement, appliquer un décalage de phase pour permettre de trouver un point zero est simple, mais je ne comprend pas comment ceci peut se produire physiquement …

    Y a t il un parasite ou un appareil qui peut décaler la phase lors de la mesure de la tension ou de l’intensité ?

    Vu la longueur de la question, merci si vous arriver à lire jusque là 🙂
    et encore plus merci si vous avez une idée du problème.

    Cordialement,

    • F1ATB André dit :

      Pour le filtrage des alimentations c’est avant tout pour les améliorer. Les alimentations 5V sont des alimentations qui découpent le 50Hz par un signal de quelques dizaines de kHz. Ce sont de superbes générateurs d’harmoniques. On y trouve des dizaines de raies de 50Hz à 50kHz. De base, il y a un condensateur de filtrage souvent limité par manque de place. La 470uF est là en complément.En plus il faut prendre en compte que la consommation de l’ESP32 varie suivant les calculs qu’il fait et les émissions Wifi. On peut mettre ce que l’on veut entre 100uF et 1000uF. Pour la 10uF, comme elle est alimentée par 2 résistances 4.7kohm, cela coupe à 7Hz. Cela apporte une efficacité s’il restait du 50Hz.
      Maintenant la variation de mesure pour la référence 1.65V est à voir. De mémoire, j’avais regardé ce point et il m’était pas apparu trop variable. Après, je ne sais pas comment travaille l’ESP32 quand il a 4096 points de mesure sur les 3.3V. Si l’alimentation 3.3V varie, probablement qu’il y a un impact sur la mesure.

      Après pour le décalage de phase, tension, courant, il ne faut pas oublier que la sonde de courant c’est une self chargée par une résistance et que le transfo c’est 2 selfs avec un métal ferromagnétique au milieu. Il faut mettre une charge résistive et un oscilloscope bi courbe pour voir les écarts éventuels.
      Ensuite il y a le problème du bruit de mesure. En particulier, la sonde de courant, c’est une belle antenne pour récupérer des champs magnétiques environnants.

      Maintenant, le but du routeur ce n’est pas de mesurer la puissance avec précision comme doit le faire un Linky, c’est de savoir si on consomme ou injecte de la puissance sans trop se tromper.
      Cdlt

  12. Loïc dit :

    Bonjour à tous, est ce quelqu’un aurait rajouté le MQTT sur le programme d’André ? Je suis preneur. Merci d’avance à tous

    • F1ATB André dit :

      Si vous attendez un peu, cet été je vais publier une nouvelle version du routeur V2 qui s’appelera version V3.00_Sonde.
      Elle reprend le même hardware mais aura les mêmes fonctionnalités (MQTT etc) que la version V3.00_Linky.
      Cdlt

  13. Marcos83 dit :

    Bonsoir,
    J’ai pour ma part modifié le code d’André pour l’adapter à mes propres besoins. J’utilise home assistant via core-mosquito avec un seul capteur Shelly sur l’arrivée générale et le capteur du router d’André. J’ai ajouté le code Mqtt pour l’auto-discovery sur home assistant. Autrement dit, lorsqu’on connecte le router pour la première fois, il créer automatiquement « le device » et toutes ses entités complètement configurées et réglables pour certaines (relais optionnel et son seuil de déclenchement, activation désactivation du mode jour/nuit et des heures On et Off, réglage réactivité du triac). Le tout est recopié sur la page html activée par le serveur du routeur qui conserve les commandes d’origines mais qui affichent celles de home assistant. (Ce qui est modifié sur home assistant est visible immédiatement sur la page web du router et reciproquement).
    Je peux transmettre avec plaisir l’intégralité du code mais comme je l’ai beaucoup modifié, je ne suis pas sûr que ça puisse aider si on ne connaît pas trop le codage sur l’IDE Arduino. Il est néanmoins pas mal commenté. De plus, j’ai ajouté un afficheur LCD et donc l’ESP32 (qui n’est pas broché comme celui d’André et qui possédé une antenne extérieure) n’a plus que quelques broches de disponibles. Je peux le transmettre à André sans aucune prétention car sa manière de coder m’a beaucoup inspireé, mais si ça peut aider, ce sera avec plaisir.

    • Marcos83 dit :

      Au fait ! je précise que je n’ai pas de compteur linky et que ma proposition ci-dessus concernait la version sans linky puisqu’il semblerait que la V3.00_Sonde d’André serait encore avec du linky.
      Bonne journée.

      • Marcos83 dit :

        Bonjour André, je viens de réaliser que votre version V3.00_Sonde ne serait pas linky. Pouvez-vous préciser si la V3.00_Sonde inclura le code pour l’auto-discovery vers Home Assistant ? Je n’ai pas regardé en détail votre version linky et je ne sais pas si vous l’avez intégrée. Merci d’avance.

        • F1ATB André dit :

          La version avec sonde ampèremétrique V3.00_Sonde, aura comme pour la version Linky, une sortie MQTT permettant la remontée vers Home Assistant.

          Cdlt

    • Loïc dit :

      bonjour Marcos83, je suis preneur de votre code. Pouvez vous m’e l’envoyer sur teamzx@hotmail.fr ? Merci d’avance

      • Marcos83 dit :

        Bonsoir Loïc, je vous transmets le code fin de cette semaine. Désolé je viens juste de voir votre message.

  14. GRANDHAYE Alain dit :

    Bonjour André, Un très grand merci pour le sérieux de votre travail, je viens de réaliser le routeur que je destine à mon fils, car il n’a pas de pas de linky, avec un bon oscillo, et après un ou deux balbutiements,, ça fonctionne maintenant à merveille. rien à redire. Maintenant j’attaque le V3 chez moi, avec un linky, qui est encore plus simple à réaliser.

    Encore un grand merci à vous,

    • F1ATB André dit :

      Parfait
      Je travaille actuellement sur une nouvelle version de la V2 qui s’appellera V3.00_Sonde. Elle aura les mêmes fonctionnalités que la V3.00_Linky.

      Cdlt

  15. Samuel BURG dit :

    Bonjour,

    Quel est le logiciel que vous utilisez pour réaliser les schémas électriques ?
    QElectrotec ou un autre ?
    Dans QElectrotech je ne retrouve pas les icones/éléments que vous avez utilisés.

    Cordialement,

  16. Cyril dit :

    Bonjour,
    Serait-il possible dans la future version V3.00_Sonde de rajouter une courbe de température du chauffe-eau et un affichage de cette température dans la fenêtre par défaut de la maisonnette (avec une sonde DS18B20),
    Est-ce que ça complique beaucoup le programme ?
    Bonne journée

    • F1ATB André dit :

      Je note la remarque pour une future version. Il faut aussi rajouter des actions à réaliser suivant la température mesurée. Je le ferai plus tard afin de ne pas retarder la sortie de la nouvelle version avec sonde qui s’appellera finalement V3.00_UxI. J’écris actuellement la documentation pour publier dans les jours à venir.
      Cdlt

  17. Francois Grandcollot dit :

    oups je viens de voir votre commentaire à ce sujet.
    Sur certaines configurations, lors de la compilation, il y a une erreur de librairie inexistante :…..include
    Merci

  18. Marcos83 dit :

    Bonjour André,
    J’ai un petit bugg curieux avec ma V2 ancienne. Le mode Auto fonctionne bien ainsi que le mode nuit ( triac à 100%) mais les modes 25, 50 et 75% fonctionnent à 100%. J’ai affiché les valeurs de RetardF qui sont pourtant aux bonnes valeurs. Pourrait-il y avoir un lien avec la table de cosinus ? Sinon, avez-vous une piste ?
    Cdlt.

    • F1ATB André dit :

      La table des cosinus non. Elle ne sert qu’au calcul des distorsions.
      Je pense plutôt à un problème de léger décalage sur le passage à zéro, signal Zc et la commande du Triac en sortie de l’ESP32 qui s’arrete trop tard et ainsi, on amorce la période suivante.

      Cdlt

  19. Marcos83 dit :

    Merci, mais comment je peux y remedier ? Ce serait mon dimmer qui est défaillant ? Pourtant il fonctionne en mode Auto … Auriez-vous une idée à me suggérer ? Y a t-il une différence entre le code Mode Forçé et le mode Auto qui pourrait me donner une piste ?
    Cdlt

    • F1ATB André dit :

      J’ai relu le code, je ne vois pas pourquoi en automatique c’est bon et en forcé on est toujours à 100%.

      Passez à la version V3.01 pour essayer, vous pouvez toujours revenir à la V2 si vous en avez une copie.

      Cdlt

      • Marcos83 dit :

        Bonjour André,
        J’ai installé la V3 et c’est la même chose… Ce doit être mon gradateur. En revanche les valeurs de tension et de puissance une fois bien ajustées sont plus stables que sur la V2 (peut-être le partage des tâches entres les deux coeurs ?)
        Si je peux me permettre un avis personnel concernant l’ergonomie de la page des réglages des actions de la V3, je ne l’a trouve pas très intuitive même si comme on le dit souvent « c’est un coup à prendre ». En revanche, les améliorations au niveau du codage et de la mise à jour sont impressionnantes !
        Malheureusement je perds tout le code vers Home assistant en Auto-Discovery. A ce propos, les réglages MQTT ne proposent que le MQTT Topics Prefix. L’auto-Discovery nécessiste également la distinction des types de capteurs (sensor, number, select, binary_sensor, etc…) pour être reconnu par HA en auto-discovery et configurer automatiquement le « Device » (le routeur ESP dans ce cas). Ce qui oblige de modifier le code de la V3. Mais bon, Je sais que la critique est aisée et l’art est difficile mais mon intention est constructive.
        Encore Bravo André et merci pour ce partage !!!

        PS : Je me permet de transmettre des infos à propos de l’auto-discovery pour celles et ceux qui auraient envie de coder… 😉
        Ajouter le #include
        Plus d’infos sur -> https://arduinojson.org/?utm_source=meta&utm_medium=library.properties

        Visiter les sites suivants :
        https://arduinojson.org/v6/assistant/#/step1 –> to check all your Json message
        https://www.home-assistant.io/integrations/mqtt/#mqtt-discovery —> list of supported MQTT components
        https://pictogrammers.com/library/mdi/ —> List of icon mdi:xxxxx for Home Assistant.

        • F1ATB André dit :

          L’auto discovery sera probablement dans une prochaine version.
          Je ne sais pas si beaucoup de personnes utilisent le routeur avec HA.
          Ensuite il faudra éventuellement, forcer le Triac et les actions depuis HA.

          Cdlt

          • Marcos83 dit :

            Dans le code que j’ai ajouté en auto discovery pour Home assistant dans la version 2, je peux commander le triac depuis Home Assistant et vice versa. (Réactivité, mode J/N, Mode Auto à 100%, etc…). Pour info, un internaute à testé ma version 2 chez lui et tout fonctionne correctement. Le TRIAC sur mon routeur semble être en cause.
            L’idée d’intégrer auto discovery m’est venue lorsque j’ai installé le capteur Shelly EM à base d’ESP32. Une interface html simple et bien conçue avec un fichier excel (csv) téléchargeable qui enregistre les datas sur une année (seconde par seconde) des valeurs de tension et de puissance pour 2 sondes ampèremètriques, mais surtout une intégration complete et automatique dans Home assistant. Si ça peut vous épargner des recherches sur le codage pour HA via Json, je peux vous transmettre ma version 2.
            Également, j’aurais souhaité vos conseils pour intégrer un fichier include (comme vous le faites avec le code EPROM) pour y insérer tout le code auto discovery de façon à ajouter juste quelques lignes dans votre code original des futures versions. Ainsi, quand votre version évolue, je n’ai que quelques lignes de code à ajouter qui pointent vers mon fichier include et je conserve mes réglages HA. Merci d’avance.

          • Marcos83 dit :

            Ah oui ! J’ai remarqué que pour la V3 l’IDE arduino ne bugg plus en fin de transfert du code par le wifi. Sur la version 2 je suis obligé de fermer l’IDE et réouvrir pour sortir du mode transfert. Bonne nouvelle !

      • Marcos83 dit :

        Le include n’est pas passé: il s’agit de la bibliothèque
        André, si je laisse le champs vide du nom du Routage du Triac et que je sauvegarde, il devient impossible pour moi de récupérer le curseur pour ajouter un nom. Je ne sais pas si ça le fait chez les autres ? Désolé de mélanger les posts V2 et V3, mais c’était pour rester dans la continuité des posts précedents.
        Cdlt

      • Marcos83 dit :

        La bibliothèque est ArduinoJson (avec le point h)

  20. Marcos83 dit :

    Je vais essayer, mais pas sur que ça règle mon problème. De plus, j’avais ajouté toute la partie MQTT auto-Discovery pour Home Assistant + un afficheur 16*2. Va falloir que je reprogramme tout ça si je passe en V3.. Je vais attendre un peu que vos versions évoluent encore et je referais tout le circuit avec ses composants. J’en profiterais pour remplacer le dimmer. Sait-on jamais ?..
    A ce propos. N’envisagez-vous pas de coder l’auto-discovery sur Home Assistant avec recopie des parametrages et autres reglages ? (ce qui est fait sur HA est recopié sur le server esp et vice et versa ).
    Bon, pour l’instant je ne me sert pas des modes intermédiaires de toute façon.
    Encore merci pour votre disponibilité..