Note de ce sujet :
  • Moyenne : 5 (5 vote(s))
  • 1
  • 2
  • 3
  • 4
  • 5
Plus d'accès aux données de la passerelle Enphase Envoy
Configuration similaire à David, et une seule erreur aujourd'hui.

David je vais tester ta version.

@rdsoft30 Je suis en train de tester sur un ESP32 de test (seul).
Au début il se lance, mais un point qui m'a étonné, c'est que le point rouge d'activité restait tout le temps allumé sur la page "brute", mais j'arrivais à basculer sur d'autres pages.

Puis plus de connexion (délai d'attente dépassé).

Puis, plus étrange, l'ESP en exploitation a planté à son tour.

Je viens de le faire 2 x et même résultat qui va jusqu'au plantage des 2.

J'ai vu la page brute quelques instants avant le plantage (il a rebooté seul) de celui en exploitation, et il y avait plein plein de msg de refus de connexion à la passerelle Envoy (pas certain des msg exacts, c'était très court).

Petite précision, j'ai fait une mise à jour via OTA avec le BIN. Je vais peut-être tenté de compiler localement.
--------------------------------------------------------------
ESP32 (v17.27 et IP fixe) + sonde température + SSR -- Cumulus/Chauffe-Eau
Source données serveur Enphase.

Répondre

Pour faire avancer la chose,
Ma passerelle enphase est connecté en filaire a la box et l'esp est proche d'un point d'accès wifi (-52db)
Je suis en version 17.27 officielle
J'ai quand même pas mal d'erreur json (autours de 4 erreurs/minute)
Voici le contenu de ma page données brute (la ram mini a bien baissé depuis mon 1er message) et durant l'écriture de ce message j'ai eu un plantage de la page d'acceuil qui ne voulais pas se charger (point rouge allumé). En faisant un ctrl+F5 tout est rentré dans l'ordre

Code :
ESP32 On depuis : 53h 48mn
ESP32 modèle : Wroom seul
Source des mesures : Enphase
Niveau WiFi : -52 dBm
Point d'accès WiFi : xx:xx:xx:xx:xx:xx
Réseau WiFi : LPplus
Canal WiFi : 6
Adresse MAC ESP32 : xx:xx:xx:xx:xx:xx
Adresse IPV4 ESP32 : 192.168.xx.xx
Adresse IP .local ESP32 : RMS-ESP32-xxxxxx.local
Adresse IPV6 ESP32 : [xxxx:xxx:xxx:xxxx:xxxx:xxxx:xxxx:xxxx]
Adresse passerelle : 192.168.xx.xx
Masque du réseau : 255.255.255.0
Charge coeur 0 (Lecture Puissance) Min, Moy, Max : 1, 7, 825 ms
Charge coeur 1 (Calcul + Wifi) Min, Moy, Max : 1, 1, 4 ms
Mémoire RAM libre actuellement : 50352 octet
Mémoire RAM libre minimum : 884 octet
Nombre d'interruptions en 15ms du Gradateur (signal Zc) : Filtrés/Brutes : Pas de Triac
Synchronisation au Secteur ou asynchrone horloge ESP32 Horloge ESP
Nombre de capteurs de température DS18B20 : 0
Messages
09/07/2026 22:45:50 : Envoy JSON Reading 3 failed, status= TIMEOUT, partialLen=447
09/07/2026 22:45:50 : JSON Loading failed
09/07/2026 22:46:00 : Envoy JSON Reading 3 failed, status= TIMEOUT, partialLen=444
09/07/2026 22:46:00 : JSON Loading failed
09/07/2026 22:46:04 : Envoy JSON Reading 3 failed, status= TIMEOUT, partialLen=453
09/07/2026 22:46:04 : JSON Loading failed
09/07/2026 22:46:22 : Envoy JSON Reading 3 failed, status= TIMEOUT, partialLen=452
09/07/2026 22:46:22 : JSON Loading failed
09/07/2026 22:47:36 : Envoy JSON Reading 3 failed, status= TIMEOUT, partialLen=449
09/07/2026 22:47:36 : JSON Loading failed
Aéro

V17.27 avec SSR sur CE 200L/3Kw - Mesure passerelle Emphase + 15x 400W sur IQ7A
Répondre

Bonjour,

Je viens d'installer la version de Rdsoft30 (message #431) pour voir si cela améliore/règle les soucis avec la passerelle enphase par rapport a la version 17.27 officielle.
D'ici le début de semaine, je vous ferai un retour

Merci a tous
Aéro

V17.27 avec SSR sur CE 200L/3Kw - Mesure passerelle Emphase + 15x 400W sur IQ7A
Répondre

(09-07-2026, 07:41 PM)rdsoft30 a écrit :
(09-07-2026, 06:51 PM)Placo84 a écrit :
(09-07-2026, 06:17 PM)grostoto a écrit :
(09-07-2026, 05:23 PM)Placo84 a écrit : Bonjour,

Ce n'est peut être pas l'endroit, mais comme il me semble que c'est suite à la mise à jour...
Je ne comprends pas pourquoi j'ai tant d'écart entre puissance apparente et active (PW)
Si quelqu'un veut bien m'expliquer ?

Merci

rien à voir avec la mise à jour.. l'écart peut même etre encore plus important....

Ok. merci.
il me semble que je n'avais pas ça avant ... Pas autant en tout cas.
Par ailleurs je suis passé en .27 et j'ai ces messages : 
Merci

Messages
09/07/2026 18:04:27 : JSON Loading failed
09/07/2026 18:11:27 : Envoy JSON Reading 3 failed, status= TIMEOUT, partialLen=448
09/07/2026 18:11:27 : JSON Loading failed
09/07/2026 18:16:11 : Envoy JSON Reading 3 failed, status= TIMEOUT, partialLen=434
09/07/2026 18:16:11 : JSON Loading failed
09/07/2026 18:31:07 : Envoy error while reading HTTP response status, status= TIMEOUT, partialLen=0
09/07/2026 18:41:27 : Envoy JSON Reading 3 failed, status= TIMEOUT, partialLen=445
09/07/2026 18:41:27 : JSON Loading failed
09/07/2026 18:47:27 : Envoy JSON Reading 3 failed, status= TIMEOUT, partialLen=439
09/07/2026 18:47:27 : JSON Loading failed

En effet tu as beaucoup de message d'erreur.....
Je m’interroge sur ta configuration réseau.
Peux tu donner l’attenuation en Dbm de ton signal wifi sur l’esp32?
De mon côté  l’enphase est en filaire et lesp32 en wifi avec -60Dbm.... et aujourd'hui je n’ai eu que 2 message en 10h de connexion......
Je ne comprends pas bien pourquoi tu as tant de problème.

Des idées d’autres personnes? D’autres personnes qui ont autant de messages avec la version 17.27?

A plus

Bonjour
Voici les messages reçus.
je suis en wifi -26 dBm
Version 17.27


Pièces jointes Miniature(s)
   
Répondre

(09-07-2026, 06:38 PM)rdsoft30 a écrit : Salut à tous,

C...
Voilà ou télécharger les sources et le binaire:
https://drive.google.com/drive/folders/1...drive_link

David


Bonjour David,

J'ai enfin un peu de temps. J'ai essayé de compiler, mais j'ai beaucoup d'erreurs :

Code :
642 | float COSphiI = 1;
      |       ^~~~~~~
Solar_Router.ino:644:6: error: redefinition of 'long int TlastEASTvalide'
  644 | long TlastEASTvalide = 0;
      |      ^~~~~~~~~~~~~~~
Solar_Router_V17_27.ino:643:6: note: 'long int TlastEASTvalide' previously defined here
  643 | long TlastEASTvalide = 0;
      |      ^~~~~~~~~~~~~~~
Solar_Router.ino:645:6: error: redefinition of 'long int TlastEAITvalide'
  645 | long TlastEAITvalide = 0;
      |      ^~~~~~~~~~~~~~~
Solar_Router_V17_27.ino:644:6: note: 'long int TlastEAITvalide' previously defined here
  644 | long TlastEAITvalide = 0;
      |      ^~~~~~~~~~~~~~~
Solar_Router.ino:646:8: error: redefinition of 'String LTARF'
  646 | String LTARF = "";  //Option tarifaire RTE
      |        ^~~~~
Solar_Router_V17_27.ino:645:8: note: 'String LTARF' previously declared here
  645 | String LTARF = "";  //Option tarifaire RTE
      |        ^~~~~
Solar_Router.ino:647:8: error: redefinition of 'String STGE'
  647 | String STGE = "";   //Status Linky
      |        ^~~~
Solar_Router_V17_27.ino:646:8: note: 'String STGE' previously declared here
  646 | String STGE = "";   //Status Linky
      |        ^~~~
Solar_Router.ino:648:8: error: redefinition of 'String STGEt'
  648 | String STGEt = "";  //Status Tempo uniquement RTE
      |        ^~~~~
Solar_Router_V17_27.ino:647:8: note: 'String STGEt' previously declared here
  647 | String STGEt = "";  //Status Tempo uniquement RTE
      |        ^~~~~
Solar_Router.ino:649:8: error: redefinition of 'String NGTF'
  649 | String NGTF = "";   //Calendrier tarifaire
      |        ^~~~
Solar_Router_V17_27.ino:648:8: note: 'String NGTF' previously declared here
  648 | String NGTF = "";   //Calendrier tarifaire
      |        ^~~~
Solar_Router.ino:650:8: error: redefinition of 'String RTE_Jour'
  650 | String RTE_Jour = "NON_DEFINI";
      |        ^~~~~~~~
Solar_Router_V17_27.ino:649:8: note: 'String RTE_Jour' previously declared here
  649 | String RTE_Jour = "NON_DEFINI";
      |        ^~~~~~~~
Solar_Router.ino:651:8: error: redefinition of 'String RTE_Demain'
  651 | String RTE_Demain = "NON_DEFINI";
      |        ^~~~~~~~~~
Solar_Router_V17_27.ino:650:8: note: 'String RTE_Demain' previously declared here
  650 | String RTE_Demain = "NON_DEFINI";
      |        ^~~~~~~~~~
Solar_Router.ino:652:6: error: redefinition of 'long int EASF01'
  652 | long EASF01 = 0;
      |      ^~~~~~
Solar_Router_V17_27.ino:651:6: note: 'long int EASF01' previously defined here
  651 | long EASF01 = 0;
      |      ^~~~~~
Solar_Router.ino:653:6: error: redefinition of 'long int EASF02'
  653 | long EASF02 = 0;
      |      ^~~~~~
Solar_Router_V17_27.ino:652:6: note: 'long int EASF02' previously defined here
  652 | long EASF02 = 0;
      |      ^~~~~~
Solar_Router.ino:654:6: error: redefinition of 'long int EASF03'
  654 | long EASF03 = 0;
      |      ^~~~~~
Solar_Router_V17_27.ino:653:6: note: 'long int EASF03' previously defined here
  653 | long EASF03 = 0;
      |      ^~~~~~
Solar_Router.ino:655:6: error: redefinition of 'long int EASF04'
  655 | long EASF04 = 0;
      |      ^~~~~~
Solar_Router_V17_27.ino:654:6: note: 'long int EASF04' previously defined here
  654 | long EASF04 = 0;
      |      ^~~~~~
Solar_Router.ino:656:6: error: redefinition of 'long int EASF05'
  656 | long EASF05 = 0;
      |      ^~~~~~
Solar_Router_V17_27.ino:655:6: note: 'long int EASF05' previously defined here
  655 | long EASF05 = 0;
      |      ^~~~~~
Solar_Router.ino:657:6: error: redefinition of 'long int EASF06'
  657 | long EASF06 = 0;
      |      ^~~~~~
Solar_Router_V17_27.ino:656:6: note: 'long int EASF06' previously defined here
  656 | long EASF06 = 0;
      |      ^~~~~~
Solar_Router.ino:658:6: error: redefinition of 'long int EASF07'
  658 | long EASF07 = 0;
      |      ^~~~~~
Solar_Router_V17_27.ino:657:6: note: 'long int EASF07' previously defined here
  657 | long EASF07 = 0;
      |      ^~~~~~
Solar_Router.ino:659:6: error: redefinition of 'long int EASF08'
  659 | long EASF08 = 0;
      |      ^~~~~~
Solar_Router_V17_27.ino:658:6: note: 'long int EASF08' previously defined here
  658 | long EASF08 = 0;
      |      ^~~~~~
Solar_Router.ino:660:6: error: redefinition of 'long int EASF09'
  660 | long EASF09 = 0;
      |      ^~~~~~
Solar_Router_V17_27.ino:659:6: note: 'long int EASF09' previously defined here
  659 | long EASF09 = 0;
      |      ^~~~~~
Solar_Router.ino:661:6: error: redefinition of 'long int EASF10'
  661 | long EASF10 = 0;
      |      ^~~~~~
Solar_Router_V17_27.ino:660:6: note: 'long int EASF10' previously defined here
  660 | long EASF10 = 0;
      |      ^~~~~~
Solar_Router.ino:664:8: error: redefinition of 'String TokenEnphase'
  664 | String TokenEnphase = "";
      |        ^~~~~~~~~~~~
Solar_Router_V17_27.ino:663:8: note: 'String TokenEnphase' previously declared here
  663 | String TokenEnphase = "";
      |        ^~~~~~~~~~~~
Solar_Router.ino:665:8: error: redefinition of 'String EnphaseUser'
  665 | String EnphaseUser = "";
      |        ^~~~~~~~~~~
Solar_Router_V17_27.ino:664:8: note: 'String EnphaseUser' previously declared here
  664 | String EnphaseUser = "";
      |        ^~~~~~~~~~~
Solar_Router.ino:666:8: error: redefinition of 'String EnphasePwd'
  666 | String EnphasePwd = "";
      |        ^~~~~~~~~~
Solar_Router_V17_27.ino:665:8: note: 'String EnphasePwd' previously declared here
  665 | String EnphasePwd = "";
      |        ^~~~~~~~~~
Solar_Router.ino:667:8: error: redefinition of 'String EnphaseSerial'
  667 | String EnphaseSerial = "0";  //Sert égalemnet au Shelly comme numéro de voie
      |        ^~~~~~~~~~~~~
Solar_Router_V17_27.ino:666:8: note: 'String EnphaseSerial' previously declared here
  666 | String EnphaseSerial = "0";  //Sert égalemnet au Shelly comme numéro de voie
      |        ^~~~~~~~~~~~~
Solar_Router.ino:668:8: error: redefinition of 'String JsonToken'
  668 | String JsonToken = "";
      |        ^~~~~~~~~
Solar_Router_V17_27.ino:667:8: note: 'String JsonToken' previously declared here
  667 | String JsonToken = "";
      |        ^~~~~~~~~
Solar_Router.ino:669:8: error: redefinition of 'String Session_id'
  669 | String Session_id = "";
      |        ^~~~~~~~~~
Solar_Router_V17_27.ino:668:8: note: 'String Session_id' previously declared here
  668 | String Session_id = "";
      |        ^~~~~~~~~~
Solar_Router.ino:670:6: error: redefinition of 'long int LastwhDlvdCum'
  670 | long LastwhDlvdCum = 0;             //Dernière valeur cumul Wh Soutire.
      |      ^~~~~~~~~~~~~
Solar_Router_V17_27.ino:669:6: note: 'long int LastwhDlvdCum' previously defined here
  669 | long LastwhDlvdCum = 0;             //Dernière valeur cumul Wh Soutire.
      |      ^~~~~~~~~~~~~
Solar_Router.ino:671:6: error: redefinition of 'long int LastwhRcvdCum'
  671 | long LastwhRcvdCum = 0;             //Dernière valeur cumul Wh injecté
      |      ^~~~~~~~~~~~~
Solar_Router_V17_27.ino:670:6: note: 'long int LastwhRcvdCum' previously defined here
  670 | long LastwhRcvdCum = 0;             //Dernière valeur cumul Wh injecté
      |      ^~~~~~~~~~~~~
Solar_Router.ino:672:7: error: redefinition of 'float EMI_Wh'
  672 | float EMI_Wh = 0;                   //Energie entrée Maison Injecté Wh
      |       ^~~~~~
Solar_Router_V17_27.ino:671:7: note: 'float EMI_Wh' previously defined here
  671 | float EMI_Wh = 0;                   //Energie entrée Maison Injecté Wh
      |       ^~~~~~
Solar_Router.ino:673:7: error: redefinition of 'float EMS_Wh'
  673 | float EMS_Wh = 0;                   //Energie entrée Maison Soutirée Wh
      |       ^~~~~~
Solar_Router_V17_27.ino:672:7: note: 'float EMS_Wh' previously defined here
  672 | float EMS_Wh = 0;                   //Energie entrée Maison Soutirée Wh
      |       ^~~~~~
Solar_Router.ino:674:15: error: redefinition of 'long unsigned int lastTokenUpdate'
  674 | unsigned long lastTokenUpdate = 0;  //interval de temps depuis dernier Token Enphase //SR19
      |               ^~~~~~~~~~~~~~~
Solar_Router_V17_27.ino:673:15: note: 'long unsigned int lastTokenUpdate' previously defined here
  673 | unsigned long lastTokenUpdate = 0;  //interval de temps depuis dernier Token Enphase //SR19
      |               ^~~~~~~~~~~~~~~
Solar_Router.ino:677:8: error: redefinition of 'String SG_dataBrute'
  677 | String SG_dataBrute = "";
      |        ^~~~~~~~~~~~
Solar_Router_V17_27.ino:676:8: note: 'String SG_dataBrute' previously declared here
  676 | String SG_dataBrute = "";
      |        ^~~~~~~~~~~~
Solar_Router.ino:680:8: error: redefinition of 'String HW_dataBrute'
  680 | String HW_dataBrute = "";
      |        ^~~~~~~~~~~~
Solar_Router_V17_27.ino:679:8: note: 'String HW_dataBrute' previously declared here
  679 | String HW_dataBrute = "";
      |        ^~~~~~~~~~~~
Solar_Router.ino:683:8: error: redefinition of 'String ShEm_dataBrute'
  683 | String ShEm_dataBrute = "";
      |        ^~~~~~~~~~~~~~
Solar_Router_V17_27.ino:682:8: note: 'String ShEm_dataBrute' previously declared here
  682 | String ShEm_dataBrute = "";
      |        ^~~~~~~~~~~~~~
Solar_Router.ino:684:5: error: redefinition of 'int ShEm_comptage_appels'
  684 | int ShEm_comptage_appels = 0;
      |     ^~~~~~~~~~~~~~~~~~~~
Solar_Router_V17_27.ino:683:5: note: 'int ShEm_comptage_appels' previously defined here
  683 | int ShEm_comptage_appels = 0;
      |     ^~~~~~~~~~~~~~~~~~~~
Solar_Router.ino:685:7: error: redefinition of 'float PwMoy2'
  685 | float PwMoy2 = 0;  //Moyenne voie secondsaire
      |       ^~~~~~
Solar_Router_V17_27.ino:684:7: note: 'float PwMoy2' previously defined here
  684 | float PwMoy2 = 0;  //Moyenne voie secondsaire
      |       ^~~~~~
Solar_Router.ino:686:7: error: redefinition of 'float pfMoy2'
  686 | float pfMoy2 = 1;  //pf Voie secondaire
      |       ^~~~~~
Solar_Router_V17_27.ino:685:7: note: 'float pfMoy2' previously defined here
  685 | float pfMoy2 = 1;  //pf Voie secondaire
      |       ^~~~~~
Solar_Router.ino:687:8: error: redefinition of 'String Shelly_Name'
  687 | String Shelly_Name = "";
      |        ^~~~~~~~~~~
Solar_Router_V17_27.ino:686:8: note: 'String Shelly_Name' previously declared here
  686 | String Shelly_Name = "";
      |        ^~~~~~~~~~~
Solar_Router.ino:688:8: error: redefinition of 'String Shelly_Profile'
  688 | String Shelly_Profile = "";
      |        ^~~~~~~~~~~~~~
Solar_Router_V17_27.ino:687:8: note: 'String Shelly_Profile' previously declared here
  687 | String Shelly_Profile = "";
      |        ^~~~~~~~~~~~~~
Solar_Router.ino:691:8: error: redefinition of 'String P_MQTT_Brute'
  691 | String P_MQTT_Brute = "";
      |        ^~~~~~~~~~~~
Solar_Router_V17_27.ino:690:8: note: 'String P_MQTT_Brute' previously declared here
  690 | String P_MQTT_Brute = "";
      |        ^~~~~~~~~~~~
Solar_Router.ino:692:7: error: redefinition of 'float PwMQTT'
  692 | float PwMQTT = 0;
      |       ^~~~~~
Solar_Router_V17_27.ino:691:7: note: 'float PwMQTT' previously defined here
  691 | float PwMQTT = 0;
      |       ^~~~~~
Solar_Router.ino:693:7: error: redefinition of 'float PvaMQTT'
  693 | float PvaMQTT = 0;
      |       ^~~~~~~
Solar_Router_V17_27.ino:692:7: note: 'float PvaMQTT' previously defined here
  692 | float PvaMQTT = 0;
      |       ^~~~~~~
Solar_Router.ino:694:7: error: redefinition of 'float PfMQTT'
  694 | float PfMQTT = 1;
      |       ^~~~~~
Solar_Router_V17_27.ino:693:7: note: 'float PfMQTT' previously defined here
  693 | float PfMQTT = 1;
      |       ^~~~~~
Solar_Router.ino:697:6: error: redefinition of 'byte TempoRTEon'
  697 | byte TempoRTEon = 0;
      |      ^~~~~~~~~~
Solar_Router_V17_27.ino:696:6: note: 'byte TempoRTEon' previously defined here
  696 | byte TempoRTEon = 0;
      |      ^~~~~~~~~~
Solar_Router.ino:698:5: error: redefinition of 'int LastHeureRTE'
  698 | int LastHeureRTE = -1;
      |     ^~~~~~~~~~~~
Solar_Router_V17_27.ino:697:5: note: 'int LastHeureRTE' previously defined here
  697 | int LastHeureRTE = -1;
      |     ^~~~~~~~~~~~
Solar_Router.ino:699:5: error: redefinition of 'int LTARFbin'
  699 | int LTARFbin = 0;  //Code binaire  des tarifs
      |     ^~~~~~~~
Solar_Router_V17_27.ino:698:5: note: 'int LTARFbin' previously defined here
  698 | int LTARFbin = 0;  //Code binaire  des tarifs
      |     ^~~~~~~~
Solar_Router.ino:702:8: error: redefinition of 'int8_t RMSextIdx'
  702 | int8_t RMSextIdx = 0;
      |        ^~~~~~~~~
Solar_Router_V17_27.ino:701:8: note: 'int8_t RMSextIdx' previously defined here
  701 | int8_t RMSextIdx = 0;
      |        ^~~~~~~~~
Solar_Router.ino:703:6: error: redefinition of 'bool RMSextIPauto'
  703 | bool RMSextIPauto = true;
      |      ^~~~~~~~~~~~
Solar_Router_V17_27.ino:702:6: note: 'bool RMSextIPauto' previously defined here
  702 | bool RMSextIPauto = true;
      |      ^~~~~~~~~~~~
Solar_Router.ino:706:8: error: redefinition of 'Action LesActions [10]'
  706 | Action LesActions[LES_ACTIONS_LENGTH];  //Liste des actions
      |        ^~~~~~~~~~
Solar_Router_V17_27.ino:705:8: note: 'Action LesActions [10]' previously declared here
  705 | Action LesActions[LES_ACTIONS_LENGTH];  //Liste des actions
      |        ^~~~~~~~~~
Solar_Router.ino:707:14: error: redefinition of 'volatile int NbActions'
  707 | volatile int NbActions = 0;
      |              ^~~~~~~~~
Solar_Router_V17_27.ino:706:14: note: 'volatile int NbActions' previously defined here
  706 | volatile int NbActions = 0;
      |              ^~~~~~~~~
Solar_Router.ino:708:6: error: redefinition of 'byte ReacCACSI'
  708 | byte ReacCACSI = 1;
      |      ^~~~~~~~~
Solar_Router_V17_27.ino:707:6: note: 'byte ReacCACSI' previously defined here
  707 | byte ReacCACSI = 1;
      |      ^~~~~~~~~
Solar_Router.ino:709:14: error: redefinition of 'unsigned int Fpwm'
  709 | unsigned int Fpwm = 500;  // Frequence signaux PWM en Hz
      |              ^~~~
Solar_Router_V17_27.ino:708:14: note: 'unsigned int Fpwm' previously defined here
  708 | unsigned int Fpwm = 500;  // Frequence signaux PWM en Hz
      |              ^~~~
Solar_Router.ino:714:15: error: redefinition of 'long unsigned int startMillis'
  714 | unsigned long startMillis;
      |               ^~~~~~~~~~~
Solar_Router_V17_27.ino:713:15: note: 'long unsigned int startMillis' previously declared here
  713 | unsigned long startMillis;
      |               ^~~~~~~~~~~
Solar_Router.ino:715:15: error: redefinition of 'long unsigned int previousWifiMillis'
  715 | unsigned long previousWifiMillis;
      |               ^~~~~~~~~~~~~~~~~~
Solar_Router_V17_27.ino:714:15: note: 'long unsigned int previousWifiMillis' previously declared here
  714 | unsigned long previousWifiMillis;
      |               ^~~~~~~~~~~~~~~~~~
Solar_Router.ino:716:15: error: redefinition of 'long unsigned int previousHistoryMillis'
  716 | unsigned long previousHistoryMillis;
      |               ^~~~~~~~~~~~~~~~~~~~~
Solar_Router_V17_27.ino:715:15: note: 'long unsigned int previousHistoryMillis' previously declared here
  715 | unsigned long previousHistoryMillis;
      |               ^~~~~~~~~~~~~~~~~~~~~
Solar_Router.ino:717:15: error: redefinition of 'long unsigned int previousWsMillis'
  717 | unsigned long previousWsMillis;
      |               ^~~~~~~~~~~~~~~~
Solar_Router_V17_27.ino:716:15: note: 'long unsigned int previousWsMillis' previously declared here
  716 | unsigned long previousWsMillis;
      |               ^~~~~~~~~~~~~~~~
Solar_Router.ino:718:15: error: redefinition of 'long unsigned int previousWiMillis'
  718 | unsigned long previousWiMillis;
      |               ^~~~~~~~~~~~~~~~
Solar_Router_V17_27.ino:717:15: note: 'long unsigned int previousWiMillis' previously declared here
  717 | unsigned long previousWiMillis;
      |               ^~~~~~~~~~~~~~~~
Solar_Router.ino:719:15: error: redefinition of 'long unsigned int LastRMS_Millis'
  719 | unsigned long LastRMS_Millis;
      |               ^~~~~~~~~~~~~~
Solar_Router_V17_27.ino:718:15: note: 'long unsigned int LastRMS_Millis' previously declared here
  718 | unsigned long LastRMS_Millis;
      |               ^~~~~~~~~~~~~~
Solar_Router.ino:720:15: error: redefinition of 'long unsigned int previousTimer2sMillis'
  720 | unsigned long previousTimer2sMillis;
      |               ^~~~~~~~~~~~~~~~~~~~~
Solar_Router_V17_27.ino:719:15: note: 'long unsigned int previousTimer2sMillis' previously declared here
  719 | unsigned long previousTimer2sMillis;
      |               ^~~~~~~~~~~~~~~~~~~~~
Solar_Router.ino:721:15: error: redefinition of 'long unsigned int previousOverProdMillis'
  721 | unsigned long previousOverProdMillis;
      |               ^~~~~~~~~~~~~~~~~~~~~~
Solar_Router_V17_27.ino:720:15: note: 'long unsigned int previousOverProdMillis' previously declared here
  720 | unsigned long previousOverProdMillis;
      |               ^~~~~~~~~~~~~~~~~~~~~~
Solar_Router.ino:722:15: error: redefinition of 'long unsigned int previousLEDsMillis'
  722 | unsigned long previousLEDsMillis;
      |               ^~~~~~~~~~~~~~~~~~
Solar_Router_V17_27.ino:721:15: note: 'long unsigned int previousLEDsMillis' previously declared here
  721 | unsigned long previousLEDsMillis;
      |               ^~~~~~~~~~~~~~~~~~
Solar_Router.ino:723:15: error: redefinition of 'long unsigned int previousActionMillis'
  723 | unsigned long previousActionMillis;
      |               ^~~~~~~~~~~~~~~~~~~~
Solar_Router_V17_27.ino:722:15: note: 'long unsigned int previousActionMillis' previously declared here
  722 | unsigned long previousActionMillis;
      |               ^~~~~~~~~~~~~~~~~~~~
Solar_Router.ino:724:15: error: redefinition of 'long unsigned int previousTempMillis'
  724 | unsigned long previousTempMillis;
      |               ^~~~~~~~~~~~~~~~~~
Solar_Router_V17_27.ino:723:15: note: 'long unsigned int previousTempMillis' previously declared here
  723 | unsigned long previousTempMillis;
      |               ^~~~~~~~~~~~~~~~~~
Solar_Router.ino:725:15: error: redefinition of 'long unsigned int previousLoop'
  725 | unsigned long previousLoop;
      |               ^~~~~~~~~~~~
Solar_Router_V17_27.ino:724:15: note: 'long unsigned int previousLoop' previously declared here
  724 | unsigned long previousLoop;
      |               ^~~~~~~~~~~~
Solar_Router.ino:726:15: error: redefinition of 'long unsigned int previousETX'
  726 | unsigned long previousETX;
      |               ^~~~~~~~~~~
Solar_Router_V17_27.ino:725:15: note: 'long unsigned int previousETX' previously declared here
  725 | unsigned long previousETX;
      |               ^~~~~~~~~~~
Solar_Router.ino:727:15: error: redefinition of 'long unsigned int PeriodeProgMillis'
  727 | unsigned long PeriodeProgMillis = 1000;
      |               ^~~~~~~~~~~~~~~~~
Solar_Router_V17_27.ino:726:15: note: 'long unsigned int PeriodeProgMillis' previously defined here
  726 | unsigned long PeriodeProgMillis = 1000;
      |               ^~~~~~~~~~~~~~~~~
Solar_Router.ino:728:10: error: redefinition of 'uint64_t T_On_seconde'
  728 | uint64_t T_On_seconde = 0;
      |          ^~~~~~~~~~~~
Solar_Router_V17_27.ino:727:10: note: 'uint64_t T_On_seconde' previously defined here
  727 | uint64_t T_On_seconde = 0;
      |          ^~~~~~~~~~~~
Solar_Router.ino:729:7: error: redefinition of 'float previousLoopMin'
  729 | float previousLoopMin = 1000;
      |       ^~~~~~~~~~~~~~~
Solar_Router_V17_27.ino:728:7: note: 'float previousLoopMin' previously defined here
  728 | float previousLoopMin = 1000;
      |       ^~~~~~~~~~~~~~~
Solar_Router.ino:730:7: error: redefinition of 'float previousLoopMax'
  730 | float previousLoopMax = 0;
      |       ^~~~~~~~~~~~~~~
Solar_Router_V17_27.ino:729:7: note: 'float previousLoopMax' previously defined here
  729 | float previousLoopMax = 0;
      |       ^~~~~~~~~~~~~~~
Solar_Router.ino:731:7: error: redefinition of 'float previousLoopMoy'
  731 | float previousLoopMoy = 0;
      |       ^~~~~~~~~~~~~~~
Solar_Router_V17_27.ino:730:7: note: 'float previousLoopMoy' previously defined here
  730 | float previousLoopMoy = 0;
      |       ^~~~~~~~~~~~~~~
Solar_Router.ino:732:15: error: redefinition of 'long unsigned int previousTimeRMS'
  732 | unsigned long previousTimeRMS;
      |               ^~~~~~~~~~~~~~~
Solar_Router_V17_27.ino:731:15: note: 'long unsigned int previousTimeRMS' previously declared here
  731 | unsigned long previousTimeRMS;
      |               ^~~~~~~~~~~~~~~
Solar_Router.ino:733:7: error: redefinition of 'float previousTimeRMSMin'
  733 | float previousTimeRMSMin = 1000;
      |       ^~~~~~~~~~~~~~~~~~
Solar_Router_V17_27.ino:732:7: note: 'float previousTimeRMSMin' previously defined here
  732 | float previousTimeRMSMin = 1000;
      |       ^~~~~~~~~~~~~~~~~~
Solar_Router.ino:734:7: error: redefinition of 'float previousTimeRMSMax'
  734 | float previousTimeRMSMax = 0;
      |       ^~~~~~~~~~~~~~~~~~
Solar_Router_V17_27.ino:733:7: note: 'float previousTimeRMSMax' previously defined here
  733 | float previousTimeRMSMax = 0;
      |       ^~~~~~~~~~~~~~~~~~
Solar_Router.ino:735:7: error: redefinition of 'float previousTimeRMSMoy'
  735 | float previousTimeRMSMoy = 0;
      |       ^~~~~~~~~~~~~~~~~~
Solar_Router_V17_27.ino:734:7: note: 'float previousTimeRMSMoy' previously defined here
  734 | float previousTimeRMSMoy = 0;
      |       ^~~~~~~~~~~~~~~~~~
Solar_Router.ino:736:15: error: redefinition of 'long unsigned int previousMQTTenvoiMillis'
  736 | unsigned long previousMQTTenvoiMillis;
      |               ^~~~~~~~~~~~~~~~~~~~~~~
Solar_Router_V17_27.ino:735:15: note: 'long unsigned int previousMQTTenvoiMillis' previously declared here
  735 | unsigned long previousMQTTenvoiMillis;
      |               ^~~~~~~~~~~~~~~~~~~~~~~
Solar_Router.ino:737:15: error: redefinition of 'long unsigned int previousMQTTMillis'
  737 | unsigned long previousMQTTMillis;
      |               ^~~~~~~~~~~~~~~~~~
Solar_Router_V17_27.ino:736:15: note: 'long unsigned int previousMQTTMillis' previously declared here
  736 | unsigned long previousMQTTMillis;
      |               ^~~~~~~~~~~~~~~~~~
Solar_Router.ino:738:15: error: redefinition of 'long unsigned int LastPwMQTTMillis'
  738 | unsigned long LastPwMQTTMillis = 0;
      |               ^~~~~~~~~~~~~~~~
Solar_Router_V17_27.ino:737:15: note: 'long unsigned int LastPwMQTTMillis' previously defined here
  737 | unsigned long LastPwMQTTMillis = 0;
      |               ^~~~~~~~~~~~~~~~
Solar_Router.ino:739:15: error: redefinition of 'long unsigned int PeriodeMQTTMillis'
  739 | unsigned long PeriodeMQTTMillis = 500;
      |               ^~~~~~~~~~~~~~~~~
Solar_Router_V17_27.ino:738:15: note: 'long unsigned int PeriodeMQTTMillis' previously defined here
  738 | unsigned long PeriodeMQTTMillis = 500;
      |               ^~~~~~~~~~~~~~~~~
Solar_Router.ino:740:15: error: redefinition of 'long unsigned int LastShowActionMillis'
  740 | unsigned long LastShowActionMillis = 0;
      |               ^~~~~~~~~~~~~~~~~~~~
Solar_Router_V17_27.ino:739:15: note: 'long unsigned int LastShowActionMillis' previously defined here
  739 | unsigned long LastShowActionMillis = 0;
      |               ^~~~~~~~~~~~~~~~~~~~
Solar_Router.ino:743:7: error: redefinition of 'float RetardF [10]'
  743 | float RetardF[LES_ACTIONS_LENGTH];        //Floating value of retard
      |       ^~~~~~~
Solar_Router_V17_27.ino:742:7: note: 'float RetardF [10]' previously declared here
  742 | float RetardF[LES_ACTIONS_LENGTH];        //Floating value of retard
      |       ^~~~~~~
Solar_Router.ino:744:7: error: redefinition of 'float LastErrorPw [10]'
  744 | float LastErrorPw[LES_ACTIONS_LENGTH];    //Floating value of previous Pw error
      |       ^~~~~~~~~~~
Solar_Router_V17_27.ino:743:7: note: 'float LastErrorPw [10]' previously declared here
  743 | float LastErrorPw[LES_ACTIONS_LENGTH];    //Floating value of previous Pw error
      |       ^~~~~~~~~~~
Solar_Router.ino:745:7: error: redefinition of 'float IntegrErrorPw [10]'
  745 | float IntegrErrorPw[LES_ACTIONS_LENGTH];  //Integral de l'erreur
      |       ^~~~~~~~~~~~~
Solar_Router_V17_27.ino:744:7: note: 'float IntegrErrorPw [10]' previously declared here
  744 | float IntegrErrorPw[LES_ACTIONS_LENGTH];  //Integral de l'erreur
      |       ^~~~~~~~~~~~~
Solar_Router.ino:746:7: error: redefinition of 'float Propor [10]'
  746 | float Propor[LES_ACTIONS_LENGTH];         // correction proportionnelle
      |       ^~~~~~
Solar_Router_V17_27.ino:745:7: note: 'float Propor [10]' previously declared here
  745 | float Propor[LES_ACTIONS_LENGTH];         // correction proportionnelle
      |       ^~~~~~
Solar_Router.ino:747:7: error: redefinition of 'float DeriveF [10]'
  747 | float DeriveF[LES_ACTIONS_LENGTH];        // Derive erreur filtrée
      |       ^~~~~~~
Solar_Router_V17_27.ino:746:7: note: 'float DeriveF [10]' previously declared here
  746 | float DeriveF[LES_ACTIONS_LENGTH];        // Derive erreur filtrée
      |       ^~~~~~~
Solar_Router.ino:750:24: error: redefinition of 'volatile long unsigned int lastIT'
  750 | volatile unsigned long lastIT = 0;
      |                        ^~~~~~
Solar_Router_V17_27.ino:749:24: note: 'volatile long unsigned int lastIT' previously defined here
  749 | volatile unsigned long lastIT = 0;
      |                        ^~~~~~
Solar_Router.ino:751:18: error: redefinition of 'volatile int16_t IT10ms'
  751 | volatile int16_t IT10ms = 0;        //Interruption avant deglitch
      |                  ^~~~~~
Solar_Router_V17_27.ino:750:18: note: 'volatile int16_t IT10ms' previously defined here
  750 | volatile int16_t IT10ms = 0;        //Interruption avant deglitch
      |                  ^~~~~~
Solar_Router.ino:752:18: error: redefinition of 'volatile int16_t IT10ms_in'
  752 | volatile int16_t IT10ms_in = 0;     //Interruption apres deglitch
      |                  ^~~~~~~~~
Solar_Router_V17_27.ino:751:18: note: 'volatile int16_t IT10ms_in' previously defined here
  751 | volatile int16_t IT10ms_in = 0;     //Interruption apres deglitch
      |                  ^~~~~~~~~
Solar_Router.ino:753:18: error: redefinition of 'volatile int16_t ITmode'
  753 | volatile int16_t ITmode = 0;        //IT externe Triac ou interne
      |                  ^~~~~~
Solar_Router_V17_27.ino:752:18: note: 'volatile int16_t ITmode' previously defined here
  752 | volatile int16_t ITmode = 0;        //IT externe Triac ou interne
      |                  ^~~~~~
Solar_Router.ino:754:25: error: redefinition of 'volatile short unsigned int CptIT'
  754 | volatile unsigned short CptIT = 0;  //Compeur IT Triac ou 20ms;
      |                         ^~~~~
Solar_Router_V17_27.ino:753:25: note: 'volatile short unsigned int CptIT' previously defined here
  753 | volatile unsigned short CptIT = 0;  //Compeur IT Triac ou 20ms;
      |                         ^~~~~
Solar_Router.ino:755:25: error: redefinition of 'volatile short unsigned int StepIT'
  755 | volatile unsigned short StepIT = 1;
      |                         ^~~~~~
Solar_Router_V17_27.ino:754:25: note: 'volatile short unsigned int StepIT' previously defined here
  754 | volatile unsigned short StepIT = 1;
      |                         ^~~~~~
Solar_Router.ino:756:15: error: redefinition of 'volatile bool Phase230V'
  756 | volatile bool Phase230V = false;
      |               ^~~~~~~~~
Solar_Router_V17_27.ino:755:15: note: 'volatile bool Phase230V' previously defined here
  755 | volatile bool Phase230V = false;
      |               ^~~~~~~~~
Solar_Router.ino:757:13: error: redefinition of 'hw_timer_t* timer'
  757 | hw_timer_t *timer = NULL;
      |             ^~~~~
Solar_Router_V17_27.ino:756:13: note: 'hw_timer_t* timer' previously defined here
  756 | hw_timer_t *timer = NULL;
      |             ^~~~~
Solar_Router.ino:758:13: error: redefinition of 'hw_timer_t* timer10ms'
  758 | hw_timer_t *timer10ms = NULL;
      |             ^~~~~~~~~
Solar_Router_V17_27.ino:757:13: note: 'hw_timer_t* timer10ms' previously defined here
  757 | hw_timer_t *timer10ms = NULL;
      |             ^~~~~~~~~
Solar_Router.ino:760:18: error: redefinition of 'volatile int16_t testPulse'
  760 | volatile int16_t testPulse = 0;
      |                  ^~~~~~~~~
Solar_Router_V17_27.ino:759:18: note: 'volatile int16_t testPulse' previously defined here
  759 | volatile int16_t testPulse = 0;
      |                  ^~~~~~~~~
Solar_Router.ino:761:18: error: redefinition of 'volatile int16_t testTrame'
  761 | volatile int16_t testTrame = 0;
      |                  ^~~~~~~~~
Solar_Router_V17_27.ino:760:18: note: 'volatile int16_t testTrame' previously defined here
  760 | volatile int16_t testTrame = 0;
      |                  ^~~~~~~~~
Solar_Router.ino:763:14: error: redefinition of 'volatile int Retard [10]'
  763 | volatile int Retard[LES_ACTIONS_LENGTH];
      |              ^~~~~~
Solar_Router_V17_27.ino:762:14: note: 'volatile int Retard [10]' previously declared here
  762 | volatile int Retard[LES_ACTIONS_LENGTH];
      |              ^~~~~~
Solar_Router.ino:764:14: error: redefinition of 'volatile int Actif [10]'
  764 | volatile int Actif[LES_ACTIONS_LENGTH];
      |              ^~~~~
Solar_Router_V17_27.ino:763:14: note: 'volatile int Actif [10]' previously declared here
  763 | volatile int Actif[LES_ACTIONS_LENGTH];
      |              ^~~~~
Solar_Router.ino:765:14: error: redefinition of 'volatile int PulseOn [10]'
  765 | volatile int PulseOn[LES_ACTIONS_LENGTH];
      |              ^~~~~~~
Solar_Router_V17_27.ino:764:14: note: 'volatile int PulseOn [10]' previously declared here
  764 | volatile int PulseOn[LES_ACTIONS_LENGTH];
      |              ^~~~~~~
Solar_Router.ino:766:14: error: redefinition of 'volatile int PulseTotal [10]'
  766 | volatile int PulseTotal[LES_ACTIONS_LENGTH];
      |              ^~~~~~~~~~
Solar_Router_V17_27.ino:765:14: note: 'volatile int PulseTotal [10]' previously declared here
  765 | volatile int PulseTotal[LES_ACTIONS_LENGTH];
      |              ^~~~~~~~~~
Solar_Router.ino:767:14: error: redefinition of 'volatile int PulseComptage [10]'
  767 | volatile int PulseComptage[LES_ACTIONS_LENGTH];
      |              ^~~~~~~~~~~~~
Solar_Router_V17_27.ino:766:14: note: 'volatile int PulseComptage [10]' previously declared here
  766 | volatile int PulseComptage[LES_ACTIONS_LENGTH];
      |              ^~~~~~~~~~~~~
Solar_Router.ino:768:14: error: redefinition of 'volatile int Gpio [10]'
  768 | volatile int Gpio[LES_ACTIONS_LENGTH];
      |              ^~~~
Solar_Router_V17_27.ino:767:14: note: 'volatile int Gpio [10]' previously declared here
  767 | volatile int Gpio[LES_ACTIONS_LENGTH];
      |              ^~~~
Solar_Router.ino:769:14: error: redefinition of 'volatile int OutOn [10]'
  769 | volatile int OutOn[LES_ACTIONS_LENGTH];
      |              ^~~~~
Solar_Router_V17_27.ino:768:14: note: 'volatile int OutOn [10]' previously declared here
  768 | volatile int OutOn[LES_ACTIONS_LENGTH];
      |              ^~~~~
Solar_Router.ino:770:14: error: redefinition of 'volatile int OutOff [10]'
  770 | volatile int OutOff[LES_ACTIONS_LENGTH];
      |              ^~~~~~
Solar_Router_V17_27.ino:769:14: note: 'volatile int OutOff [10]' previously declared here
  769 | volatile int OutOff[LES_ACTIONS_LENGTH];
      |              ^~~~~~
Solar_Router.ino:775:16: error: redefinition of 'HardwareSerial MySerial'
  775 | HardwareSerial MySerial(2);
      |                ^~~~~~~~
Solar_Router_V17_27.ino:774:16: note: 'HardwareSerial MySerial' previously declared here
  774 | HardwareSerial MySerial(2);
      |                ^~~~~~~~
Solar_Router.ino:776:6: error: redefinition of 'byte pSerial'
  776 | byte pSerial = 0;             //Choix Pin port serie
      |      ^~~~~~~
Solar_Router_V17_27.ino:775:6: note: 'byte pSerial' previously defined here
  775 | byte pSerial = 0;             //Choix Pin port serie
      |      ^~~~~~~
Solar_Router.ino:777:8: error: redefinition of 'int8_t RXD2'
  777 | int8_t RXD2 = -1, TXD2 = -1;  //Port serie
      |        ^~~~
Solar_Router_V17_27.ino:776:8: note: 'int8_t RXD2' previously defined here
  776 | int8_t RXD2 = -1, TXD2 = -1;  //Port serie
      |        ^~~~
Solar_Router.ino:777:19: error: redefinition of 'int8_t TXD2'
  777 | int8_t RXD2 = -1, TXD2 = -1;  //Port serie
      |                   ^~~~
Solar_Router_V17_27.ino:776:19: note: 'int8_t TXD2' previously defined here
  776 | int8_t RXD2 = -1, TXD2 = -1;  //Port serie
      |                   ^~~~
Solar_Router.ino:778:8: error: redefinition of 'int8_t RX2_ []'
  778 | int8_t RX2_[] = { -1, 16, 26, 18, 5, 21, 22 };
      |        ^~~~
Solar_Router_V17_27.ino:777:8: note: 'int8_t RX2_ [7]' previously defined here
  777 | int8_t RX2_[] = { -1, 16, 26, 18, 5, 21, 22 };
      |        ^~~~
Solar_Router.ino:779:8: error: redefinition of 'int8_t TX2_ []'
  779 | int8_t TX2_[] = { -1, 17, 27, 19, 17, 22, 17 };
      |        ^~~~
Solar_Router_V17_27.ino:778:8: note: 'int8_t TX2_ [7]' previously defined here
  778 | int8_t TX2_[] = { -1, 17, 27, 19, 17, 22, 17 };
      |        ^~~~
Solar_Router.ino:780:14: error: redefinition of 'unsigned int Serial2V'
  780 | unsigned int Serial2V = 0;  //Vitesse en bauds
      |              ^~~~~~~~
Solar_Router_V17_27.ino:779:14: note: 'unsigned int Serial2V' previously defined here
  779 | unsigned int Serial2V = 0;  //Vitesse en bauds
      |              ^~~~~~~~
Solar_Router.ino:786:6: error: redefinition of 'byte pTemp'
  786 | byte pTemp = 0;
      |      ^~~~~
Solar_Router_V17_27.ino:785:6: note: 'byte pTemp' previously defined here
  785 | byte pTemp = 0;
      |      ^~~~~
Solar_Router.ino:787:6: error: redefinition of 'byte pinTemp []'
  787 | byte pinTemp[] = { 0, 13, 27, 33, 21, 5, 18, 19, 22, 23, 4, 16, 17 };
      |      ^~~~~~~
Solar_Router_V17_27.ino:786:6: note: 'byte pinTemp [13]' previously defined here
  786 | byte pinTemp[] = { 0, 13, 27, 33, 21, 5, 18, 19, 22, 23, 4, 16, 17 };
      |      ^~~~~~~
Solar_Router.ino:788:9: error: redefinition of 'OneWire oneWire'
  788 | OneWire oneWire;  //Numero de pin sera affecté  au debut du setup
      |         ^~~~~~~
Solar_Router_V17_27.ino:787:9: note: 'OneWire oneWire' previously declared here
  787 | OneWire oneWire;  //Numero de pin sera affecté  au debut du setup
      |         ^~~~~~~
Solar_Router.ino:789:19: error: redefinition of 'DallasTemperature ds18b20'
  789 | DallasTemperature ds18b20(&oneWire);
      |                   ^~~~~~~
Solar_Router_V17_27.ino:788:19: note: 'DallasTemperature ds18b20' previously declared here
  788 | DallasTemperature ds18b20(&oneWire);
      |                   ^~~~~~~
Solar_Router.ino:790:7: error: redefinition of 'float temperature [4]'
  790 | float temperature[4];  // 4 canaux max de températurre
      |       ^~~~~~~~~~~
Solar_Router_V17_27.ino:789:7: note: 'float temperature [4]' previously declared here
  789 | float temperature[4];  // 4 canaux max de températurre
      |       ^~~~~~~~~~~
Solar_Router.ino:791:5: error: redefinition of 'int offsetTemp [4]'
  791 | int offsetTemp[4];     //erreur *100
      |     ^~~~~~~~~~
Solar_Router_V17_27.ino:790:5: note: 'int offsetTemp [4]' previously declared here
  790 | int offsetTemp[4];     //erreur *100
      |     ^~~~~~~~~~
Solar_Router.ino:792:5: error: redefinition of 'int TemperatureValide [4]'
  792 | int TemperatureValide[4];
      |     ^~~~~~~~~~~~~~~~~
Solar_Router_V17_27.ino:791:5: note: 'int TemperatureValide [4]' previously declared here
  791 | int TemperatureValide[4];
      |     ^~~~~~~~~~~~~~~~~
Solar_Router.ino:793:6: error: redefinition of 'byte canalTempExterne [4]'
  793 | byte canalTempExterne[4];
      |      ^~~~~~~~~~~~~~~~
Solar_Router_V17_27.ino:792:6: note: 'byte canalTempExterne [4]' previously declared here
  792 | byte canalTempExterne[4];
      |      ^~~~~~~~~~~~~~~~
Solar_Router.ino:794:6: error: redefinition of 'byte refTempIP [4]'
  794 | byte refTempIP[4];
      |      ^~~~~~~~~
Solar_Router_V17_27.ino:793:6: note: 'byte refTempIP [4]' previously declared here
  793 | byte refTempIP[4];
      |      ^~~~~~~~~
Solar_Router.ino:795:5: error: redefinition of 'int Nbr_DS18B20'
  795 | int Nbr_DS18B20 = 0;
      |     ^~~~~~~~~~~
Solar_Router_V17_27.ino:794:5: note: 'int Nbr_DS18B20' previously defined here
  794 | int Nbr_DS18B20 = 0;
      |     ^~~~~~~~~~~
Solar_Router.ino:796:8: error: redefinition of 'String Source_Temp [4]'
  796 | String Source_Temp[4];
      |        ^~~~~~~~~~~
Solar_Router_V17_27.ino:795:8: note: 'String Source_Temp [4]' previously declared here
  795 | String Source_Temp[4];
      |        ^~~~~~~~~~~
Solar_Router.ino:797:8: error: redefinition of 'String nomTemperature [4]'
  797 | String nomTemperature[4];
      |        ^~~~~~~~~~~~~~
Solar_Router_V17_27.ino:796:8: note: 'String nomTemperature [4]' previously declared here
  796 | String nomTemperature[4];
      |        ^~~~~~~~~~~~~~
Solar_Router.ino:798:8: error: redefinition of 'String TopicT [4]'
  798 | String TopicT[4];
      |        ^~~~~~
Solar_Router_V17_27.ino:797:8: note: 'String TopicT [4]' previously declared here
  797 | String TopicT[4];
      |        ^~~~~~
Solar_Router.ino:799:8: error: redefinition of 'String AllTemp'
  799 | String AllTemp = "";
      |        ^~~~~~~
Solar_Router_V17_27.ino:798:8: note: 'String AllTemp' previously declared here
  798 | String AllTemp = "";
      |        ^~~~~~~
Solar_Router.ino:802:12: error: redefinition of 'WiFiClient MqttClient'
  802 | WiFiClient MqttClient;
      |            ^~~~~~~~~~
Solar_Router_V17_27.ino:801:12: note: 'WiFiClient MqttClient' previously declared here
  801 | WiFiClient MqttClient;
      |            ^~~~~~~~~~
Solar_Router.ino:803:14: error: redefinition of 'PubSubClient clientMQTT'
  803 | PubSubClient clientMQTT(MqttClient);
      |              ^~~~~~~~~~
Solar_Router_V17_27.ino:802:14: note: 'PubSubClient clientMQTT' previously declared here
  802 | PubSubClient clientMQTT(MqttClient);
      |              ^~~~~~~~~~
Solar_Router.ino:804:6: error: redefinition of 'bool Discovered'
  804 | bool Discovered = false;
      |      ^~~~~~~~~~
Solar_Router_V17_27.ino:803:6: note: 'bool Discovered' previously defined here
  803 | bool Discovered = false;
      |      ^~~~~~~~~~
Solar_Router.ino:807:9: error: redefinition of 'int16_t WIFIbug'
  807 | int16_t WIFIbug = 0;
      |         ^~~~~~~
Solar_Router_V17_27.ino:806:9: note: 'int16_t WIFIbug' previously defined here
  806 | int16_t WIFIbug = 0;
      |         ^~~~~~~
Solar_Router.ino:808:9: error: redefinition of 'int16_t ComSurv'
  808 | int16_t ComSurv = 6;  //Timeout sans Wifi par pas de 30s
      |         ^~~~~~~
Solar_Router_V17_27.ino:807:9: note: 'int16_t ComSurv' previously defined here
  807 | int16_t ComSurv = 6;  //Timeout sans Wifi par pas de 30s
      |         ^~~~~~~
Solar_Router.ino:809:18: error: redefinition of 'WiFiClientSecure clientSecu'
  809 | WiFiClientSecure clientSecu;
      |                  ^~~~~~~~~~
Solar_Router_V17_27.ino:808:18: note: 'WiFiClientSecure clientSecu' previously declared here
  808 | WiFiClientSecure clientSecu;
      |                  ^~~~~~~~~~
Solar_Router.ino:810:8: error: redefinition of 'String Liste_AP'
  810 | String Liste_AP = "";
      |        ^~~~~~~~
Solar_Router_V17_27.ino:810:8: note: 'String Liste_AP' previously declared here
  810 | String Liste_AP = "";
      |        ^~~~~~~~
Solar_Router.ino:811:9: error: redefinition of 'uint8_t bestBSSID [6]'
  811 | uint8_t bestBSSID[6];  //Meilleur en dBm adresse MAC
      |         ^~~~~~~~~
Solar_Router_V17_27.ino:811:9: note: 'uint8_t bestBSSID [6]' previously declared here
  811 | uint8_t bestBSSID[6];  //Meilleur en dBm adresse MAC
      |         ^~~~~~~~~
Solar_Router.ino:814:9: error: redefinition of 'int16_t EthernetBug'
  814 | int16_t EthernetBug = 0;
      |         ^~~~~~~~~~~
Solar_Router_V17_27.ino:814:9: note: 'int16_t EthernetBug' previously defined here
  814 | int16_t EthernetBug = 0;
      |         ^~~~~~~~~~~
Solar_Router.ino:815:12: error: redefinition of 'EMACDriver driver'
  815 | EMACDriver driver(ETH_PHY_LAN8720, 23, 18, 16);  //
      |            ^~~~~~
Solar_Router_V17_27.ino:815:12: note: 'EMACDriver driver' previously declared here
  815 | EMACDriver driver(ETH_PHY_LAN8720, 23, 18, 16);  //
      |            ^~~~~~
Solar_Router.ino:817:11: error: redefinition of 'WebServer server'
  817 | WebServer server(80);  // Simple Web Server on port 80
      |           ^~~~~~
Solar_Router_V17_27.ino:817:11: note: 'WebServer server' previously declared here
  817 | WebServer server(80);  // Simple Web Server on port 80
      |           ^~~~~~
Solar_Router.ino:820:12: error: redefinition of 'WiFiServer telnetServer'
  820 | WiFiServer telnetServer(23);  //Port Telnet 23
      |            ^~~~~~~~~~~~
Solar_Router_V17_27.ino:820:12: note: 'WiFiServer telnetServer' previously declared here
  820 | WiFiServer telnetServer(23);  //Port Telnet 23
      |            ^~~~~~~~~~~~
Solar_Router.ino:821:12: error: redefinition of 'WiFiClient telnetClient'
  821 | WiFiClient telnetClient;
      |            ^~~~~~~~~~~~
Solar_Router_V17_27.ino:821:12: note: 'WiFiClient telnetClient' previously declared here
  821 | WiFiClient telnetClient;
      |            ^~~~~~~~~~~~
Solar_Router.ino:822:6: error: redefinition of 'bool TelnetOn'
  822 | bool TelnetOn = false;
      |      ^~~~~~~~
Solar_Router_V17_27.ino:822:6: note: 'bool TelnetOn' previously defined here
  822 | bool TelnetOn = false;
      |      ^~~~~~~~
Solar_Router.ino:823:6: error: redefinition of 'bool dispPw'
  823 | bool dispPw = false;   //Affiche  Power sur serial et Telnet
      |      ^~~~~~
Solar_Router_V17_27.ino:823:6: note: 'bool dispPw' previously defined here
  823 | bool dispPw = false;   //Affiche  Power sur serial et Telnet
      |      ^~~~~~
Solar_Router.ino:824:6: error: redefinition of 'bool dispAct'
  824 | bool dispAct = false;  //Affiche  Ouverture Actions sur serial et Telnet
      |      ^~~~~~~
Solar_Router_V17_27.ino:824:6: note: 'bool dispAct' previously defined here
  824 | bool dispAct = false;  //Affiche  Ouverture Actions sur serial et Telnet
      |      ^~~~~~~
Solar_Router.ino:825:5: error: redefinition of 'int RetardVx'
  825 | int RetardVx = -1;     // Affiche calcul retard voie X
      |     ^~~~~~~~
Solar_Router_V17_27.ino:825:5: note: 'int RetardVx' previously defined here
  825 | int RetardVx = -1;     // Affiche calcul retard voie X
      |     ^~~~~~~~
Solar_Router.ino:828:15: error: redefinition of 'long unsigned int RMS_IP [8]'
  828 | unsigned long RMS_IP[LES_ROUTEURS_MAX];  //RMS_IP[0] = adresse IP de cet ESP32
      |               ^~~~~~
Solar_Router_V17_27.ino:828:15: note: 'long unsigned int RMS_IP [8]' previously declared here
  828 | unsigned long RMS_IP[LES_ROUTEURS_MAX];  //RMS_IP[0] = adresse IP de cet ESP32
      |               ^~~~~~
Solar_Router.ino:829:8: error: redefinition of 'String RMS_NomEtat [8]'
  829 | String RMS_NomEtat[LES_ROUTEURS_MAX];
      |        ^~~~~~~~~~~
Solar_Router_V17_27.ino:829:8: note: 'String RMS_NomEtat [8]' previously declared here
  829 | String RMS_NomEtat[LES_ROUTEURS_MAX];
      |        ^~~~~~~~~~~
Solar_Router.ino:830:8: error: redefinition of 'int8_t RMS_Note [8]'
  830 | int8_t RMS_Note[LES_ROUTEURS_MAX];
      |        ^~~~~~~~
Solar_Router_V17_27.ino:830:8: note: 'int8_t RMS_Note [8]' previously declared here
  830 | int8_t RMS_Note[LES_ROUTEURS_MAX];
      |        ^~~~~~~~
Solar_Router.ino:831:8: error: redefinition of 'int8_t RMS_NbCx [8]'
  831 | int8_t RMS_NbCx[LES_ROUTEURS_MAX];
      |        ^~~~~~~~
Solar_Router_V17_27.ino:831:8: note: 'int8_t RMS_NbCx [8]' previously declared here
  831 | int8_t RMS_NbCx[LES_ROUTEURS_MAX];
      |        ^~~~~~~~
Solar_Router.ino:832:5: error: redefinition of 'int RMS_Noms_idx'
  832 | int RMS_Noms_idx = 0;
      |     ^~~~~~~~~~~~
Solar_Router_V17_27.ino:832:5: note: 'int RMS_Noms_idx' previously defined here
  832 | int RMS_Noms_idx = 0;
      |     ^~~~~~~~~~~~
Solar_Router.ino:833:5: error: redefinition of 'int RMS_Datas_idx'
  833 | int RMS_Datas_idx = 0;
      |     ^~~~~~~~~~~~~
Solar_Router_V17_27.ino:833:5: note: 'int RMS_Datas_idx' previously defined here
  833 | int RMS_Datas_idx = 0;
      |     ^~~~~~~~~~~~~
Solar_Router.ino:836:6: error: redefinition of 'byte arrIP [4]'
  836 | byte arrIP[4];
      |      ^~~~~
Solar_Router_V17_27.ino:836:6: note: 'byte arrIP [4]' previously declared here
  836 | byte arrIP[4];
      |      ^~~~~
Solar_Router.ino:840:14: error: redefinition of 'tskTaskControlBlock* Task1'
  840 | TaskHandle_t Task1;
      |              ^~~~~
Solar_Router_V17_27.ino:840:14: note: 'tskTaskControlBlock* Task1' previously declared here
  840 | TaskHandle_t Task1;
      |              ^~~~~
Solar_Router.ino:841:11: error: redefinition of 'esp_err_t ESP32_ERROR'
  841 | esp_err_t ESP32_ERROR;
      |           ^~~~~~~~~~~
Solar_Router_V17_27.ino:841:11: note: 'esp_err_t ESP32_ERROR' previously declared here
  841 | esp_err_t ESP32_ERROR;
      |           ^~~~~~~~~~~
Solar_Router.ino:842:6: error: redefinition of 'bool PuissanceRecue'
  842 | bool PuissanceRecue = false;
      |      ^~~~~~~~~~~~~~
Solar_Router_V17_27.ino:842:6: note: 'bool PuissanceRecue' previously defined here
  842 | bool PuissanceRecue = false;
      |      ^~~~~~~~~~~~~~
Solar_Router.ino:843:5: error: redefinition of 'int PuissanceValide'
  843 | int PuissanceValide = 5;
      |     ^~~~~~~~~~~~~~~
Solar_Router_V17_27.ino:843:5: note: 'int PuissanceValide' previously defined here
  843 | int PuissanceValide = 5;
      |     ^~~~~~~~~~~~~~~
Solar_Router.ino:847:16: error: redefinition of 'void GestionIT_10ms()'
  847 | void IRAM_ATTR GestionIT_10ms() {
      |                ^~~~~~~~~~~~~~
Solar_Router_V17_27.ino:847:16: note: 'void GestionIT_10ms()' previously defined here
  847 | void IRAM_ATTR GestionIT_10ms() {
      |                ^~~~~~~~~~~~~~
Solar_Router.ino:896:16: error: redefinition of 'void onTimer10ms()'
  896 | void IRAM_ATTR onTimer10ms() {  //Interruption interne toutes 10ms
      |                ^~~~~~~~~~~
Solar_Router_V17_27.ino:896:16: note: 'void onTimer10ms()' previously defined here
  896 | void IRAM_ATTR onTimer10ms() {  //Interruption interne toutes 10ms
      |                ^~~~~~~~~~~
Solar_Router.ino:904:16: error: redefinition of 'void currentNull()'
  904 | void IRAM_ATTR currentNull() {
      |                ^~~~~~~~~~~
Solar_Router_V17_27.ino:904:16: note: 'void currentNull()' previously defined here
  904 | void IRAM_ATTR currentNull() {
      |                ^~~~~~~~~~~
Solar_Router.ino:920:16: error: redefinition of 'void onTimer()'
  920 | void IRAM_ATTR onTimer() {               //Interruption every 100 micro second
      |                ^~~~~~~
Solar_Router_V17_27.ino:920:16: note: 'void onTimer()' previously defined here
  920 | void IRAM_ATTR onTimer() {               //Interruption every 100 micro second
      |                ^~~~~~~
Solar_Router.ino:932:18: error: redefinition of 'esp_wps_config_t wps_config'
  932 | esp_wps_config_t wps_config = WPS_CONFIG_INIT_DEFAULT(WPS_TYPE_PBC);  //SR19
      |                  ^~~~~~~~~~
Solar_Router_V17_27.ino:932:18: note: 'esp_wps_config_t wps_config' previously defined here
  932 | esp_wps_config_t wps_config = WPS_CONFIG_INIT_DEFAULT(WPS_TYPE_PBC);  //SR19
      |                  ^~~~~~~~~~
Solar_Router.ino:933:6: error: redefinition of 'bool isGOT_IP'
  933 | bool isGOT_IP = false;                                                //true si IP reçue                                                      //SR19
      |      ^~~~~~~~
Solar_Router_V17_27.ino:933:6: note: 'bool isGOT_IP' previously defined here
  933 | bool isGOT_IP = false;                                                //true si IP reçue                                                      //SR19
      |      ^~~~~~~~
Solar_Router.ino:935:6: error: redefinition of 'void wpsStop()'
  935 | void wpsStop() {                                                                                //SR19
      |      ^~~~~~~
Solar_Router_V17_27.ino:935:6: note: 'void wpsStop()' previously defined here
  935 | void wpsStop() {                                                                                //SR19
      |      ^~~~~~~
Solar_Router.ino:943:6: error: redefinition of 'void WiFiEvent(arduino_event_id_t, arduino_event_info_t)'
  943 | void WiFiEvent(WiFiEvent_t event, arduino_event_info_t info) {  //SR19 3.3.6+
      |      ^~~~~~~~~
Solar_Router_V17_27.ino:943:6: note: 'void WiFiEvent(arduino_event_id_t, arduino_event_info_t)' previously defined here
  943 | void WiFiEvent(WiFiEvent_t event, arduino_event_info_t info) {  //SR19 3.3.6+
      |      ^~~~~~~~~
Solar_Router.ino:980:6: error: redefinition of 'void setup()'
  980 | void setup() {
      |      ^~~~~
Solar_Router_V17_27.ino:980:6: note: 'void setup()' previously defined here
  980 | void setup() {
      |      ^~~~~
Solar_Router.ino:1370:6: error: redefinition of 'void Task_LectureRMS(void*)'
1370 | void Task_LectureRMS(void *pvParameters) {
      |      ^~~~~~~~~~~~~~~
Solar_Router_V17_27.ino:1365:6: note: 'void Task_LectureRMS(void*)' previously defined here
1365 | void Task_LectureRMS(void *pvParameters) {
      |      ^~~~~~~~~~~~~~~
Solar_Router.ino:1468:6: error: redefinition of 'void loop()'
1468 | void loop() {
      |      ^~~~
Solar_Router_V17_27.ino:1463:6: note: 'void loop()' previously defined here
1463 | void loop() {
      |      ^~~~
Solar_Router.ino:1723:6: error: redefinition of 'void GestionOverproduction()'
1723 | void GestionOverproduction() {  // chaque 200ms (adaptation 5 fois par seconde)
      |      ^~~~~~~~~~~~~~~~~~~~~
Solar_Router_V17_27.ino:1718:6: note: 'void GestionOverproduction()' previously defined here
1718 | void GestionOverproduction() {  // chaque 200ms (adaptation 5 fois par seconde)
      |      ^~~~~~~~~~~~~~~~~~~~~
Solar_Router.ino:1861:6: error: redefinition of 'void InitGPIOs()'
1861 | void InitGPIOs() {
      |      ^~~~~~~~~
Solar_Router_V17_27.ino:1856:6: note: 'void InitGPIOs()' previously defined here
1856 | void InitGPIOs() {
      |      ^~~~~~~~~
Solar_Router.ino:1909:6: error: redefinition of 'void infoSerieAP()'
1909 | void infoSerieAP() {
      |      ^~~~~~~~~~~
Solar_Router_V17_27.ino:1904:6: note: 'void infoSerieAP()' previously defined here
1904 | void infoSerieAP() {
      |      ^~~~~~~~~~~
Solar_Router.ino:1925:6: error: redefinition of 'void EnergieQuotidienne()'
1925 | void EnergieQuotidienne() {
      |      ^~~~~~~~~~~~~~~~~~
Solar_Router_V17_27.ino:1920:6: note: 'void EnergieQuotidienne()' previously defined here
1920 | void EnergieQuotidienne() {
      |      ^~~~~~~~~~~~~~~~~~
Solar_Router.ino:1955:6: error: redefinition of 'void H_Ouvre_Equivalent(long unsigned int)'
1955 | void H_Ouvre_Equivalent(unsigned long dt) {
      |      ^~~~~~~~~~~~~~~~~~
Solar_Router_V17_27.ino:1950:6: note: 'void H_Ouvre_Equivalent(long unsigned int)' previously defined here
1950 | void H_Ouvre_Equivalent(unsigned long dt) {
      |      ^~~~~~~~~~~~~~~~~~
exit status 1

Compilation error: 'pDataRawLinky' was not declared in this scope; did you mean 'DataRawLinky'?

Edit : Dans les fichiers que tu mets à dispo, il n'y a que ceux qui ont été modifiés ? Il n'y a pas le fichier maitre SOLAR_router...

****
--------------------------------------------------------------
ESP32 (v17.27 et IP fixe) + sonde température + SSR -- Cumulus/Chauffe-Eau
Source données serveur Enphase.

Répondre

(11-07-2026, 12:22 PM)Alain_C38 a écrit :
(09-07-2026, 06:38 PM)rdsoft30 a écrit : Salut à tous,

C...
Voilà ou télécharger les sources et le binaire:
https://drive.google.com/drive/folders/1...drive_link

David


Bonjour David,

J'ai enfin un peu de temps. J'ai essayé de compiler, mais j'ai beaucoup d'erreurs :

Code :
642 | float COSphiI = 1;
      |       ^~~~~~~
Solar_Router.ino:644:6: error: redefinition of 'long int TlastEASTvalide'
  644 | long TlastEASTvalide = 0;
      |      ^~~~~~~~~~~~~~~
Solar_Router_V17_27.ino:643:6: note: 'long int TlastEASTvalide' previously defined here
  643 | long TlastEASTvalide = 0;
      |      ^~~~~~~~~~~~~~~
Solar_Router.ino:645:6: error: redefinition of 'long int TlastEAITvalide'
  645 | long TlastEAITvalide = 0;
      |      ^~~~~~~~~~~~~~~
Solar_Router_V17_27.ino:644:6: note: 'long int TlastEAITvalide' previously defined here
  644 | long TlastEAITvalide = 0;
      |      ^~~~~~~~~~~~~~~
Solar_Router.ino:646:8: error: redefinition of 'String LTARF'
  646 | String LTARF = "";  //Option tarifaire RTE
      |        ^~~~~
Solar_Router_V17_27.ino:645:8: note: 'String LTARF' previously declared here
  645 | String LTARF = "";  //Option tarifaire RTE
      |        ^~~~~
Solar_Router.ino:647:8: error: redefinition of 'String STGE'
  647 | String STGE = "";   //Status Linky
      |        ^~~~
Solar_Router_V17_27.ino:646:8: note: 'String STGE' previously declared here
  646 | String STGE = "";   //Status Linky
      |        ^~~~
Solar_Router.ino:648:8: error: redefinition of 'String STGEt'
  648 | String STGEt = "";  //Status Tempo uniquement RTE
      |        ^~~~~
Solar_Router_V17_27.ino:647:8: note: 'String STGEt' previously declared here
  647 | String STGEt = "";  //Status Tempo uniquement RTE
      |        ^~~~~
Solar_Router.ino:649:8: error: redefinition of 'String NGTF'
  649 | String NGTF = "";   //Calendrier tarifaire
      |        ^~~~
Solar_Router_V17_27.ino:648:8: note: 'String NGTF' previously declared here
  648 | String NGTF = "";   //Calendrier tarifaire
      |        ^~~~
Solar_Router.ino:650:8: error: redefinition of 'String RTE_Jour'
  650 | String RTE_Jour = "NON_DEFINI";
      |        ^~~~~~~~
Solar_Router_V17_27.ino:649:8: note: 'String RTE_Jour' previously declared here
  649 | String RTE_Jour = "NON_DEFINI";
      |        ^~~~~~~~
Solar_Router.ino:651:8: error: redefinition of 'String RTE_Demain'
  651 | String RTE_Demain = "NON_DEFINI";
      |        ^~~~~~~~~~
Solar_Router_V17_27.ino:650:8: note: 'String RTE_Demain' previously declared here
  650 | String RTE_Demain = "NON_DEFINI";
      |        ^~~~~~~~~~
Solar_Router.ino:652:6: error: redefinition of 'long int EASF01'
  652 | long EASF01 = 0;
      |      ^~~~~~
Solar_Router_V17_27.ino:651:6: note: 'long int EASF01' previously defined here
  651 | long EASF01 = 0;
      |      ^~~~~~
Solar_Router.ino:653:6: error: redefinition of 'long int EASF02'
  653 | long EASF02 = 0;
      |      ^~~~~~
Solar_Router_V17_27.ino:652:6: note: 'long int EASF02' previously defined here
  652 | long EASF02 = 0;
      |      ^~~~~~
Solar_Router.ino:654:6: error: redefinition of 'long int EASF03'
  654 | long EASF03 = 0;
      |      ^~~~~~
Solar_Router_V17_27.ino:653:6: note: 'long int EASF03' previously defined here
  653 | long EASF03 = 0;
      |      ^~~~~~
Solar_Router.ino:655:6: error: redefinition of 'long int EASF04'
  655 | long EASF04 = 0;
      |      ^~~~~~
Solar_Router_V17_27.ino:654:6: note: 'long int EASF04' previously defined here
  654 | long EASF04 = 0;
      |      ^~~~~~
Solar_Router.ino:656:6: error: redefinition of 'long int EASF05'
  656 | long EASF05 = 0;
      |      ^~~~~~
Solar_Router_V17_27.ino:655:6: note: 'long int EASF05' previously defined here
  655 | long EASF05 = 0;
      |      ^~~~~~
Solar_Router.ino:657:6: error: redefinition of 'long int EASF06'
  657 | long EASF06 = 0;
      |      ^~~~~~
Solar_Router_V17_27.ino:656:6: note: 'long int EASF06' previously defined here
  656 | long EASF06 = 0;
      |      ^~~~~~
Solar_Router.ino:658:6: error: redefinition of 'long int EASF07'
  658 | long EASF07 = 0;
      |      ^~~~~~
Solar_Router_V17_27.ino:657:6: note: 'long int EASF07' previously defined here
  657 | long EASF07 = 0;
      |      ^~~~~~
Solar_Router.ino:659:6: error: redefinition of 'long int EASF08'
  659 | long EASF08 = 0;
      |      ^~~~~~
Solar_Router_V17_27.ino:658:6: note: 'long int EASF08' previously defined here
  658 | long EASF08 = 0;
      |      ^~~~~~
Solar_Router.ino:660:6: error: redefinition of 'long int EASF09'
  660 | long EASF09 = 0;
      |      ^~~~~~
Solar_Router_V17_27.ino:659:6: note: 'long int EASF09' previously defined here
  659 | long EASF09 = 0;
      |      ^~~~~~
Solar_Router.ino:661:6: error: redefinition of 'long int EASF10'
  661 | long EASF10 = 0;
      |      ^~~~~~
Solar_Router_V17_27.ino:660:6: note: 'long int EASF10' previously defined here
  660 | long EASF10 = 0;
      |      ^~~~~~
Solar_Router.ino:664:8: error: redefinition of 'String TokenEnphase'
  664 | String TokenEnphase = "";
      |        ^~~~~~~~~~~~
Solar_Router_V17_27.ino:663:8: note: 'String TokenEnphase' previously declared here
  663 | String TokenEnphase = "";
      |        ^~~~~~~~~~~~
Solar_Router.ino:665:8: error: redefinition of 'String EnphaseUser'
  665 | String EnphaseUser = "";
      |        ^~~~~~~~~~~
Solar_Router_V17_27.ino:664:8: note: 'String EnphaseUser' previously declared here
  664 | String EnphaseUser = "";
      |        ^~~~~~~~~~~
Solar_Router.ino:666:8: error: redefinition of 'String EnphasePwd'
  666 | String EnphasePwd = "";
      |        ^~~~~~~~~~
Solar_Router_V17_27.ino:665:8: note: 'String EnphasePwd' previously declared here
  665 | String EnphasePwd = "";
      |        ^~~~~~~~~~
Solar_Router.ino:667:8: error: redefinition of 'String EnphaseSerial'
  667 | String EnphaseSerial = "0";  //Sert égalemnet au Shelly comme numéro de voie
      |        ^~~~~~~~~~~~~
Solar_Router_V17_27.ino:666:8: note: 'String EnphaseSerial' previously declared here
  666 | String EnphaseSerial = "0";  //Sert égalemnet au Shelly comme numéro de voie
      |        ^~~~~~~~~~~~~
Solar_Router.ino:668:8: error: redefinition of 'String JsonToken'
  668 | String JsonToken = "";
      |        ^~~~~~~~~
Solar_Router_V17_27.ino:667:8: note: 'String JsonToken' previously declared here
  667 | String JsonToken = "";
      |        ^~~~~~~~~
Solar_Router.ino:669:8: error: redefinition of 'String Session_id'
  669 | String Session_id = "";
      |        ^~~~~~~~~~
Solar_Router_V17_27.ino:668:8: note: 'String Session_id' previously declared here
  668 | String Session_id = "";
      |        ^~~~~~~~~~
Solar_Router.ino:670:6: error: redefinition of 'long int LastwhDlvdCum'
  670 | long LastwhDlvdCum = 0;             //Dernière valeur cumul Wh Soutire.
      |      ^~~~~~~~~~~~~
Solar_Router_V17_27.ino:669:6: note: 'long int LastwhDlvdCum' previously defined here
  669 | long LastwhDlvdCum = 0;             //Dernière valeur cumul Wh Soutire.
      |      ^~~~~~~~~~~~~
Solar_Router.ino:671:6: error: redefinition of 'long int LastwhRcvdCum'
  671 | long LastwhRcvdCum = 0;             //Dernière valeur cumul Wh injecté
      |      ^~~~~~~~~~~~~
Solar_Router_V17_27.ino:670:6: note: 'long int LastwhRcvdCum' previously defined here
  670 | long LastwhRcvdCum = 0;             //Dernière valeur cumul Wh injecté
      |      ^~~~~~~~~~~~~
Solar_Router.ino:672:7: error: redefinition of 'float EMI_Wh'
  672 | float EMI_Wh = 0;                   //Energie entrée Maison Injecté Wh
      |       ^~~~~~
Solar_Router_V17_27.ino:671:7: note: 'float EMI_Wh' previously defined here
  671 | float EMI_Wh = 0;                   //Energie entrée Maison Injecté Wh
      |       ^~~~~~
Solar_Router.ino:673:7: error: redefinition of 'float EMS_Wh'
  673 | float EMS_Wh = 0;                   //Energie entrée Maison Soutirée Wh
      |       ^~~~~~
Solar_Router_V17_27.ino:672:7: note: 'float EMS_Wh' previously defined here
  672 | float EMS_Wh = 0;                   //Energie entrée Maison Soutirée Wh
      |       ^~~~~~
Solar_Router.ino:674:15: error: redefinition of 'long unsigned int lastTokenUpdate'
  674 | unsigned long lastTokenUpdate = 0;  //interval de temps depuis dernier Token Enphase //SR19
      |               ^~~~~~~~~~~~~~~
Solar_Router_V17_27.ino:673:15: note: 'long unsigned int lastTokenUpdate' previously defined here
  673 | unsigned long lastTokenUpdate = 0;  //interval de temps depuis dernier Token Enphase //SR19
      |               ^~~~~~~~~~~~~~~
Solar_Router.ino:677:8: error: redefinition of 'String SG_dataBrute'
  677 | String SG_dataBrute = "";
      |        ^~~~~~~~~~~~
Solar_Router_V17_27.ino:676:8: note: 'String SG_dataBrute' previously declared here
  676 | String SG_dataBrute = "";
      |        ^~~~~~~~~~~~
Solar_Router.ino:680:8: error: redefinition of 'String HW_dataBrute'
  680 | String HW_dataBrute = "";
      |        ^~~~~~~~~~~~
Solar_Router_V17_27.ino:679:8: note: 'String HW_dataBrute' previously declared here
  679 | String HW_dataBrute = "";
      |        ^~~~~~~~~~~~
Solar_Router.ino:683:8: error: redefinition of 'String ShEm_dataBrute'
  683 | String ShEm_dataBrute = "";
      |        ^~~~~~~~~~~~~~
Solar_Router_V17_27.ino:682:8: note: 'String ShEm_dataBrute' previously declared here
  682 | String ShEm_dataBrute = "";
      |        ^~~~~~~~~~~~~~
Solar_Router.ino:684:5: error: redefinition of 'int ShEm_comptage_appels'
  684 | int ShEm_comptage_appels = 0;
      |     ^~~~~~~~~~~~~~~~~~~~
Solar_Router_V17_27.ino:683:5: note: 'int ShEm_comptage_appels' previously defined here
  683 | int ShEm_comptage_appels = 0;
      |     ^~~~~~~~~~~~~~~~~~~~
Solar_Router.ino:685:7: error: redefinition of 'float PwMoy2'
  685 | float PwMoy2 = 0;  //Moyenne voie secondsaire
      |       ^~~~~~
Solar_Router_V17_27.ino:684:7: note: 'float PwMoy2' previously defined here
  684 | float PwMoy2 = 0;  //Moyenne voie secondsaire
      |       ^~~~~~
Solar_Router.ino:686:7: error: redefinition of 'float pfMoy2'
  686 | float pfMoy2 = 1;  //pf Voie secondaire
      |       ^~~~~~
Solar_Router_V17_27.ino:685:7: note: 'float pfMoy2' previously defined here
  685 | float pfMoy2 = 1;  //pf Voie secondaire
      |       ^~~~~~
Solar_Router.ino:687:8: error: redefinition of 'String Shelly_Name'
  687 | String Shelly_Name = "";
      |        ^~~~~~~~~~~
Solar_Router_V17_27.ino:686:8: note: 'String Shelly_Name' previously declared here
  686 | String Shelly_Name = "";
      |        ^~~~~~~~~~~
Solar_Router.ino:688:8: error: redefinition of 'String Shelly_Profile'
  688 | String Shelly_Profile = "";
      |        ^~~~~~~~~~~~~~
Solar_Router_V17_27.ino:687:8: note: 'String Shelly_Profile' previously declared here
  687 | String Shelly_Profile = "";
      |        ^~~~~~~~~~~~~~
Solar_Router.ino:691:8: error: redefinition of 'String P_MQTT_Brute'
  691 | String P_MQTT_Brute = "";
      |        ^~~~~~~~~~~~
Solar_Router_V17_27.ino:690:8: note: 'String P_MQTT_Brute' previously declared here
  690 | String P_MQTT_Brute = "";
      |        ^~~~~~~~~~~~
Solar_Router.ino:692:7: error: redefinition of 'float PwMQTT'
  692 | float PwMQTT = 0;
      |       ^~~~~~
Solar_Router_V17_27.ino:691:7: note: 'float PwMQTT' previously defined here
  691 | float PwMQTT = 0;
      |       ^~~~~~
Solar_Router.ino:693:7: error: redefinition of 'float PvaMQTT'
  693 | float PvaMQTT = 0;
      |       ^~~~~~~
Solar_Router_V17_27.ino:692:7: note: 'float PvaMQTT' previously defined here
  692 | float PvaMQTT = 0;
      |       ^~~~~~~
Solar_Router.ino:694:7: error: redefinition of 'float PfMQTT'
  694 | float PfMQTT = 1;
      |       ^~~~~~
Solar_Router_V17_27.ino:693:7: note: 'float PfMQTT' previously defined here
  693 | float PfMQTT = 1;
      |       ^~~~~~
Solar_Router.ino:697:6: error: redefinition of 'byte TempoRTEon'
  697 | byte TempoRTEon = 0;
      |      ^~~~~~~~~~
Solar_Router_V17_27.ino:696:6: note: 'byte TempoRTEon' previously defined here
  696 | byte TempoRTEon = 0;
      |      ^~~~~~~~~~
Solar_Router.ino:698:5: error: redefinition of 'int LastHeureRTE'
  698 | int LastHeureRTE = -1;
      |     ^~~~~~~~~~~~
Solar_Router_V17_27.ino:697:5: note: 'int LastHeureRTE' previously defined here
  697 | int LastHeureRTE = -1;
      |     ^~~~~~~~~~~~
Solar_Router.ino:699:5: error: redefinition of 'int LTARFbin'
  699 | int LTARFbin = 0;  //Code binaire  des tarifs
      |     ^~~~~~~~
Solar_Router_V17_27.ino:698:5: note: 'int LTARFbin' previously defined here
  698 | int LTARFbin = 0;  //Code binaire  des tarifs
      |     ^~~~~~~~
Solar_Router.ino:702:8: error: redefinition of 'int8_t RMSextIdx'
  702 | int8_t RMSextIdx = 0;
      |        ^~~~~~~~~
Solar_Router_V17_27.ino:701:8: note: 'int8_t RMSextIdx' previously defined here
  701 | int8_t RMSextIdx = 0;
      |        ^~~~~~~~~
Solar_Router.ino:703:6: error: redefinition of 'bool RMSextIPauto'
  703 | bool RMSextIPauto = true;
      |      ^~~~~~~~~~~~
Solar_Router_V17_27.ino:702:6: note: 'bool RMSextIPauto' previously defined here
  702 | bool RMSextIPauto = true;
      |      ^~~~~~~~~~~~
Solar_Router.ino:706:8: error: redefinition of 'Action LesActions [10]'
  706 | Action LesActions[LES_ACTIONS_LENGTH];  //Liste des actions
      |        ^~~~~~~~~~
Solar_Router_V17_27.ino:705:8: note: 'Action LesActions [10]' previously declared here
  705 | Action LesActions[LES_ACTIONS_LENGTH];  //Liste des actions
      |        ^~~~~~~~~~
Solar_Router.ino:707:14: error: redefinition of 'volatile int NbActions'
  707 | volatile int NbActions = 0;
      |              ^~~~~~~~~
Solar_Router_V17_27.ino:706:14: note: 'volatile int NbActions' previously defined here
  706 | volatile int NbActions = 0;
      |              ^~~~~~~~~
Solar_Router.ino:708:6: error: redefinition of 'byte ReacCACSI'
  708 | byte ReacCACSI = 1;
      |      ^~~~~~~~~
Solar_Router_V17_27.ino:707:6: note: 'byte ReacCACSI' previously defined here
  707 | byte ReacCACSI = 1;
      |      ^~~~~~~~~
Solar_Router.ino:709:14: error: redefinition of 'unsigned int Fpwm'
  709 | unsigned int Fpwm = 500;  // Frequence signaux PWM en Hz
      |              ^~~~
Solar_Router_V17_27.ino:708:14: note: 'unsigned int Fpwm' previously defined here
  708 | unsigned int Fpwm = 500;  // Frequence signaux PWM en Hz
      |              ^~~~
Solar_Router.ino:714:15: error: redefinition of 'long unsigned int startMillis'
  714 | unsigned long startMillis;
      |               ^~~~~~~~~~~
Solar_Router_V17_27.ino:713:15: note: 'long unsigned int startMillis' previously declared here
  713 | unsigned long startMillis;
      |               ^~~~~~~~~~~
Solar_Router.ino:715:15: error: redefinition of 'long unsigned int previousWifiMillis'
  715 | unsigned long previousWifiMillis;
      |               ^~~~~~~~~~~~~~~~~~
Solar_Router_V17_27.ino:714:15: note: 'long unsigned int previousWifiMillis' previously declared here
  714 | unsigned long previousWifiMillis;
      |               ^~~~~~~~~~~~~~~~~~
Solar_Router.ino:716:15: error: redefinition of 'long unsigned int previousHistoryMillis'
  716 | unsigned long previousHistoryMillis;
      |               ^~~~~~~~~~~~~~~~~~~~~
Solar_Router_V17_27.ino:715:15: note: 'long unsigned int previousHistoryMillis' previously declared here
  715 | unsigned long previousHistoryMillis;
      |               ^~~~~~~~~~~~~~~~~~~~~
Solar_Router.ino:717:15: error: redefinition of 'long unsigned int previousWsMillis'
  717 | unsigned long previousWsMillis;
      |               ^~~~~~~~~~~~~~~~
Solar_Router_V17_27.ino:716:15: note: 'long unsigned int previousWsMillis' previously declared here
  716 | unsigned long previousWsMillis;
      |               ^~~~~~~~~~~~~~~~
Solar_Router.ino:718:15: error: redefinition of 'long unsigned int previousWiMillis'
  718 | unsigned long previousWiMillis;
      |               ^~~~~~~~~~~~~~~~
Solar_Router_V17_27.ino:717:15: note: 'long unsigned int previousWiMillis' previously declared here
  717 | unsigned long previousWiMillis;
      |               ^~~~~~~~~~~~~~~~
Solar_Router.ino:719:15: error: redefinition of 'long unsigned int LastRMS_Millis'
  719 | unsigned long LastRMS_Millis;
      |               ^~~~~~~~~~~~~~
Solar_Router_V17_27.ino:718:15: note: 'long unsigned int LastRMS_Millis' previously declared here
  718 | unsigned long LastRMS_Millis;
      |               ^~~~~~~~~~~~~~
Solar_Router.ino:720:15: error: redefinition of 'long unsigned int previousTimer2sMillis'
  720 | unsigned long previousTimer2sMillis;
      |               ^~~~~~~~~~~~~~~~~~~~~
Solar_Router_V17_27.ino:719:15: note: 'long unsigned int previousTimer2sMillis' previously declared here
  719 | unsigned long previousTimer2sMillis;
      |               ^~~~~~~~~~~~~~~~~~~~~
Solar_Router.ino:721:15: error: redefinition of 'long unsigned int previousOverProdMillis'
  721 | unsigned long previousOverProdMillis;
      |               ^~~~~~~~~~~~~~~~~~~~~~
Solar_Router_V17_27.ino:720:15: note: 'long unsigned int previousOverProdMillis' previously declared here
  720 | unsigned long previousOverProdMillis;
      |               ^~~~~~~~~~~~~~~~~~~~~~
Solar_Router.ino:722:15: error: redefinition of 'long unsigned int previousLEDsMillis'
  722 | unsigned long previousLEDsMillis;
      |               ^~~~~~~~~~~~~~~~~~
Solar_Router_V17_27.ino:721:15: note: 'long unsigned int previousLEDsMillis' previously declared here
  721 | unsigned long previousLEDsMillis;
      |               ^~~~~~~~~~~~~~~~~~
Solar_Router.ino:723:15: error: redefinition of 'long unsigned int previousActionMillis'
  723 | unsigned long previousActionMillis;
      |               ^~~~~~~~~~~~~~~~~~~~
Solar_Router_V17_27.ino:722:15: note: 'long unsigned int previousActionMillis' previously declared here
  722 | unsigned long previousActionMillis;
      |               ^~~~~~~~~~~~~~~~~~~~
Solar_Router.ino:724:15: error: redefinition of 'long unsigned int previousTempMillis'
  724 | unsigned long previousTempMillis;
      |               ^~~~~~~~~~~~~~~~~~
Solar_Router_V17_27.ino:723:15: note: 'long unsigned int previousTempMillis' previously declared here
  723 | unsigned long previousTempMillis;
      |               ^~~~~~~~~~~~~~~~~~
Solar_Router.ino:725:15: error: redefinition of 'long unsigned int previousLoop'
  725 | unsigned long previousLoop;
      |               ^~~~~~~~~~~~
Solar_Router_V17_27.ino:724:15: note: 'long unsigned int previousLoop' previously declared here
  724 | unsigned long previousLoop;
      |               ^~~~~~~~~~~~
Solar_Router.ino:726:15: error: redefinition of 'long unsigned int previousETX'
  726 | unsigned long previousETX;
      |               ^~~~~~~~~~~
Solar_Router_V17_27.ino:725:15: note: 'long unsigned int previousETX' previously declared here
  725 | unsigned long previousETX;
      |               ^~~~~~~~~~~
Solar_Router.ino:727:15: error: redefinition of 'long unsigned int PeriodeProgMillis'
  727 | unsigned long PeriodeProgMillis = 1000;
      |               ^~~~~~~~~~~~~~~~~
Solar_Router_V17_27.ino:726:15: note: 'long unsigned int PeriodeProgMillis' previously defined here
  726 | unsigned long PeriodeProgMillis = 1000;
      |               ^~~~~~~~~~~~~~~~~
Solar_Router.ino:728:10: error: redefinition of 'uint64_t T_On_seconde'
  728 | uint64_t T_On_seconde = 0;
      |          ^~~~~~~~~~~~
Solar_Router_V17_27.ino:727:10: note: 'uint64_t T_On_seconde' previously defined here
  727 | uint64_t T_On_seconde = 0;
      |          ^~~~~~~~~~~~
Solar_Router.ino:729:7: error: redefinition of 'float previousLoopMin'
  729 | float previousLoopMin = 1000;
      |       ^~~~~~~~~~~~~~~
Solar_Router_V17_27.ino:728:7: note: 'float previousLoopMin' previously defined here
  728 | float previousLoopMin = 1000;
      |       ^~~~~~~~~~~~~~~
Solar_Router.ino:730:7: error: redefinition of 'float previousLoopMax'
  730 | float previousLoopMax = 0;
      |       ^~~~~~~~~~~~~~~
Solar_Router_V17_27.ino:729:7: note: 'float previousLoopMax' previously defined here
  729 | float previousLoopMax = 0;
      |       ^~~~~~~~~~~~~~~
Solar_Router.ino:731:7: error: redefinition of 'float previousLoopMoy'
  731 | float previousLoopMoy = 0;
      |       ^~~~~~~~~~~~~~~
Solar_Router_V17_27.ino:730:7: note: 'float previousLoopMoy' previously defined here
  730 | float previousLoopMoy = 0;
      |       ^~~~~~~~~~~~~~~
Solar_Router.ino:732:15: error: redefinition of 'long unsigned int previousTimeRMS'
  732 | unsigned long previousTimeRMS;
      |               ^~~~~~~~~~~~~~~
Solar_Router_V17_27.ino:731:15: note: 'long unsigned int previousTimeRMS' previously declared here
  731 | unsigned long previousTimeRMS;
      |               ^~~~~~~~~~~~~~~
Solar_Router.ino:733:7: error: redefinition of 'float previousTimeRMSMin'
  733 | float previousTimeRMSMin = 1000;
      |       ^~~~~~~~~~~~~~~~~~
Solar_Router_V17_27.ino:732:7: note: 'float previousTimeRMSMin' previously defined here
  732 | float previousTimeRMSMin = 1000;
      |       ^~~~~~~~~~~~~~~~~~
Solar_Router.ino:734:7: error: redefinition of 'float previousTimeRMSMax'
  734 | float previousTimeRMSMax = 0;
      |       ^~~~~~~~~~~~~~~~~~
Solar_Router_V17_27.ino:733:7: note: 'float previousTimeRMSMax' previously defined here
  733 | float previousTimeRMSMax = 0;
      |       ^~~~~~~~~~~~~~~~~~
Solar_Router.ino:735:7: error: redefinition of 'float previousTimeRMSMoy'
  735 | float previousTimeRMSMoy = 0;
      |       ^~~~~~~~~~~~~~~~~~
Solar_Router_V17_27.ino:734:7: note: 'float previousTimeRMSMoy' previously defined here
  734 | float previousTimeRMSMoy = 0;
      |       ^~~~~~~~~~~~~~~~~~
Solar_Router.ino:736:15: error: redefinition of 'long unsigned int previousMQTTenvoiMillis'
  736 | unsigned long previousMQTTenvoiMillis;
      |               ^~~~~~~~~~~~~~~~~~~~~~~
Solar_Router_V17_27.ino:735:15: note: 'long unsigned int previousMQTTenvoiMillis' previously declared here
  735 | unsigned long previousMQTTenvoiMillis;
      |               ^~~~~~~~~~~~~~~~~~~~~~~
Solar_Router.ino:737:15: error: redefinition of 'long unsigned int previousMQTTMillis'
  737 | unsigned long previousMQTTMillis;
      |               ^~~~~~~~~~~~~~~~~~
Solar_Router_V17_27.ino:736:15: note: 'long unsigned int previousMQTTMillis' previously declared here
  736 | unsigned long previousMQTTMillis;
      |               ^~~~~~~~~~~~~~~~~~
Solar_Router.ino:738:15: error: redefinition of 'long unsigned int LastPwMQTTMillis'
  738 | unsigned long LastPwMQTTMillis = 0;
      |               ^~~~~~~~~~~~~~~~
Solar_Router_V17_27.ino:737:15: note: 'long unsigned int LastPwMQTTMillis' previously defined here
  737 | unsigned long LastPwMQTTMillis = 0;
      |               ^~~~~~~~~~~~~~~~
Solar_Router.ino:739:15: error: redefinition of 'long unsigned int PeriodeMQTTMillis'
  739 | unsigned long PeriodeMQTTMillis = 500;
      |               ^~~~~~~~~~~~~~~~~
Solar_Router_V17_27.ino:738:15: note: 'long unsigned int PeriodeMQTTMillis' previously defined here
  738 | unsigned long PeriodeMQTTMillis = 500;
      |               ^~~~~~~~~~~~~~~~~
Solar_Router.ino:740:15: error: redefinition of 'long unsigned int LastShowActionMillis'
  740 | unsigned long LastShowActionMillis = 0;
      |               ^~~~~~~~~~~~~~~~~~~~
Solar_Router_V17_27.ino:739:15: note: 'long unsigned int LastShowActionMillis' previously defined here
  739 | unsigned long LastShowActionMillis = 0;
      |               ^~~~~~~~~~~~~~~~~~~~
Solar_Router.ino:743:7: error: redefinition of 'float RetardF [10]'
  743 | float RetardF[LES_ACTIONS_LENGTH];        //Floating value of retard
      |       ^~~~~~~
Solar_Router_V17_27.ino:742:7: note: 'float RetardF [10]' previously declared here
  742 | float RetardF[LES_ACTIONS_LENGTH];        //Floating value of retard
      |       ^~~~~~~
Solar_Router.ino:744:7: error: redefinition of 'float LastErrorPw [10]'
  744 | float LastErrorPw[LES_ACTIONS_LENGTH];    //Floating value of previous Pw error
      |       ^~~~~~~~~~~
Solar_Router_V17_27.ino:743:7: note: 'float LastErrorPw [10]' previously declared here
  743 | float LastErrorPw[LES_ACTIONS_LENGTH];    //Floating value of previous Pw error
      |       ^~~~~~~~~~~
Solar_Router.ino:745:7: error: redefinition of 'float IntegrErrorPw [10]'
  745 | float IntegrErrorPw[LES_ACTIONS_LENGTH];  //Integral de l'erreur
      |       ^~~~~~~~~~~~~
Solar_Router_V17_27.ino:744:7: note: 'float IntegrErrorPw [10]' previously declared here
  744 | float IntegrErrorPw[LES_ACTIONS_LENGTH];  //Integral de l'erreur
      |       ^~~~~~~~~~~~~
Solar_Router.ino:746:7: error: redefinition of 'float Propor [10]'
  746 | float Propor[LES_ACTIONS_LENGTH];         // correction proportionnelle
      |       ^~~~~~
Solar_Router_V17_27.ino:745:7: note: 'float Propor [10]' previously declared here
  745 | float Propor[LES_ACTIONS_LENGTH];         // correction proportionnelle
      |       ^~~~~~
Solar_Router.ino:747:7: error: redefinition of 'float DeriveF [10]'
  747 | float DeriveF[LES_ACTIONS_LENGTH];        // Derive erreur filtrée
      |       ^~~~~~~
Solar_Router_V17_27.ino:746:7: note: 'float DeriveF [10]' previously declared here
  746 | float DeriveF[LES_ACTIONS_LENGTH];        // Derive erreur filtrée
      |       ^~~~~~~
Solar_Router.ino:750:24: error: redefinition of 'volatile long unsigned int lastIT'
  750 | volatile unsigned long lastIT = 0;
      |                        ^~~~~~
Solar_Router_V17_27.ino:749:24: note: 'volatile long unsigned int lastIT' previously defined here
  749 | volatile unsigned long lastIT = 0;
      |                        ^~~~~~
Solar_Router.ino:751:18: error: redefinition of 'volatile int16_t IT10ms'
  751 | volatile int16_t IT10ms = 0;        //Interruption avant deglitch
      |                  ^~~~~~
Solar_Router_V17_27.ino:750:18: note: 'volatile int16_t IT10ms' previously defined here
  750 | volatile int16_t IT10ms = 0;        //Interruption avant deglitch
      |                  ^~~~~~
Solar_Router.ino:752:18: error: redefinition of 'volatile int16_t IT10ms_in'
  752 | volatile int16_t IT10ms_in = 0;     //Interruption apres deglitch
      |                  ^~~~~~~~~
Solar_Router_V17_27.ino:751:18: note: 'volatile int16_t IT10ms_in' previously defined here
  751 | volatile int16_t IT10ms_in = 0;     //Interruption apres deglitch
      |                  ^~~~~~~~~
Solar_Router.ino:753:18: error: redefinition of 'volatile int16_t ITmode'
  753 | volatile int16_t ITmode = 0;        //IT externe Triac ou interne
      |                  ^~~~~~
Solar_Router_V17_27.ino:752:18: note: 'volatile int16_t ITmode' previously defined here
  752 | volatile int16_t ITmode = 0;        //IT externe Triac ou interne
      |                  ^~~~~~
Solar_Router.ino:754:25: error: redefinition of 'volatile short unsigned int CptIT'
  754 | volatile unsigned short CptIT = 0;  //Compeur IT Triac ou 20ms;
      |                         ^~~~~
Solar_Router_V17_27.ino:753:25: note: 'volatile short unsigned int CptIT' previously defined here
  753 | volatile unsigned short CptIT = 0;  //Compeur IT Triac ou 20ms;
      |                         ^~~~~
Solar_Router.ino:755:25: error: redefinition of 'volatile short unsigned int StepIT'
  755 | volatile unsigned short StepIT = 1;
      |                         ^~~~~~
Solar_Router_V17_27.ino:754:25: note: 'volatile short unsigned int StepIT' previously defined here
  754 | volatile unsigned short StepIT = 1;
      |                         ^~~~~~
Solar_Router.ino:756:15: error: redefinition of 'volatile bool Phase230V'
  756 | volatile bool Phase230V = false;
      |               ^~~~~~~~~
Solar_Router_V17_27.ino:755:15: note: 'volatile bool Phase230V' previously defined here
  755 | volatile bool Phase230V = false;
      |               ^~~~~~~~~
Solar_Router.ino:757:13: error: redefinition of 'hw_timer_t* timer'
  757 | hw_timer_t *timer = NULL;
      |             ^~~~~
Solar_Router_V17_27.ino:756:13: note: 'hw_timer_t* timer' previously defined here
  756 | hw_timer_t *timer = NULL;
      |             ^~~~~
Solar_Router.ino:758:13: error: redefinition of 'hw_timer_t* timer10ms'
  758 | hw_timer_t *timer10ms = NULL;
      |             ^~~~~~~~~
Solar_Router_V17_27.ino:757:13: note: 'hw_timer_t* timer10ms' previously defined here
  757 | hw_timer_t *timer10ms = NULL;
      |             ^~~~~~~~~
Solar_Router.ino:760:18: error: redefinition of 'volatile int16_t testPulse'
  760 | volatile int16_t testPulse = 0;
      |                  ^~~~~~~~~
Solar_Router_V17_27.ino:759:18: note: 'volatile int16_t testPulse' previously defined here
  759 | volatile int16_t testPulse = 0;
      |                  ^~~~~~~~~
Solar_Router.ino:761:18: error: redefinition of 'volatile int16_t testTrame'
  761 | volatile int16_t testTrame = 0;
      |                  ^~~~~~~~~
Solar_Router_V17_27.ino:760:18: note: 'volatile int16_t testTrame' previously defined here
  760 | volatile int16_t testTrame = 0;
      |                  ^~~~~~~~~
Solar_Router.ino:763:14: error: redefinition of 'volatile int Retard [10]'
  763 | volatile int Retard[LES_ACTIONS_LENGTH];
      |              ^~~~~~
Solar_Router_V17_27.ino:762:14: note: 'volatile int Retard [10]' previously declared here
  762 | volatile int Retard[LES_ACTIONS_LENGTH];
      |              ^~~~~~
Solar_Router.ino:764:14: error: redefinition of 'volatile int Actif [10]'
  764 | volatile int Actif[LES_ACTIONS_LENGTH];
      |              ^~~~~
Solar_Router_V17_27.ino:763:14: note: 'volatile int Actif [10]' previously declared here
  763 | volatile int Actif[LES_ACTIONS_LENGTH];
      |              ^~~~~
Solar_Router.ino:765:14: error: redefinition of 'volatile int PulseOn [10]'
  765 | volatile int PulseOn[LES_ACTIONS_LENGTH];
      |              ^~~~~~~
Solar_Router_V17_27.ino:764:14: note: 'volatile int PulseOn [10]' previously declared here
  764 | volatile int PulseOn[LES_ACTIONS_LENGTH];
      |              ^~~~~~~
Solar_Router.ino:766:14: error: redefinition of 'volatile int PulseTotal [10]'
  766 | volatile int PulseTotal[LES_ACTIONS_LENGTH];
      |              ^~~~~~~~~~
Solar_Router_V17_27.ino:765:14: note: 'volatile int PulseTotal [10]' previously declared here
  765 | volatile int PulseTotal[LES_ACTIONS_LENGTH];
      |              ^~~~~~~~~~
Solar_Router.ino:767:14: error: redefinition of 'volatile int PulseComptage [10]'
  767 | volatile int PulseComptage[LES_ACTIONS_LENGTH];
      |              ^~~~~~~~~~~~~
Solar_Router_V17_27.ino:766:14: note: 'volatile int PulseComptage [10]' previously declared here
  766 | volatile int PulseComptage[LES_ACTIONS_LENGTH];
      |              ^~~~~~~~~~~~~
Solar_Router.ino:768:14: error: redefinition of 'volatile int Gpio [10]'
  768 | volatile int Gpio[LES_ACTIONS_LENGTH];
      |              ^~~~
Solar_Router_V17_27.ino:767:14: note: 'volatile int Gpio [10]' previously declared here
  767 | volatile int Gpio[LES_ACTIONS_LENGTH];
      |              ^~~~
Solar_Router.ino:769:14: error: redefinition of 'volatile int OutOn [10]'
  769 | volatile int OutOn[LES_ACTIONS_LENGTH];
      |              ^~~~~
Solar_Router_V17_27.ino:768:14: note: 'volatile int OutOn [10]' previously declared here
  768 | volatile int OutOn[LES_ACTIONS_LENGTH];
      |              ^~~~~
Solar_Router.ino:770:14: error: redefinition of 'volatile int OutOff [10]'
  770 | volatile int OutOff[LES_ACTIONS_LENGTH];
      |              ^~~~~~
Solar_Router_V17_27.ino:769:14: note: 'volatile int OutOff [10]' previously declared here
  769 | volatile int OutOff[LES_ACTIONS_LENGTH];
      |              ^~~~~~
Solar_Router.ino:775:16: error: redefinition of 'HardwareSerial MySerial'
  775 | HardwareSerial MySerial(2);
      |                ^~~~~~~~
Solar_Router_V17_27.ino:774:16: note: 'HardwareSerial MySerial' previously declared here
  774 | HardwareSerial MySerial(2);
      |                ^~~~~~~~
Solar_Router.ino:776:6: error: redefinition of 'byte pSerial'
  776 | byte pSerial = 0;             //Choix Pin port serie
      |      ^~~~~~~
Solar_Router_V17_27.ino:775:6: note: 'byte pSerial' previously defined here
  775 | byte pSerial = 0;             //Choix Pin port serie
      |      ^~~~~~~
Solar_Router.ino:777:8: error: redefinition of 'int8_t RXD2'
  777 | int8_t RXD2 = -1, TXD2 = -1;  //Port serie
      |        ^~~~
Solar_Router_V17_27.ino:776:8: note: 'int8_t RXD2' previously defined here
  776 | int8_t RXD2 = -1, TXD2 = -1;  //Port serie
      |        ^~~~
Solar_Router.ino:777:19: error: redefinition of 'int8_t TXD2'
  777 | int8_t RXD2 = -1, TXD2 = -1;  //Port serie
      |                   ^~~~
Solar_Router_V17_27.ino:776:19: note: 'int8_t TXD2' previously defined here
  776 | int8_t RXD2 = -1, TXD2 = -1;  //Port serie
      |                   ^~~~
Solar_Router.ino:778:8: error: redefinition of 'int8_t RX2_ []'
  778 | int8_t RX2_[] = { -1, 16, 26, 18, 5, 21, 22 };
      |        ^~~~
Solar_Router_V17_27.ino:777:8: note: 'int8_t RX2_ [7]' previously defined here
  777 | int8_t RX2_[] = { -1, 16, 26, 18, 5, 21, 22 };
      |        ^~~~
Solar_Router.ino:779:8: error: redefinition of 'int8_t TX2_ []'
  779 | int8_t TX2_[] = { -1, 17, 27, 19, 17, 22, 17 };
      |        ^~~~
Solar_Router_V17_27.ino:778:8: note: 'int8_t TX2_ [7]' previously defined here
  778 | int8_t TX2_[] = { -1, 17, 27, 19, 17, 22, 17 };
      |        ^~~~
Solar_Router.ino:780:14: error: redefinition of 'unsigned int Serial2V'
  780 | unsigned int Serial2V = 0;  //Vitesse en bauds
      |              ^~~~~~~~
Solar_Router_V17_27.ino:779:14: note: 'unsigned int Serial2V' previously defined here
  779 | unsigned int Serial2V = 0;  //Vitesse en bauds
      |              ^~~~~~~~
Solar_Router.ino:786:6: error: redefinition of 'byte pTemp'
  786 | byte pTemp = 0;
      |      ^~~~~
Solar_Router_V17_27.ino:785:6: note: 'byte pTemp' previously defined here
  785 | byte pTemp = 0;
      |      ^~~~~
Solar_Router.ino:787:6: error: redefinition of 'byte pinTemp []'
  787 | byte pinTemp[] = { 0, 13, 27, 33, 21, 5, 18, 19, 22, 23, 4, 16, 17 };
      |      ^~~~~~~
Solar_Router_V17_27.ino:786:6: note: 'byte pinTemp [13]' previously defined here
  786 | byte pinTemp[] = { 0, 13, 27, 33, 21, 5, 18, 19, 22, 23, 4, 16, 17 };
      |      ^~~~~~~
Solar_Router.ino:788:9: error: redefinition of 'OneWire oneWire'
  788 | OneWire oneWire;  //Numero de pin sera affecté  au debut du setup
      |         ^~~~~~~
Solar_Router_V17_27.ino:787:9: note: 'OneWire oneWire' previously declared here
  787 | OneWire oneWire;  //Numero de pin sera affecté  au debut du setup
      |         ^~~~~~~
Solar_Router.ino:789:19: error: redefinition of 'DallasTemperature ds18b20'
  789 | DallasTemperature ds18b20(&oneWire);
      |                   ^~~~~~~
Solar_Router_V17_27.ino:788:19: note: 'DallasTemperature ds18b20' previously declared here
  788 | DallasTemperature ds18b20(&oneWire);
      |                   ^~~~~~~
Solar_Router.ino:790:7: error: redefinition of 'float temperature [4]'
  790 | float temperature[4];  // 4 canaux max de températurre
      |       ^~~~~~~~~~~
Solar_Router_V17_27.ino:789:7: note: 'float temperature [4]' previously declared here
  789 | float temperature[4];  // 4 canaux max de températurre
      |       ^~~~~~~~~~~
Solar_Router.ino:791:5: error: redefinition of 'int offsetTemp [4]'
  791 | int offsetTemp[4];     //erreur *100
      |     ^~~~~~~~~~
Solar_Router_V17_27.ino:790:5: note: 'int offsetTemp [4]' previously declared here
  790 | int offsetTemp[4];     //erreur *100
      |     ^~~~~~~~~~
Solar_Router.ino:792:5: error: redefinition of 'int TemperatureValide [4]'
  792 | int TemperatureValide[4];
      |     ^~~~~~~~~~~~~~~~~
Solar_Router_V17_27.ino:791:5: note: 'int TemperatureValide [4]' previously declared here
  791 | int TemperatureValide[4];
      |     ^~~~~~~~~~~~~~~~~
Solar_Router.ino:793:6: error: redefinition of 'byte canalTempExterne [4]'
  793 | byte canalTempExterne[4];
      |      ^~~~~~~~~~~~~~~~
Solar_Router_V17_27.ino:792:6: note: 'byte canalTempExterne [4]' previously declared here
  792 | byte canalTempExterne[4];
      |      ^~~~~~~~~~~~~~~~
Solar_Router.ino:794:6: error: redefinition of 'byte refTempIP [4]'
  794 | byte refTempIP[4];
      |      ^~~~~~~~~
Solar_Router_V17_27.ino:793:6: note: 'byte refTempIP [4]' previously declared here
  793 | byte refTempIP[4];
      |      ^~~~~~~~~
Solar_Router.ino:795:5: error: redefinition of 'int Nbr_DS18B20'
  795 | int Nbr_DS18B20 = 0;
      |     ^~~~~~~~~~~
Solar_Router_V17_27.ino:794:5: note: 'int Nbr_DS18B20' previously defined here
  794 | int Nbr_DS18B20 = 0;
      |     ^~~~~~~~~~~
Solar_Router.ino:796:8: error: redefinition of 'String Source_Temp [4]'
  796 | String Source_Temp[4];
      |        ^~~~~~~~~~~
Solar_Router_V17_27.ino:795:8: note: 'String Source_Temp [4]' previously declared here
  795 | String Source_Temp[4];
      |        ^~~~~~~~~~~
Solar_Router.ino:797:8: error: redefinition of 'String nomTemperature [4]'
  797 | String nomTemperature[4];
      |        ^~~~~~~~~~~~~~
Solar_Router_V17_27.ino:796:8: note: 'String nomTemperature [4]' previously declared here
  796 | String nomTemperature[4];
      |        ^~~~~~~~~~~~~~
Solar_Router.ino:798:8: error: redefinition of 'String TopicT [4]'
  798 | String TopicT[4];
      |        ^~~~~~
Solar_Router_V17_27.ino:797:8: note: 'String TopicT [4]' previously declared here
  797 | String TopicT[4];
      |        ^~~~~~
Solar_Router.ino:799:8: error: redefinition of 'String AllTemp'
  799 | String AllTemp = "";
      |        ^~~~~~~
Solar_Router_V17_27.ino:798:8: note: 'String AllTemp' previously declared here
  798 | String AllTemp = "";
      |        ^~~~~~~
Solar_Router.ino:802:12: error: redefinition of 'WiFiClient MqttClient'
  802 | WiFiClient MqttClient;
      |            ^~~~~~~~~~
Solar_Router_V17_27.ino:801:12: note: 'WiFiClient MqttClient' previously declared here
  801 | WiFiClient MqttClient;
      |            ^~~~~~~~~~
Solar_Router.ino:803:14: error: redefinition of 'PubSubClient clientMQTT'
  803 | PubSubClient clientMQTT(MqttClient);
      |              ^~~~~~~~~~
Solar_Router_V17_27.ino:802:14: note: 'PubSubClient clientMQTT' previously declared here
  802 | PubSubClient clientMQTT(MqttClient);
      |              ^~~~~~~~~~
Solar_Router.ino:804:6: error: redefinition of 'bool Discovered'
  804 | bool Discovered = false;
      |      ^~~~~~~~~~
Solar_Router_V17_27.ino:803:6: note: 'bool Discovered' previously defined here
  803 | bool Discovered = false;
      |      ^~~~~~~~~~
Solar_Router.ino:807:9: error: redefinition of 'int16_t WIFIbug'
  807 | int16_t WIFIbug = 0;
      |         ^~~~~~~
Solar_Router_V17_27.ino:806:9: note: 'int16_t WIFIbug' previously defined here
  806 | int16_t WIFIbug = 0;
      |         ^~~~~~~
Solar_Router.ino:808:9: error: redefinition of 'int16_t ComSurv'
  808 | int16_t ComSurv = 6;  //Timeout sans Wifi par pas de 30s
      |         ^~~~~~~
Solar_Router_V17_27.ino:807:9: note: 'int16_t ComSurv' previously defined here
  807 | int16_t ComSurv = 6;  //Timeout sans Wifi par pas de 30s
      |         ^~~~~~~
Solar_Router.ino:809:18: error: redefinition of 'WiFiClientSecure clientSecu'
  809 | WiFiClientSecure clientSecu;
      |                  ^~~~~~~~~~
Solar_Router_V17_27.ino:808:18: note: 'WiFiClientSecure clientSecu' previously declared here
  808 | WiFiClientSecure clientSecu;
      |                  ^~~~~~~~~~
Solar_Router.ino:810:8: error: redefinition of 'String Liste_AP'
  810 | String Liste_AP = "";
      |        ^~~~~~~~
Solar_Router_V17_27.ino:810:8: note: 'String Liste_AP' previously declared here
  810 | String Liste_AP = "";
      |        ^~~~~~~~
Solar_Router.ino:811:9: error: redefinition of 'uint8_t bestBSSID [6]'
  811 | uint8_t bestBSSID[6];  //Meilleur en dBm adresse MAC
      |         ^~~~~~~~~
Solar_Router_V17_27.ino:811:9: note: 'uint8_t bestBSSID [6]' previously declared here
  811 | uint8_t bestBSSID[6];  //Meilleur en dBm adresse MAC
      |         ^~~~~~~~~
Solar_Router.ino:814:9: error: redefinition of 'int16_t EthernetBug'
  814 | int16_t EthernetBug = 0;
      |         ^~~~~~~~~~~
Solar_Router_V17_27.ino:814:9: note: 'int16_t EthernetBug' previously defined here
  814 | int16_t EthernetBug = 0;
      |         ^~~~~~~~~~~
Solar_Router.ino:815:12: error: redefinition of 'EMACDriver driver'
  815 | EMACDriver driver(ETH_PHY_LAN8720, 23, 18, 16);  //
      |            ^~~~~~
Solar_Router_V17_27.ino:815:12: note: 'EMACDriver driver' previously declared here
  815 | EMACDriver driver(ETH_PHY_LAN8720, 23, 18, 16);  //
      |            ^~~~~~
Solar_Router.ino:817:11: error: redefinition of 'WebServer server'
  817 | WebServer server(80);  // Simple Web Server on port 80
      |           ^~~~~~
Solar_Router_V17_27.ino:817:11: note: 'WebServer server' previously declared here
  817 | WebServer server(80);  // Simple Web Server on port 80
      |           ^~~~~~
Solar_Router.ino:820:12: error: redefinition of 'WiFiServer telnetServer'
  820 | WiFiServer telnetServer(23);  //Port Telnet 23
      |            ^~~~~~~~~~~~
Solar_Router_V17_27.ino:820:12: note: 'WiFiServer telnetServer' previously declared here
  820 | WiFiServer telnetServer(23);  //Port Telnet 23
      |            ^~~~~~~~~~~~
Solar_Router.ino:821:12: error: redefinition of 'WiFiClient telnetClient'
  821 | WiFiClient telnetClient;
      |            ^~~~~~~~~~~~
Solar_Router_V17_27.ino:821:12: note: 'WiFiClient telnetClient' previously declared here
  821 | WiFiClient telnetClient;
      |            ^~~~~~~~~~~~
Solar_Router.ino:822:6: error: redefinition of 'bool TelnetOn'
  822 | bool TelnetOn = false;
      |      ^~~~~~~~
Solar_Router_V17_27.ino:822:6: note: 'bool TelnetOn' previously defined here
  822 | bool TelnetOn = false;
      |      ^~~~~~~~
Solar_Router.ino:823:6: error: redefinition of 'bool dispPw'
  823 | bool dispPw = false;   //Affiche  Power sur serial et Telnet
      |      ^~~~~~
Solar_Router_V17_27.ino:823:6: note: 'bool dispPw' previously defined here
  823 | bool dispPw = false;   //Affiche  Power sur serial et Telnet
      |      ^~~~~~
Solar_Router.ino:824:6: error: redefinition of 'bool dispAct'
  824 | bool dispAct = false;  //Affiche  Ouverture Actions sur serial et Telnet
      |      ^~~~~~~
Solar_Router_V17_27.ino:824:6: note: 'bool dispAct' previously defined here
  824 | bool dispAct = false;  //Affiche  Ouverture Actions sur serial et Telnet
      |      ^~~~~~~
Solar_Router.ino:825:5: error: redefinition of 'int RetardVx'
  825 | int RetardVx = -1;     // Affiche calcul retard voie X
      |     ^~~~~~~~
Solar_Router_V17_27.ino:825:5: note: 'int RetardVx' previously defined here
  825 | int RetardVx = -1;     // Affiche calcul retard voie X
      |     ^~~~~~~~
Solar_Router.ino:828:15: error: redefinition of 'long unsigned int RMS_IP [8]'
  828 | unsigned long RMS_IP[LES_ROUTEURS_MAX];  //RMS_IP[0] = adresse IP de cet ESP32
      |               ^~~~~~
Solar_Router_V17_27.ino:828:15: note: 'long unsigned int RMS_IP [8]' previously declared here
  828 | unsigned long RMS_IP[LES_ROUTEURS_MAX];  //RMS_IP[0] = adresse IP de cet ESP32
      |               ^~~~~~
Solar_Router.ino:829:8: error: redefinition of 'String RMS_NomEtat [8]'
  829 | String RMS_NomEtat[LES_ROUTEURS_MAX];
      |        ^~~~~~~~~~~
Solar_Router_V17_27.ino:829:8: note: 'String RMS_NomEtat [8]' previously declared here
  829 | String RMS_NomEtat[LES_ROUTEURS_MAX];
      |        ^~~~~~~~~~~
Solar_Router.ino:830:8: error: redefinition of 'int8_t RMS_Note [8]'
  830 | int8_t RMS_Note[LES_ROUTEURS_MAX];
      |        ^~~~~~~~
Solar_Router_V17_27.ino:830:8: note: 'int8_t RMS_Note [8]' previously declared here
  830 | int8_t RMS_Note[LES_ROUTEURS_MAX];
      |        ^~~~~~~~
Solar_Router.ino:831:8: error: redefinition of 'int8_t RMS_NbCx [8]'
  831 | int8_t RMS_NbCx[LES_ROUTEURS_MAX];
      |        ^~~~~~~~
Solar_Router_V17_27.ino:831:8: note: 'int8_t RMS_NbCx [8]' previously declared here
  831 | int8_t RMS_NbCx[LES_ROUTEURS_MAX];
      |        ^~~~~~~~
Solar_Router.ino:832:5: error: redefinition of 'int RMS_Noms_idx'
  832 | int RMS_Noms_idx = 0;
      |     ^~~~~~~~~~~~
Solar_Router_V17_27.ino:832:5: note: 'int RMS_Noms_idx' previously defined here
  832 | int RMS_Noms_idx = 0;
      |     ^~~~~~~~~~~~
Solar_Router.ino:833:5: error: redefinition of 'int RMS_Datas_idx'
  833 | int RMS_Datas_idx = 0;
      |     ^~~~~~~~~~~~~
Solar_Router_V17_27.ino:833:5: note: 'int RMS_Datas_idx' previously defined here
  833 | int RMS_Datas_idx = 0;
      |     ^~~~~~~~~~~~~
Solar_Router.ino:836:6: error: redefinition of 'byte arrIP [4]'
  836 | byte arrIP[4];
      |      ^~~~~
Solar_Router_V17_27.ino:836:6: note: 'byte arrIP [4]' previously declared here
  836 | byte arrIP[4];
      |      ^~~~~
Solar_Router.ino:840:14: error: redefinition of 'tskTaskControlBlock* Task1'
  840 | TaskHandle_t Task1;
      |              ^~~~~
Solar_Router_V17_27.ino:840:14: note: 'tskTaskControlBlock* Task1' previously declared here
  840 | TaskHandle_t Task1;
      |              ^~~~~
Solar_Router.ino:841:11: error: redefinition of 'esp_err_t ESP32_ERROR'
  841 | esp_err_t ESP32_ERROR;
      |           ^~~~~~~~~~~
Solar_Router_V17_27.ino:841:11: note: 'esp_err_t ESP32_ERROR' previously declared here
  841 | esp_err_t ESP32_ERROR;
      |           ^~~~~~~~~~~
Solar_Router.ino:842:6: error: redefinition of 'bool PuissanceRecue'
  842 | bool PuissanceRecue = false;
      |      ^~~~~~~~~~~~~~
Solar_Router_V17_27.ino:842:6: note: 'bool PuissanceRecue' previously defined here
  842 | bool PuissanceRecue = false;
      |      ^~~~~~~~~~~~~~
Solar_Router.ino:843:5: error: redefinition of 'int PuissanceValide'
  843 | int PuissanceValide = 5;
      |     ^~~~~~~~~~~~~~~
Solar_Router_V17_27.ino:843:5: note: 'int PuissanceValide' previously defined here
  843 | int PuissanceValide = 5;
      |     ^~~~~~~~~~~~~~~
Solar_Router.ino:847:16: error: redefinition of 'void GestionIT_10ms()'
  847 | void IRAM_ATTR GestionIT_10ms() {
      |                ^~~~~~~~~~~~~~
Solar_Router_V17_27.ino:847:16: note: 'void GestionIT_10ms()' previously defined here
  847 | void IRAM_ATTR GestionIT_10ms() {
      |                ^~~~~~~~~~~~~~
Solar_Router.ino:896:16: error: redefinition of 'void onTimer10ms()'
  896 | void IRAM_ATTR onTimer10ms() {  //Interruption interne toutes 10ms
      |                ^~~~~~~~~~~
Solar_Router_V17_27.ino:896:16: note: 'void onTimer10ms()' previously defined here
  896 | void IRAM_ATTR onTimer10ms() {  //Interruption interne toutes 10ms
      |                ^~~~~~~~~~~
Solar_Router.ino:904:16: error: redefinition of 'void currentNull()'
  904 | void IRAM_ATTR currentNull() {
      |                ^~~~~~~~~~~
Solar_Router_V17_27.ino:904:16: note: 'void currentNull()' previously defined here
  904 | void IRAM_ATTR currentNull() {
      |                ^~~~~~~~~~~
Solar_Router.ino:920:16: error: redefinition of 'void onTimer()'
  920 | void IRAM_ATTR onTimer() {               //Interruption every 100 micro second
      |                ^~~~~~~
Solar_Router_V17_27.ino:920:16: note: 'void onTimer()' previously defined here
  920 | void IRAM_ATTR onTimer() {               //Interruption every 100 micro second
      |                ^~~~~~~
Solar_Router.ino:932:18: error: redefinition of 'esp_wps_config_t wps_config'
  932 | esp_wps_config_t wps_config = WPS_CONFIG_INIT_DEFAULT(WPS_TYPE_PBC);  //SR19
      |                  ^~~~~~~~~~
Solar_Router_V17_27.ino:932:18: note: 'esp_wps_config_t wps_config' previously defined here
  932 | esp_wps_config_t wps_config = WPS_CONFIG_INIT_DEFAULT(WPS_TYPE_PBC);  //SR19
      |                  ^~~~~~~~~~
Solar_Router.ino:933:6: error: redefinition of 'bool isGOT_IP'
  933 | bool isGOT_IP = false;                                                //true si IP reçue                                                      //SR19
      |      ^~~~~~~~
Solar_Router_V17_27.ino:933:6: note: 'bool isGOT_IP' previously defined here
  933 | bool isGOT_IP = false;                                                //true si IP reçue                                                      //SR19
      |      ^~~~~~~~
Solar_Router.ino:935:6: error: redefinition of 'void wpsStop()'
  935 | void wpsStop() {                                                                                //SR19
      |      ^~~~~~~
Solar_Router_V17_27.ino:935:6: note: 'void wpsStop()' previously defined here
  935 | void wpsStop() {                                                                                //SR19
      |      ^~~~~~~
Solar_Router.ino:943:6: error: redefinition of 'void WiFiEvent(arduino_event_id_t, arduino_event_info_t)'
  943 | void WiFiEvent(WiFiEvent_t event, arduino_event_info_t info) {  //SR19 3.3.6+
      |      ^~~~~~~~~
Solar_Router_V17_27.ino:943:6: note: 'void WiFiEvent(arduino_event_id_t, arduino_event_info_t)' previously defined here
  943 | void WiFiEvent(WiFiEvent_t event, arduino_event_info_t info) {  //SR19 3.3.6+
      |      ^~~~~~~~~
Solar_Router.ino:980:6: error: redefinition of 'void setup()'
  980 | void setup() {
      |      ^~~~~
Solar_Router_V17_27.ino:980:6: note: 'void setup()' previously defined here
  980 | void setup() {
      |      ^~~~~
Solar_Router.ino:1370:6: error: redefinition of 'void Task_LectureRMS(void*)'
1370 | void Task_LectureRMS(void *pvParameters) {
      |      ^~~~~~~~~~~~~~~
Solar_Router_V17_27.ino:1365:6: note: 'void Task_LectureRMS(void*)' previously defined here
1365 | void Task_LectureRMS(void *pvParameters) {
      |      ^~~~~~~~~~~~~~~
Solar_Router.ino:1468:6: error: redefinition of 'void loop()'
1468 | void loop() {
      |      ^~~~
Solar_Router_V17_27.ino:1463:6: note: 'void loop()' previously defined here
1463 | void loop() {
      |      ^~~~
Solar_Router.ino:1723:6: error: redefinition of 'void GestionOverproduction()'
1723 | void GestionOverproduction() {  // chaque 200ms (adaptation 5 fois par seconde)
      |      ^~~~~~~~~~~~~~~~~~~~~
Solar_Router_V17_27.ino:1718:6: note: 'void GestionOverproduction()' previously defined here
1718 | void GestionOverproduction() {  // chaque 200ms (adaptation 5 fois par seconde)
      |      ^~~~~~~~~~~~~~~~~~~~~
Solar_Router.ino:1861:6: error: redefinition of 'void InitGPIOs()'
1861 | void InitGPIOs() {
      |      ^~~~~~~~~
Solar_Router_V17_27.ino:1856:6: note: 'void InitGPIOs()' previously defined here
1856 | void InitGPIOs() {
      |      ^~~~~~~~~
Solar_Router.ino:1909:6: error: redefinition of 'void infoSerieAP()'
1909 | void infoSerieAP() {
      |      ^~~~~~~~~~~
Solar_Router_V17_27.ino:1904:6: note: 'void infoSerieAP()' previously defined here
1904 | void infoSerieAP() {
      |      ^~~~~~~~~~~
Solar_Router.ino:1925:6: error: redefinition of 'void EnergieQuotidienne()'
1925 | void EnergieQuotidienne() {
      |      ^~~~~~~~~~~~~~~~~~
Solar_Router_V17_27.ino:1920:6: note: 'void EnergieQuotidienne()' previously defined here
1920 | void EnergieQuotidienne() {
      |      ^~~~~~~~~~~~~~~~~~
Solar_Router.ino:1955:6: error: redefinition of 'void H_Ouvre_Equivalent(long unsigned int)'
1955 | void H_Ouvre_Equivalent(unsigned long dt) {
      |      ^~~~~~~~~~~~~~~~~~
Solar_Router_V17_27.ino:1950:6: note: 'void H_Ouvre_Equivalent(long unsigned int)' previously defined here
1950 | void H_Ouvre_Equivalent(unsigned long dt) {
      |      ^~~~~~~~~~~~~~~~~~
exit status 1

Compilation error: 'pDataRawLinky' was not declared in this scope; did you mean 'DataRawLinky'?

Edit : Dans les fichiers que tu mets à dispo, il n'y a que ceux qui ont été modifiés ? Il n'y a pas le fichier maitre SOLAR_router...

****

Salut Alain,

Dans le fichier zip jai mis touts les sources meme ceux que je n’ai pas modifiés.
Cest un package complet.
Tu peux compiler sans soucis.
Si tu as encore des soucis je vais regarder ce soir.
Mais normalement cest avec ces fichiers que jai fait le binaire.
On se tient au courant.
Regardes de ton côté si tu as bien pris ce package complet pour compiler

A+

David
Répondre

Pffff, je suis trop nul. Bref, mon excuse, je ne suis pas encore bien habitué à la manip de fichiers sous Mac (mon nouvel environnement depuis peu).

Ok, ça marche depuis 3 mn, non sans mal. J'ai du activer l'option de compilation "Erase All flash before...".
Sinon, j'avais ce phénomène sinon (extrait) après un démarrage qui était normal avec connexion ok à tout :

Code :
Signal WiFi: -61dBm
IPV4 : 10.0.0.xx
Puissance reçue : Oui
Charge Lecture RMS (coeur 0) en ms - Min : 1 Moy : 9  Max : 1422
Charge Boucle générale (coeur 1) en ms - Min : 2 Moy : 2  Max : 2
Mémoire RAM libre actuellement: 62440 byte
Mémoire RAM libre minimum: 46328 byte
ESP32 ON depuis : 0.01 heures
Guru Meditation Error: Core  1 panic'ed (LoadProhibited). Exception was unhandled.

Core  1 register dump:
PC      : 0x40186862  PS      : 0x00060a30  A0      : 0x80183edc  A1      : 0x3ffb1ad0 
A2      : 0x3ffba420  A3      : 0x93800000  A4      : 0x000003b0  A5      : 0x3ffe39c4 
A6      : 0x00000000  A7      : 0x3ffba420  A8      : 0x00000008  A9      : 0x00000009 
A10     : 0x3ffe3614  A11     : 0x3ff5f080  A12     : 0x00000000  A13     : 0x3ffe3558 
A14     : 0x35f1c070  A15     : 0x0000000d  SAR     : 0x0000000a  EXCCAUSE: 0x0000001c 
EXCVADDR: 0x0000000a  LBEG    : 0x40083ec1  LEND    : 0x40083ec9  LCOUNT  : 0x00000027 


Backtrace: 0x4018685f:0x3ffb1ad0 0x40183ed9:0x3ffb1b80 0x40183f34:0x3ffb1ba0 0x401082bf:0x3ffb1bc0 0x401078a9:0x3ffb1df0 0x40107969:0x3ffb1e30 0x40107a46:0x3ffb1eb0 0x401e43a1:0x3ffb1ed0 0x400fb93d:0x3ffb1ef0 0x40100c61:0x3ffb2050 0x40121d9c:0x3ffb2130 0x4008fa85:0x3ffb2150




ELF file SHA256: 7ef34c92b

Rebooting...
--------------------------------------------------------------
ESP32 (v17.27 et IP fixe) + sonde température + SSR -- Cumulus/Chauffe-Eau
Source données serveur Enphase.

Répondre

(11-07-2026, 04:48 PM)Alain_C38 a écrit : Pffff, je suis trop nul. Bref, mon excuse, je ne suis pas encore bien habitué à la manip de fichiers sous Mac (mon nouvel environnement depuis peu).

Ok, ça marche depuis 3 mn, non sans mal. J'ai du faire activer l'option de compilation "Erase All flash before...".

J'avais ce phénomène sinon (extrait) après un démarrage qui semble normal avec connecxion ok à tout :

Code :
Signal WiFi: -61dBm
IPV4 : 10.0.0.xx
Puissance reçue : Oui
Charge Lecture RMS (coeur 0) en ms - Min : 1 Moy : 9  Max : 1422
Charge Boucle générale (coeur 1) en ms - Min : 2 Moy : 2  Max : 2
Mémoire RAM libre actuellement: 62440 byte
Mémoire RAM libre minimum: 46328 byte
ESP32 ON depuis : 0.01 heures
Guru Meditation Error: Core  1 panic'ed (LoadProhibited). Exception was unhandled.

Core  1 register dump:
PC      : 0x40186862  PS      : 0x00060a30  A0      : 0x80183edc  A1      : 0x3ffb1ad0 
A2      : 0x3ffba420  A3      : 0x93800000  A4      : 0x000003b0  A5      : 0x3ffe39c4 
A6      : 0x00000000  A7      : 0x3ffba420  A8      : 0x00000008  A9      : 0x00000009 
A10     : 0x3ffe3614  A11     : 0x3ff5f080  A12     : 0x00000000  A13     : 0x3ffe3558 
A14     : 0x35f1c070  A15     : 0x0000000d  SAR     : 0x0000000a  EXCCAUSE: 0x0000001c 
EXCVADDR: 0x0000000a  LBEG    : 0x40083ec1  LEND    : 0x40083ec9  LCOUNT  : 0x00000027 


Backtrace: 0x4018685f:0x3ffb1ad0 0x40183ed9:0x3ffb1b80 0x40183f34:0x3ffb1ba0 0x401082bf:0x3ffb1bc0 0x401078a9:0x3ffb1df0 0x40107969:0x3ffb1e30 0x40107a46:0x3ffb1eb0 0x401e43a1:0x3ffb1ed0 0x400fb93d:0x3ffb1ef0 0x40100c61:0x3ffb2050 0x40121d9c:0x3ffb2130 0x4008fa85:0x3ffb2150




ELF file SHA256: 7ef34c92b

Rebooting...

Pas de soucis !
Top si ca fonctionne.
Répondre

********************
* 1h15 hour later. *
********************

En RAM Mini, je suis à 1132 4256 octets.

Réactivité ok.

Quelques messages d'erreur (attention un autre routeur accède aux données en même temps. Et d'ailleurs, l'autre a toujours peu d'erreurs et pas à ces horaires là.

Code :
11/07/2026 17:40:04 : Envoy JSON Reading 3 failed, status= TIMEOUT, partialLen=462    
11/07/2026 17:40:04 : JSON Loading failed    
11/07/2026 17:40:10 : Envoy JSON Reading 3 failed, status= TIMEOUT, partialLen=468    
11/07/2026 17:40:10 : JSON Loading failed    
11/07/2026 17:40:18 : Envoy JSON Reading 3 failed, status= TIMEOUT, partialLen=458    
11/07/2026 17:40:18 : JSON Loading failed    
11/07/2026 17:40:40 : Envoy JSON Reading 3 failed, status= TIMEOUT, partialLen=462    
11/07/2026 17:40:40 : JSON Loading failed    
11/07/2026 17:40:44 : Envoy JSON Reading 3 failed, status= TIMEOUT, partialLen=468    
11/07/2026 17:40:44 : JSON Loading failed




La lecture des données semble plus précise (voir comparaison des graphiques en pj.


Pièces jointes Miniature(s)
   
--------------------------------------------------------------
ESP32 (v17.27 et IP fixe) + sonde température + SSR -- Cumulus/Chauffe-Eau
Source données serveur Enphase.

Répondre

Bonjour à tous,
merci d'avoir continué à creusé et exploiter les parties intéressantes de mon code ! Désolé je ne me suis pas penché sur le pb dernièrement, n'étant plus à mon domicile. (je préfère ne pas tenter des OTA en remote, sans possibilité de reflasher en USB si ça crashe ?)

Je m'étais en effet pas mal penché sur les instabilités de mémoire, pour les pbs du webserver qui envoyait parfois des fichiers KS corrompus ou vides voire causait des redémarrages. D'où les tentatives de réduction d'allocations intermédiaires de strings sur le tas. Mais j'étais aussi arrivé à la conclusion que les multiples variables globales par source étaient coûteuses lorsqu'elles ne servaient qu'àune source.
J'ai envisagé de merger tous les buffers de décodage de payload en 1, en supposant qu'il n'y a pas de risque de conflit avec une seule source/fonction qui s'exécute a la fois ?. Tout de même plus risqué et impacte toutes les sources donc difficile à tester...

Comme évoqué par @cmichel, j'avais aussi essayé par le passé de pré-minifiser/gzipper les resources JS et CSS dans un script de pré-compilation, qui injectait le code binaire de chaque resource dans les .h, c'était efficace mais extrêmement difficile à maintenir dans une branche parallèle vu que ça modifiait beaucoup de fichiers et gênerait trop de conflits a chaque nouvelle version... Ca serait intéressant si on arrive à le mettre en place ensemble sur la branche commune.

Bon courage à ceux qui continuent à tester et coder ?
Répondre



Atteindre :


Utilisateur(s) parcourant ce sujet :
5 visiteur(s)

Moteur MyBB, © 2002-2026 Melroy van den Berg.