Routeur photovoltaïque – Installation manuelle du logiciel

Routeur Multi Source

Il existe 2 méthodes pour installer le logiciel binaire du routeur photovoltaïque F1ATB dans l’ESP32. Une méthode en ligne rapide visible ici et la méthode manuelle décrite ci-après qui donne accès au code source.

Code Source

L’ensemble du code est installable en utilisant l’outil de développement IDE Arduino. Il n’y a pas de code à écrire, uniquement une compilation faite par l’IDE et un téléchargement du binaire dans l’ESP32. C’est le même code quelle que soit la configuration modulaire choisie et quel que soit le capteur de mesure. Il est injecté dans un premier temps par la liaison série, puis une fois en place, on peut le modifier si besoin par le Wifi. Si vous n’êtes pas familier de l’IDE Arduino, voir les détails ici. Il faut, dans les préférences de l’IDE, faire appel au gestionnaire de carte de « Espressif » qui développe l’ESP32. Allez dans Fichier / Préférences et mettez l’adresse : https://dl.espressif.com/dl/package_esp32_index.json

Variantes code Source

Fin Mai 2024, Espressif a mis en ligne une nouvelle version de la bibliothèque qui gère l’ESP32. On est passé de la version 2.0.17 à la version 3.00. Laquelle s’est avérée buggé et a été remplacée quelques jours après par la 3.01. C’est un changement important qui a nécessité une reprise de certaines parties du code du routeur.

Allez sur votre Arduino IDE, pour identifier la bibliothèque ESP32 en cours suivant les mises à jour que vous avez accepté ou non.

Le code source est disponible ici, téléchargez la version appropriée à votre version de la carte ESP32:

Version ESP32V 2.0.17V 3.0.1 ou au dessus
Version Routeur V9_01 et en dessousV9_02 et au dessus

Vérifiez que vous avez les bibliothèques installées sur votre IDE Arduino :

  • PubSubClient
  • OneWire
  • DallasTemperature
  • UrlEncode

Ensuite vous devez compiler le logiciel en précisant à l’IDE Arduino que vous avez une carte ESP32.
Sélectionner la carte ESP32 Dev Module ainsi que le port de COM de Windows sur lequel est branchée la carte par le port série puis lancez la compilation et le téléchargement. Avec certaines cartes, si le téléversement du code dans l’ESP32 ne se fait pas, il faut presser sur le bouton boot au début de la tentative de téléversement.

Partition Mémoire

Le passage en version 3.0.1 de la bibliothèque de l’ESP32 a fait exploser le volume mémoire occupé de 90% à 99% de la disponibilité. Il est possible de modifier la partition de la mémoire Flash et ne plus utilser celle par défaut.

A partir de la version 10 du routeur et avant compilation, il faut aller dans : Outils–> Partition Scheme –> Minimal SPIFFS

Ainsi le volume occupé tombe à 66% environ, ce qui laisse de la place pour les évolutions futures.

On ne peut installer la V10 à partir de la V9.x en utilisant l’OTA. Il faut se connecter à l’ESP32. Démonter votre ESP32 ou amener votre PC à côté du routeur. Désolé pour la gêne occasionnée.

Comme tous les paramètres seront perdus, faites l’installation rapide à partir de la page web en étant branché en USB. Cela vous évite la compilation et la courses aux bibliothèques…
https://f1atb.fr/fr/routeur-photovoltaiq…-logiciel/

Historique des versions V8.x, V9.x

  • V8.09_RMS
    • Ralentissement appel Enphase de 200 à 400ms
    • Retrait bibliothèque obsolète ArduinoJson
    • Réorganisation sorties vers broker MQTT
  • V9.00_RMS
    •     Stockage des températures avec une décimale
    •     Simplification changement de nom de réseau WIFI
    •     Choix mode Wifi avec ou sans veille
    •     Sélection source de température
    •     Source de puissance reçue via MQTT
    •     Souscription MQTT à une température externe
    •     Souscription MQTT pour forcer On ou Off les actionneurs.
  • V9.01_RMS
    • Validation puissance apparente pour les configurations Linky et CACSI
    • Dernière version avec la bibliothèque ESP32 V2.0.17
  • V9.02_RMS
    • Suite au passage de la bibliothèque ESP32 en Version 3.0.1 importants changement pour le routeur sur le WIFI, les Timers, Le Watchdog et la partition mémoire FLASH.
    • Filtrage des températures pour tolérer une perte éventuelle de mesures
  • V9.03_RMS
    • Suite au changement de bibliothèque ESP32 en V3.0.1, le scan réseau pour un changement de nom de WIFI ne fonctionnait plus. Scan fait maintenant au boot.
  • V10.00
    • OTA par le Web directement en complément de l’Arduino IDE
    • Modification des calculs de puissance en UxIx3 pour avoir une représentation similaire au Linky (Merci PhDV61)
    • Modification de la surveillance Watchdog
  • V11.00
    • Possibilité de définir le SSID et le mot de passe du Wifi par le port série
    • Import / Export des paramètres et actions
    • Relance découverte MQTT toutes les 5mn
    • Réécriture de la surveillance par watchdog suite au changement de bibliothèque 3.0.x carte ESP32
    • Estimation temps équivalent d’ouverture max du Triac et relais cumulée depuis 6h du matin. Prise en compte de la puissance en sin² du mode découpe
    • Correction d’un bug de syntaxe non détecté par le compilateur depuis la version V9 affectant les communications d’un ESP esclave vers le maître
    • Affichage de l’occupation RAM
  • V11.10
    • Nouvelle source de mesure Shelly Pro Em
  •  V11.11
    • Correction bug mesure de température distante
  •  V11.12 à V11.16
    • Correction bugs et évolutions de bibliothèques mesure de température distante
  • V11.17
    • Compilation avec la nouvelle version 3.03 de la carte ESP32
    • Arrêt routage si température non valide
  • V11.18
    • Recherche de la couleur Tempo non plus chez EDF mais RTE (sauf pour senseur Linky)
    • Améliorations UxIx3
  •  V11.19
    • Nouvelle adresse de recherche Tempo chez  RTE (sauf pour senseur Linky) plus simple
    • Compilation avec la bibliothèque V3.0.4 pour l’ESP32
  •   V11.20
    • Petite modification recherche Tempo chez  RTE (sauf pour senseur Linky)
    • Compilation avec la bibliothèque V3.1.0-RC1 pour l’ESP32

Mise à jour des anciennes versions

Dans le cas d’une mise à jour des anciennes versions V4, V5, V6, V7,V8, vers la V9,V10 ou V11, notez bien sur une feuille de papier les paramètres et réglages. La nouvelle version V11.x, virginise la mémoire ROM au premier lancement. Il faudra faire comme un premier lancement en se connectant au point d’accès Wifi de l’ESP32 à l’adresse IP 192.168.4.1 ou par le port série.

Si vous utilisez également l’affichage distant de la « maisonnette », pensez à mettre à jour le logiciel :
https://f1atb.fr/affichage-a-distance-consommation-ou-surproduction-electrique/

Sauvegarde des paramètres

Depuis la version 11 du routeur, il est possible de sauvegarder les paramètres pour les re-installer sur une nouvelle configuration à venir ou un autre ESP32.

Moniteur Série

Après une opération de téléchargement, ouvrez le moniteur série de l’Arduino en allant sur le menu Outils. Vérifiez à droite de la fenêtre qui s’est ouverte que vous êtes à 115200 baud. L’ESP32 vous fournira de nombreuses informations comme l’adresse IP qu’on lui a attribuée etc.

Premier lancement du programme

CONFIGURATION PAR LE PORT SÉRIE (DEPUIS LA VERSION 11.00)

Si vous êtes connecté par le port série à la carte ESP32, après l’installation, il faut indiquer le nom du réseau Wifi et son mot de passe. Cette connexion peut être faite avec le moniteur de l’IDE Arduino ou depuis votre navigateur web. Il y a 3 commandes clés à entrer :

  • ssid: nom_du_reseau
  • password: mot de passe
  • restart
CONFIGURATION PAR LE WEB

Au premier lancement du programme dans l’ESP32, le logiciel ne connaît pas le nom et le mot de passe de votre réseau Wifi à la maison. Il va créer son propre Wifi en passant en mode point d’accès pour que vous vous y connectiez. Sur votre smartphone (déconnectez votre accès mobile) ou PC portable, regardez la liste des WiFi disponibles. Connectez-vous à celui qui porte le nom ESP-RMS….., il n’y a pas de mot de passe. il n’y a pas de mot de passe. Parfois, il est nécessaire de rafraichir la liste des Wifi sur votre smartphone.

Ouvrez un navigateur web et rentrez l’adresse 192.168.4.1 qui correspond à l’ESP32. Il va vous renvoyer une page vous demandant le nom du WiFi de la maison auquel se connecter à l’avenir et le mot de passe.

Votre box internet va attribuer à l’ESP32 une adresse IP sur votre réseau maison.

Reconnectez vous au Wifi de la maison avec votre smartphone ou PC. Rentrez l’adresse IP attribuée à l’ESP32 dans un navigateur Web.

Adresse IP Fixe

Si vous souhaitez fixer vous-même l’adresse IP, allez faire un tour auprès de votre box à la rubrique réseau / DHCP, vous trouverez le champ des adresses dynamiques. Par exemple, souvent les Livebox d’Orange attribuent des adresses dynamiques DHCP entre 192.168.1.10 et 192.168.1.150. Il vous reste alors un champ libre pour attribuer vos propres adresses entre 192.168.1.151 et 192.168.1.253. Fréquemment, les .254 et .255 sont réservés à autre chose. Vous pouvez ainsi donner comme adresse 192.168.1.200 à l’ESP32 si aucune autre machine sur le réseau occupe déjà cette adresse. Ce forçage de l’adresse IP, se fait dans la page « Paramètres » de l’ESP32.

IP Address gateway correspond à l’adresse IP de votre box. C’est elle qui fait la passerelle (gateway) avec le monde extérieur. Chez Orange, c’est en général 192.168.1.1. Chez Free, c’est plutôt 192.168.0.254. Les trois premiers chiffres 192.168.0 ou 192.168.1 doivent être les mêmes pour la box et votre ESP.

Clignotement des LEDs

Les 2 LEDs clignotent en phase toutes les 300ms. L’ESP32 cherche à se connecter au WIFI de la maison que vous lui avez défini.

Les 2 LEDS clignotent en opposition de phase. L’ESP32 ne trouve pas le WIFI, il est en mode Point d’Accès. (AP) en créant son propre réseau . Ouvrez votre smartphone et connectez-vous comme pour un premier lancement de programme.

La LED jaune clignote toutes les 2s environ. C’est bon signe, l’ESP32 reçoit des mesures de tension, puissance etc.
La LED verte clignote, le Triac est ouvert. Plus elle clignote, plus l’ouverture est importante.

Arduino OTA

Le code inclut la possibilité de le mettre à jour non pas par la liaison série entre le PC et l’ESP mais via le Wifi. C’est la fonction Arduino OTA (On The Air). Dans l’IDE Arduino, allez à Outils/Port/Réseau Port vous y trouverez mentionné la carte ESP32 du routeur. Sélectionnez là et le téléchargement se fera via le Wifi et non plus le port série. L’IDE Arduino vous demande un mot de passe lors de la compilation. Répondez n’importe quoi, 1 lettre minimum. Cette fonctionnalité est bien utile, une fois le routeur implanté probablement loin de votre PC.

Watchdog

Le fonctionnement de l’ESP32 est surveillé par un watchdog (chien de garde). Si l’ESP32 se bloque, ne reçoit pas de données de puissance pendant 180s, ou n’est plus connecté en Wifi il se reset.

Remarques

Si vous regardez les premières lignes du programme (Solar_Router_V9_01_RMS.ino), il y a 2 constantes :

#define HOSTNAME « RMS-ESP32-« 

#define CLE_Rom_Init 812567808

La première définie le début du nom de votre ESP sur le réseau, le deuxième est une clé qui permet de tester si le programme a déjà tourné. Au premier lancement, l’ESP ayant peu de chance de trouver cette clé en mémoire, la mémoire de stockage en ROM est virginisée. Par la suite, elle contiendra cette clé et tous les paramètres de configuration et l’état des compteurs d’énergie en Wh chaque jour à 0h. Si vous voulez, virginiser à nouveau la mémoire, changez la clé. Attention, votre ESP32 repartira en mode point d’accès, puis une fois le réseau WiFi connu, il aura une adresse IP obtenue par la box internet (DHCP).

Debug en ligne

Si vous êtes branché par le port série à l’ESP32, les messages de debug sous la forme Serial.print(…) ou Serial.println() sont disponibles sur le moniteur de l’IDE Arduino à 115200 bauds.

Alimentation durant la programmation

Il arrive que l’ESP32 alimenté par l’USB de votre PC ne démarre pas correctement. Cela vient d’une tension d’alimentation insuffisante, inférieure à 5V et d’un courant important au démarrage. Dans ce cas utilisé un Hub USB disposant d’une alimentation propre à lui. Vous connectezl’ESP32 au Hub que vous connectez à votre PC. https://www.amazon.fr/Aceele-Microsoft-Nintendo-Ordinateur-Portable/dp/B07RLFKG4X/ref=sr_1_1_sspa

Bugs Soft

USB Driver

Attention, si vous n’arrivez pas à communiquer entre votre PC et l’ESP32, c’est qu’il vous manque le driver pour l’interface USB. En général, c’est le CP2102 qui se trouve sur la carte ESP32. Pour plus d’explications, allez sur la page : https://f1atb.fr/programmation-de-lesp32-application-au-routeur-photovoltaique/

Nom SSID

Après plusieurs téléchargements, modifications du code, je me suis trouvé dans la situation où l’ESP32 cherchait bien à se connecter à mon réseau WIFI de la maison comme d’habitude. Mais, le moniteur série m’affichait un échec et passage en mode point d’accès (AP) à l’adresse 192.168.4.1. En remettant le nom du réseau WIFI (SSID) c’était toujours un échec. La solution a été de nommer un nouveau nom de réseau en modifiant le SSID de la box locale, de s’y connecter sans problème, et finalement de remettre le SSID d’origine. Cela depuis la version 3.0.1 de la carte ESP32. Je n’ai pas l’explication mais au moins le remède.

RemoteDebug (non applicable à partir de la version V8.08 du routeur)

Sur certaines configurations, lors de la compilation, il y a une erreur de librairie inexistante :…..include <hwcrypto/sha.h>
Avec un éditeur de texte, ouvrez le fichier dans vos bibliothèques Arduino C:/Users/Utilisateur/Documents/Arduino/libraries/RemoteDebug/src/utility/Websockets.cpp

Le début de l’adresse peut changer suivant l’utilisateur. Retrouvez le dossier Arduino pour localiser le fichier dans les sous-dossiers.

A la ligne 42, remplacez :
#include <hwcrypto/sha.h>
par
#include <esp32/sha.h>

Ne me demandez pas pourquoi, sur mon PC de bureau, je n’ai pas besoin de faire cette modification, sur mon PC portable, j’ai besoin.

Visualisation à distance

Certaines des données peuvent être affiché à distance sur un mini écran qui s’allume au passage d’une personne. Les détails de la construction sont disponibles ici : https://f1atb.fr/affichage-a-distance-consommation-ou-surproduction-electrique/

Si vous changez de version de routeur, il faut mettre à jour le logiciel de l’affichage distant.

Vidéo sur l’installation et le paramétrage

Sécurité

En travaillant sur ce projet en 230V, vous acceptez d’assumer la responsabilité de votre propre sécurité et de prendre toutes les précautions nécessaires pour éviter les accidents électriques.

Responsabilité

Articles sur le photovoltaïque

F1ATB André

Radio Amateur - Domotique - Photovoltaïque

Vous aimerez aussi...

602 réponses

  1. Romain dit :

    Bonjour, j’ai un problème lors du transfert de programme dans l’ESP32. La compilation se fait sans problème, mais lors de l’upload, j’ai une erreur de com avec l’ESP32.

    J’ai mis la vitesse à 115200Bauds dans arduino.

    Pouvez-vous m’aider svp?

    Merci 😉

    Erreur:
    Sketch uses 732305 bytes (55%) of program storage space. Maximum is 1310720 bytes.
    Global variables use 44824 bytes (13%) of dynamic memory, leaving 282856 bytes for local variables. Maximum is 327680 bytes.
    esptool.py v4.5.1
    Serial port COM4
    Connecting….
    Chip is ESP32-D0WD-V3 (revision v3.1)
    Features: WiFi, BT, Dual Core, 240MHz, VRef calibration in efuse, Coding Scheme None
    Crystal is 40MHz
    MAC: e4:65:b8:49:ff:d4
    Uploading stub…
    Running stub…
    Stub running…
    WARNING: Failed to communicate with the flash chip, read/write operations will fail. Try checking the chip connections or removing any other hardware connected to IOs.
    Configuring flash size…
    Flash will be erased from 0x00001000 to 0x00005fff…
    Flash will be erased from 0x00008000 to 0x00008fff…
    Flash will be erased from 0x0000e000 to 0x0000ffff…
    Flash will be erased from 0x00010000 to 0x000c4fff…
    Compressed 18992 bytes to 13112…

    A fatal error occurred: Packet content transfer stopped (received 8 bytes)
    Failed uploading: uploading error: exit status 2

    • F1ATB André dit :

      Voila ce que j’ai de mon côté.
      Le croquis utilise 1197085 octets (91%) de l’espace de stockage de programmes. Le maximum est de 1310720 octets.
      Les variables globales utilisent 106572 octets (32%) de mémoire dynamique, ce qui laisse 221108 octets pour les variables locales. Le maximum est de 327680 octets.
      « C:\Users\Utilisateur\AppData\Local\Arduino15\packages\esp32\tools\esptool_py\4.5.1/esptool.exe » –chip esp32 –port « COM5 » –baud 921600 –before default_reset –after hard_reset write_flash -z –flash_mode dio –flash_freq 80m –flash_size 4MB 0x1000 « C:\Users\Utilisateur\AppData\Local\Temp\arduino\sketches\78ECF9B4E12B336317F8B99969C6AE7C/Solar_Router_V8_07_RMS.ino.bootloader.bin » 0x8000 « C:\Users\Utilisateur\AppData\Local\Temp\arduino\sketches\78ECF9B4E12B336317F8B99969C6AE7C/Solar_Router_V8_07_RMS.ino.partitions.bin » 0xe000 « C:\Users\Utilisateur\AppData\Local\Arduino15\packages\esp32\hardware\esp32\2.0.11/tools/partitions/boot_app0.bin » 0x10000 « C:\Users\Utilisateur\AppData\Local\Temp\arduino\sketches\78ECF9B4E12B336317F8B99969C6AE7C/Solar_Router_V8_07_RMS.ino.bin »
      esptool.py v4.5.1
      Serial port COM5
      Connecting….
      Chip is ESP32-D0WD (revision v1.0)
      Features: WiFi, BT, Dual Core, 240MHz, VRef calibration in efuse, Coding Scheme None
      Crystal is 40MHz
      MAC: 10:52:1c:74:39:58
      Uploading stub…
      Running stub…
      Stub running…
      Changing baud rate to 921600

      Je ne comprends pas que vous utilisez seulement 55% de la mémoire, quand j’en utilise 95%. Vous ne seriez pas en Flash size 8MB au lieu de 4MB dans les paramètres Outils.?

      Cdlt

      • Romain dit :

        Non je suis bien en 4MB(32Mb).

        Je ne sais pas si c’est normal, j’ai une led rouge allumé fixe sur la gauche du ESP32.

        Merci d’avance

        Cordialement

        • Romain dit :

          Toute mes excuses, lors du 1er post, j’étais bien en 8MB. actuellement je me suis remis en 4MB, et là j’ai 90% d’utilisé mais j’ai toujours les mêmes erreurs.

          Sketch uses 1189381 bytes (90%) of program storage space. Maximum is 1310720 bytes.
          Global variables use 86036 bytes (26%) of dynamic memory, leaving 241644 bytes for local variables. Maximum is 327680 bytes.
          esptool.py v4.5.1
          Serial port COM10
          Connecting……
          Chip is ESP32-D0WD-V3 (revision v3.1)
          Features: WiFi, BT, Dual Core, 240MHz, VRef calibration in efuse, Coding Scheme None
          Crystal is 40MHz
          MAC: e4:65:b8:49:ff:d4
          Uploading stub…
          Running stub…
          Stub running…
          WARNING: Failed to communicate with the flash chip, read/write operations will fail. Try checking the chip connections or removing any other hardware connected to IOs.
          Configuring flash size…
          Flash will be erased from 0x00001000 to 0x00005fff…
          Flash will be erased from 0x00008000 to 0x00008fff…
          Flash will be erased from 0x0000e000 to 0x0000ffff…
          Flash will be erased from 0x00010000 to 0x00133fff…
          Compressed 18992 bytes to 13112…

          A fatal error occurred: Packet content transfer stopped (received 8 bytes)
          Failed uploading: uploading error: exit status 2

          • Romain dit :

            J’ai enfin réussi, je ne sais pas si c’est normal, mais en le débrochant de sa platine de montage, ça a tout de suite fonctionné…

            Merci pour l’aide en tout cas 😉

          • F1ATB André dit :

            Appuyez sur Boot puis Reset, relachez Reset puis Boot quand la compilation est lancée. Je ne sais pas quelle carte vous avez, certaines nécessitent de faire le passage en boot manuellement.

            Cdlt

  2. Huret dit :

    Bonsoir André,
    Je rappelle le contexte :
    Config Linky, 4 panneaux P&P, contrat CACSI, TIC mode standard, 30 cm de câble entre TIC & routeur.
    Routeur paramétré avec un seuil 75W, ouverture max, réactivité 50 et découpe Sinus.
    Il y a 2 câbles de 30cm en 1.5mm² branchés sur I1/I2 reliés via un domino aux câbles en 0,23mm² R1/routeur

    Tout le cablage a été controlé, j’ai meme remplacé l’ESP32 par une autre.

    On a essayé R1 en 1500, 1200 & 1000 ohm mais on affiche tjrs pas d’infos du TIC.
    On boucle sur les 8 secs et on redémarre ttes les 180 secs.

    Une piste?
    Merci d’avance

    • F1ATB André dit :

      Je ne comprends pas. D’après la description de votre contexte, tout est bon.
      2 suggestions :
      – Trouver un oscillo pour regarder
      — Vérifiez le sens de montage du coupleur optique.

      Avec 30cm de câble entre le TIC et le routeur, cela ne devrait poser aucun problème.

      Cdlt

  3. anthony dit :

    Bonjour f1atb,

    Je viens de tester la dernière monture sur 2esp32 différents, et je trouve que le coeur 1 « sature » en max je monte a 8000ms et la page web a du mal a rafraichir.

    Ma source de mesure est celle d’enphase. j’ai quelques erreur dans les messages:
    Connection failed to Envoy-S server!

    j’ai vérifié mon infra reseau wifi etc et je ne vois rien

    Merci encore pour votre travail!

    cordialement

    • F1ATB André dit :

      Regardez le niveau de WIFI reçu par l’ESP32 dans la page données brutes. Si vous passez en dessous des -80dBm, cela va mal marcher.
      Il faut alors un ESP32 avec antenne.

      Cdlt

  4. Jo dit :

    Bonjour,
    D’abord bravo pour votre travail

    Installé la 8.01, cela fonctionne sauf qu’en mode ON OFF, cela m’affiche le relais en pourcentage et non en ON ou en OFF.

    J’ai installé la V8.07,
    Il y a des Connection failed to Envoy-S server!, et les actions sont inopérantes.
    Dans une conversation sur Youtube, vous m’avez suggéré d utiliser la version 8.06, mais je ne la trouve pas en téléchargement.
    Merci

    • F1ATB André dit :

      Depuis hier la V.06 est remplacée par la V.07.
      Faites un CTL-F5 pour vider la mémoire cache de votre navigateur.

      Cdlt

    • anthony dit :

      ca me rassure je crois que je suis pas seul. Jo avez vous les pages qui parfois s’affiche pas?

      cdt

  5. Jo dit :

    Je viens de faire un reset de l ESP32.
    J ai remis la V08.7 et toujours pareil
    Connexion failed, affichage des pages a retardement et page actions vierge.
    ————–
    ESP On depuis : 0h 03mn
    Source des mesures : Enphase
    Niveau WiFi : -54 dBm
    Point d’accès WiFi : xxxxxxxxxx
    Adresse MAC ESP32 : xxxxxxxxxxxxx
    Réseau WiFi : Livebox-07B0
    Adresse IP ESP32 : 192.168.1.190
    Adresse passerelle : 192.168.1.1
    Masque du réseau : 255.255.255.0
    Charge coeur 0 (Lecture RMS) Min, Moy, Max : 2, 17, 2503 ms
    Charge coeur 1 (Calcul + Wifi) Min, Moy, Max : 1, 1, 198 ms
    Espace mémoire EEPROM utilisé : 42 %
    Nombre d’interruptions en 15ms du Gradateur (signal Zc) : Filtrés/Brutes : Pas de Triac
    Synchronisation 10ms au Secteur ou asynchrone horloge ESP32 Horloge ESP
    Messages
    13/04/2024 21:12:55 : Connection failed to Envoy-S server! : 192.168.1.230
    13/04/2024 21:12:55 : Connection failed to Envoy-S server! : 192.168.1.230
    13/04/2024 21:12:57 : Connection failed to Envoy-S server! : 192.168.1.230
    13/04/2024 21:12:57 : Connection failed to Envoy-S server! : 192.168.1.230

    • anthony dit :

      j’ai le meme souci. La je vais essayer de remetre la 8.6

      • anthony dit :

        je suis beaucoup plus stable en 8.3. j’ai l’impression que c’est la metered qui occasionne les lenteurs.

        cordialement

      • Gounet Eric dit :

        hello, même problème avec la 8.7. je vais aussi repasser en 8.6

    • F1ATB André dit :

      Vous avez vu que l’ESP32 ne détecte pas de Triac. Si vous en avez un, cela veut dire qu’il est mal câblé. Il n’y a pas de signal Zc.

      Cdlt

      • anthony dit :

        moi il est bien détecté et j’ai le souci. j’ai l’impression que le fait que metered réponde pas ou mal. ça occasionne un lenteur de l’interface

        • anthony dit :

          j’ai refait des tests ce matin, deroulage de cable reseau pour la metered pour vraiment optimiser le test. en 8.03 je suis stable est descendu a:
          Charge coeur 0 (Lecture RMS) Min, Moy, Max : 2, 12, 2953 ms
          par contre des que je stress la 8.07 (je clic dans les differents menu) je monte a :
          Charge coeur 0 (Lecture RMS) Min, Moy, Max : 1, 9, 8169 ms et je vois apparaitre des erreurs de connexion envoy.

          Voila si ca peu aider.

          bon dimanche messieurs!!

          • Jo dit :

            Dommage que l’on ne puisse pas télécharger les versions antérieures.
            Suivant les configurations, elles pourraient convenir.
            Par exemple, chez moi la 8.01 fonctionne correctement sauf que le ON/OFF est traité comme comme s’il s’agissait du triac ou multisinus …..(ouverture du relais en %)
            Quelqu’un pourrait me passer la 8.06 ?

        • F1ATB André dit :

          Si metered ne répond pas, cela ralenti car l’ESP32 attend quelques secondes avant de le déclarer injoignable.

          Cdlt

  6. Nutta dit :

    Vous pouvez copier le lien de la V 8.07 et remplacer le « 7 » de l’adresse par 6 ou la version que vous cherchez..
    https://f1atb.fr/wp-content/uploads/2024/02/Solar_Router_V8_06_RMS.zip

  7. Gounet Eric dit :

    Bonjour,
    j’ai aussi eu les problèmes de lenteur voire d’inaccessibilité des pages web de la v8.7.
    Je suis repassé à la v8.6. Tout est OK.
    J’ai oublié de faire une copie d’écran mais j’avais l’impression que la charge des cœurs avait beaucoup augmenté.
    cordialement

  8. Cyril dit :

    Bonjour à tous et surtout les spécialistes Home Assistant,
    J’ai installé la dernière version du routeur (en fait je suis passé par toutes les versions depuis le début quand j’ai découvert le site à André),
    Celle-ci marche à merveille,
    J’ai depuis peu installé Home Assistant pour bricoler un peu en domotique,
    J’ai configuré le routeur et Home assistant pour récupérer les données,
    C’est là que ça coince : je ne trouve pas l’entité pour afficher la puissance PW (voir l’image):
    http://www.image-heberg.fr/files/17131812123391617215.png
    Un petit coup de main serait bienvenu,
    D’avance merci,
    Cyril

    • F1ATB André dit :

      Chez moi voici l’arrivée chez Home Assistant
      https://ibb.co/jgpCWmZ

      Effacez le capteur dans HA et refaite le découvrir en faisant un reset de l’ESP32.

      Cdlt

      • Cyril dit :

        Merci pour la procédure, mais ce qui m’avait induit en erreur c’est que dans le routeur données brutes du JSY cette puissance est négative puisque j’injecte alors qu’elle apparait positive dans HA,
        https://ibb.co/bmNjvNQ
        J’aurais souhaité qu’elle s’affiche également en négatif sur HA en cas d’injection ça me parait plus parlant,
        A+

        • Marcos83 dit :

          Bonjour Cyril,
          Pour passer la valeur de PuissanceI_M en négatif dans Home Assistant
          aller dans paramètres puis Appareils, puis sélectionner MQTT
          sélectionner Routeur – RMS
          cliquer sur le capteur qui indique la puissance injectée …(nom de votre routeur +) puissanceI_M
          cliquer la petite roue dentée en haut à droite de la petite fenêtre qui vient de s’ouvrir
          recopier (click sur le symbole copier) la valeur du champs ID d’entité
          conserver cette copie soigneusement pour le moment.
          cliquer de nouveau sur Paramètres
          sélectionner le menu « entrées » (en haut à droite)
          créer une entrée
          sélectionner l’option « template »
          choisir « Modéliser un capteur »
          donner un nom par exemple InjectionRouteur
          dans le champs « Modèle d’état* » recopier le texte ci-dessous en modifiant le nom du capteur de puissanceI_M que vous avez copier.préalablement.
          Par exemple chez moi le nom de mon capteur est : sensor.solar_router_sr2_puissanceI_m, il faudra remplacer ce nom par celui que vous avez copié préalablement.
          « `cpp

          {% if states(‘sensor.solar_router_sr2_puissanceI_m’)| round(1) > 0 %}
          {{ states(‘sensor.solar_router_sr2_puissanceI_m’)| round(1) * – 1}}
          {% else %}
          0.0
          {% endif %}

          « `
          indiquer W pour unité de mesure
          Classe d’appareil = Puissance
          Classe d’état = mesure
          Désormais, lorsque vous souhaitez afficher la valeur de la puissance injectée ou créer un indicateur affichant cette valeur en négatif, vous sélectionnerez le nouveau capteur « InjectionRouteur » qui donnera la valeur de la puissance injectée en instantanée mais en valeur négative.

          A+

          • Marcos83 dit :

            Ne copiez pas la ligne cpp et la ligne après endif (c’est une pb de copier/coller)
            Le code utile commence à partir de la première accolade jusqu’à la dernière.après endif

          • Cyril dit :

            Merci pour cette proposition et les explications claires,
            Je découvre un peu plus HA,
            Cela semble fonctionner,
            Je constate que le capteur est indisponible,
            https://ibb.co/yyjVdDx
            https://ibb.co/BfzDBcD
            Je suppose qu’il sera actif en cas d’injection ?
            Bonne journée

          • Cyril dit :

            Après vérification je me répond à moi même:
            J’avais ignoré les « ‘ » en recopiant le code !
            https://ibb.co/YbSQJFv
            Erreur de débutant

          • Cyril dit :

            Merci pour cette solution que j’ai finalement réussie à mettre en place, mais il y a un soucis en cas de consommation l’indicateur indique 0 et en cas d’injection il marque indisponible ci joint l’historique :
            https://ibb.co/CP12J2N
            Je vais ouvrir un nouveau sujet,
            Cyril

  9. DD dit :

    Bonjour André,

    Superbe mise à jour; merciiii!
    je pensais qu’on avait atteint un sommet avec la dernière version et bien non, toujours plus haut, cet outil est fantastique!
    Bravo.

  10. Cyril dit :

    Bonjour à tous,
    J’ouvre un nouveau sujet concernant l’affichage de la Puissance (Pw) qui est affichée en négatif dans les données brutes du JSY en cas d’injection:
    https://ibb.co/QJ6xNBH
    Alors quelle apparait en positif dans HA:
    https://ibb.co/HdZ0z00
    Je ne m’en sort pas avec la solution de Marcos83 que je remercie au passage (voir plus haut)
    Est-ce quelqu’un a trouvé le moyen d’afficher Puissance (Pw) du JSY qui correspond a Routeur_rmsPuissanceI_M dans HA en positif en cas de consommation et en négatif en cas d’injection,
    Merci pour vos idées,
    Cyril

    • Marcos83 dit :

      Bonsoir Cyril. Dans votre copie écran on dirait que vous n’avez pas modifié la seconde ligne qui indique toujours le nom de mon capteur. Refaites une vérification. Si le capteur est indisponible uniquement en injection c’est sûrement une erreur sur le nom du capteur lorsque la condition IF states… est remplie.

      • Cyril dit :

        Un grand merci pour votre retour et vos explications claires,
        Encore une erreur de débutant, j’ai effectivement fait une erreur dans le « template » du capteur:
        https://ibb.co/dcyqPkg
        Après correction ça marche:
        https://ibb.co/dcyqPkg
        Une étape de plus pour comprendre HA…
        Cyril

        • Cyril dit :

          Erreur sur la deuxième capture que voici:
          https://ibb.co/PMndy9n

          • Marcos83 dit :

            C’est un plaisir. Vous pouvez continuer en combinant les infos de ce nouveau capteur injection avec le capteur PuissanceS_M pour réaliser un indicateur unique affichant avec une aiguille verticale la puissance zéro au milieu (ni injection, ni soutirage avec une petite marge), négative à gauche et soutirée à droite avec des couleurs. Cela vous donne l’indication de la régulation du routeur. (c’est plus cool avec la version UxI).
            Allez dans paramètres, -> entrées, créez une entrée, choisir l’option « combiner l’état de plusieurs capteurs ». Nommez le par exemple « regulation » (sans accent), selectionnez « sensor.rms_8_03_2024_c1_routeur_rms_puissances_m » et « injection », selectionnez « Somme », précision = 1
            une fois créée, vous pouvez l’ajouter en tant que « Jauge » dans un de vos tableau de bord.
            Une fois dans la nouvelle « jauge », cliquez sur « afficher l’éditeur de code » et collez le code ci-dessous en prenant bien soins de remplacer sensor.regulation par votre capteur si vous l’avez nommé différemment de l’exemple ci-dessus.
            Ci dessous le code de mon indicateur.

            type: gauge
            entity: sensor.regulation
            needle: true
            severity:
            green: -25
            yellow: 25
            red: -500
            max: 500
            min: -500

            repassez sur l’éditeur visuel en cliquant sur « Afficher l’éditeur visuel ».

            Bien à vous.

          • Marcos83 dit :

            Voici un exemple sans production solaire.pris en fin de journée https://transfert.free.fr/bIcUcX8
            Lorsqu’il y a production solaire et que je consomme la totalité sans soutirer l’aiguille « Régulation » oscille dans la zone verte.

          • Marcos83 dit :

            un autre exemple en régulation https://transfert.free.fr/E9u04Kn .les valeurs ne sont pas toujours à zéro, mais oscillent autour de -25w à +25w

          • Cyril dit :

            Je répond ici au à vos commentaires du 18 Avril
            Merci pour ce nouvel exemple,
            Voilà ce que ça donne :
            https://ibb.co/9prp4g4
            Cela motive pour continuer avec HA,
            Est-ce que vous êtes sur d’autres forums,
            Peut-être la communauté française HA ?
            Je ne voudrais poser trop de questions concernant HA ici pour ne pas « polluer » les commentaires liés au routeur,
            Bonne journée

          • Marcos83 dit :

            C’est Nickel !!
            En fait je répondais à votre question initiale posée à André parce que j’avais déjà rencontré le problème en passant de la V3.03 à la V8.05 et j’ai pensé que de vous expliquer ma démarche pourrait vous être utile.. 😉
            Je ne suis pas sur d’autres forums ni un pro de HA. Je trouve en général toutes les réponses sur le net (tuto, vidéo, GitHub, Arduino, dont la plupart sont en anglais, mais si vous souhaitez échanger hors forum transmettez-moi un email, J’essaierai de vous aider ou vous de vous orienter vers des sites que je consulte..
            Bien à vous,

  11. David dit :

    Bonjour André,

    j’ai peut-être repéré un petit bug sur ShellyEm (une possible inversion de signe sur le traitement de la 2ème voie, ma compréhension n’est que partielle)

    https://github.com/quazardous/SolarRouterRMS/blob/dae0e33e51245e8c4e2dd96e28d75a42df5c779f/Source_ShellyEm.ino#L155

    cdlt,
    David

    • F1ATB André dit :

      Oui, vous avez raison. Normalement on a pas d’injecté ici, ce n’est pas grave. Je vais corriger dans la prochaine version.

      Merci

  12. LaurentC dit :

    Bonsoir André
    je n’ai pas l’heure sur la page web du routeur et du coup je pense que les actions programmées n’activent pas le triac.
    J’ai pourtant les données du shelly em qui remontent.
    Y a t’il un paramètre à modifier svp ?

    • F1ATB André dit :

      Vous avez une erreur sur l’IP de la passerelle (gateway) ou du DNS dans la page Paramètres. L’ESP32 ne trouve pas le chemin pour accéder à l’heure.

      Cdlt

  13. Damien dit :

    Bonjour et merci pour le travail réalisé ! Je tente ma chance en ayant bien les modules de la bibliotheque mais j’ai ca si tu as une idée ?? merci d’avance

    Alternative pour hwcrypto/sha.h: []
    ResolveLibrary(hwcrypto/sha.h)
    -> candidates: []
    c:\Users\damsi\Documents\Arduino\libraries\RemoteDebug\src\utility\WebSockets.cpp:42:10: fatal error: hwcrypto/sha.h: No such file or directory
    #include
    ^~~~~~~~~~~~~~~~
    compilation terminated.
    exit status 1

    Compilation error: exit status 1

      • Damien dit :

        Merci infinniment !! Effecvtiveemnt il suufuit de lire …

        Par contre j’ai encore un blocage , j’ai essayer BOOT et aussi BOOT , En , relacher En puis relacher BOOT en lancant la compil / televerser ca donne ca : Utilisation de la bibliothèque FS version 2.0.0 dans le dossier: C:\Users\damsi\AppData\Local\Arduino15\packages\esp32\hardware\esp32\2.0.11\libraries\FS
        « C:\\Users\\damsi\\AppData\\Local\\Arduino15\\packages\\esp32\\tools\\xtensa-esp32-elf-gcc\\esp-2021r2-patch5-8.4.0/bin/xtensa-esp32-elf-size » -A « C:\\Users\\damsi\\AppData\\Local\\Temp\\arduino\\sketches\\37B223C3BAD66D7A4145DA26183A62AA/Solar_Router_V8_07_RMS.ino.elf »
        Le croquis utilise 1199357 octets (91%) de l’espace de stockage de programmes. Le maximum est de 1310720 octets.
        Les variables globales utilisent 106572 octets (32%) de mémoire dynamique, ce qui laisse 221108 octets pour les variables locales. Le maximum est de 327680 octets.
        « C:\Users\damsi\AppData\Local\Arduino15\packages\esp32\tools\esptool_py\4.5.1/esptool.exe » –chip esp32 –port « COM3 » –baud 921600 –before default_reset –after hard_reset write_flash -z –flash_mode dio –flash_freq 80m –flash_size 4MB 0x1000 « C:\Users\damsi\AppData\Local\Temp\arduino\sketches\37B223C3BAD66D7A4145DA26183A62AA/Solar_Router_V8_07_RMS.ino.bootloader.bin » 0x8000 « C:\Users\damsi\AppData\Local\Temp\arduino\sketches\37B223C3BAD66D7A4145DA26183A62AA/Solar_Router_V8_07_RMS.ino.partitions.bin » 0xe000 « C:\Users\damsi\AppData\Local\Arduino15\packages\esp32\hardware\esp32\2.0.11/tools/partitions/boot_app0.bin » 0x10000 « C:\Users\damsi\AppData\Local\Temp\arduino\sketches\37B223C3BAD66D7A4145DA26183A62AA/Solar_Router_V8_07_RMS.ino.bin »
        esptool.py v4.5.1
        Serial port COM3
        Connecting………………………………..

        A fatal error occurred: Failed to connect to ESP32: Wrong boot mode detected (0x13)! The chip needs to be in download mode.
        For troubleshooting steps visit: https://docs.espressif.com/projects/esptool/en/latest/troubleshooting.html
        Failed uploading: uploading error: exit status 2

        • Damien dit :

          J’ai reussit visiblement en laissant appuyé sur le BOOT tout le long de la procédure … bizarre quand meme . il s’agit d’un ESP32-VROOM-32D

  14. Jerome Chamoux dit :

    Bonjour André,
    Grand merci pour votre partage !
    Peux on mettre a zéro les compteurs d’energie active total ?
    Cordialement
    Jerome

    • F1ATB André dit :

      Cela dépend du capteur de puissance
      UxI, oui en changeant la constante en début de programme #define CLE_Rom_Init 812567808
      Attention, cela va tout effacer.

      Pour les autres capteurs Linky, UxIx2, les valeurs sont stockées par ces capteurs, on ne peut pas les changer.

      Cdlt

  15. David dit :

    Bonjour André
    Tout abord, je voulais vous remercier grandement pour la qualité de votre travail et son partage.
    J’utilise un ESP32 pour la collecte des données du Linky ( CACSI Donc injection = Valeur 0). Ces données sont envoyées sur un second ESP qui gère un triac 40A pour alimenter la résistance de secours de 2400 watts de mon cumulus thermodynamique. Cela fonctionne mais j ai remarqué que l’ ouverture du Triac était très lente. 1 % soit 24w toutes les 30/40 seconde si le curseur de réactivité est aux alentours de 10. Si j’ augmente la réactivité c ‘est plus rapide ( 15 secondes) mais si la valeur du Linky redevient supérieure à 0 (seuil de régulation )ca a tendance a faire chuter très rapidement l’ouverture du triac voir le fermer totalement. Et donc la je repars pour une longue ouverture du triac. Pendant ce laps de temps je réinjecte donc une partie de ma surproduction.
    Ma question est donc la suivante : est il possible de temporiser l’ouverture du triac de plus 1 % toutes les 5 secondes ( valeurs Linky toutes les 2 s + délais découpage régulation ) et en cas de passage en consommation( Linky supérieur à 0) le faire descendre de 5 % afin d’éviter la consommation via le réseau. D ans mon cas l’ouverture max du triac n’excedera pas 60% donc 1 minutes pour fermer le Triac.
    En vous remerciant encore.
    Cordialement
    David.

    • F1ATB André dit :

      Le routeur calcul la différence entre le seuil et la mesure de puissance pour corriger l’ouverture du Triac.
      Comme vous avez un CACSI qui interdit l’injection, il faut mettre le seuil de régulation à +50 ou +100W, afin d’avoir au moins une différence bien identifiée qui sera multipliée par la réactivité. Ainsi vous n’aurez plus ce phénomène de lenteur.

      Cdlt

      • Gilles B. dit :

        Bonjour,
        Pour info un contrat CASCI n’interdit pas systématiquement l’injection (malgré le terme CASCI) . C’est bien précisé sur le site ENEDIS, celle ci est tolérée si maitrisée et relativement faible. l’appréciation de ces notions restent vagues et pour ma part avant l’usage des routeurs j’infectais pas mal depuis un an sans soucis ni remarques d’Endis… depuis l’usage des routeur je n’injecte que 5% environ soit moins de 20 kwh/ mois.

        • David dit :

          Bonjour,
          Moi aussi j’injectais pas mal ( plus 100 kwh/ mois sur certaine periode) et depuis des années ca a jamais posé problème !! je peux brider ma production mais pourquoi le faire !!

      • David dit :

        Effectivement j ai augmenté mon seuil et là ca régule parfaitement !!! je vous remercie encore !!! vous connaissez parfaitement votre produit. Félicitations !!

        Cordialement.

  16. Fab. dit :

    J’ai moi aussi eu des problèmes de lenteur même sur la 8.6 en Envoy metered. Le problème venait du fait que j’ai un 2ème routeur qui prenait le premier comme source. Si ça peut aider.

  17. LaurentC dit :

    bonsoir André
    Le triac commute sur on ou off mais il n’y a pas de régulation.
    comment vérifier que le dimmer est fonctionnel ? Le triac commute pour moi il est ok.
    cordialement

    • F1ATB André dit :

      Vérifiez dans la page données brutes en bas que sur la ligne Zc, vous avez 1/1,1/2 etc.. Cela veut dire que les impulsions de synchronisation du secteur arrivent. Il faut que le 230V (phase et neutre) soit branché sur la carte. Ensuite vous pouvez mettre à 3.3V, l’entrée pwm du gradateur et vérifier que vous avez du 230V en sortie Load.

      Cdlt

      • LaurentC dit :

        la ligne Zc affiche bien les impulsions, et j’ai bien du aux bornes du load/neutre quand le triac est à % mais de régul c’est tout ou rien !

      • LaurentC dit :

        André,
        Les valeurs reçues du shelly ne sont pas stables dans les données brutes, ça fluctue entre la valeur réelle de consommation et une valeur incohérente, on dirait que ça envoi un coup la sonde conso edf un coup la sonde conso du solaire.
        j’ai essayer de mettre l’entrée 0 ou 1 -> idem !
        j’ai essayé de débrancher la sonde qui mesure la production solaire mais c’est pareil !
        je sèche, vous auriez une idée?

      • LaurentC dit :

        Petit précision, les valeurs du shelly sur l’onglet accueil du routeur sont correctes et ne bougent pas par contre sur l’onglet données brutes les valeurs sont instables

  18. Ronnie dit :

    Bonjour,
    J’ai installé Arduino 2.3.2, j’ai installé toutes les bibliothèques demandées, j’ai bien mis l’URL de carte supplémentaire https://dl.espressif.com/dl/package_esp32_index.json, mais dans la liste je ne trouve pas ESP32 Dev Module, j’ai par contre 4 autres choix avec ESP32 Dev Board. Ai-je oublié quelque chose?

    • F1ATB André dit :

      Relancer Arduino, attendez un peu, qu’il aille se mettre à jour chez Expressif.

      Cdlt

      • Ronnie dit :

        Aucun changement, cela n’apparait toujours pas.
        J’ai essayer en supprimant l’URL, quitté arduino, et de nouveau copier l’URL, aucun changement.

        • F1ATB André dit :

          Demander à Google. Ce n’est pas lié au programme du routeur, mais en général la prise en compte de l’ESP32 dans Arduino IDE.

          Cdlt

          • Ronnie dit :

            J’ai trouvé ! Je pensais qu’en mettant l’URL cela suffisait, mais il faut ensuite installé ESP32 dans le gestionnaire de carte.

  19. Ronnie dit :

    Désolé mais je vous embête de nouveau. J’ai ouvert le fichier .ino dans arduino, et avant de le télécharger dans l’ESP32 j’ai vérifier le code et cela m’indique une erreur : Compilation error: exit status 1.

    • Ronnie dit :

      Voici la fin de la compilation :

      #include
      ^~~~~~~~~~~~~~~~
      compilation terminated.
      a\Local\Arduino15\packages\esp32\hardware\esp32\2.0.11/tools/sdk/esp32/include/fatfs/vfs -IC:\Users……..
      …..\Documents\Arduino\libraries\RemoteDebug\src\utility\WebSockets.cpp -o nul
      Alternative pour hwcrypto/sha.h: []
      ResolveLibrary(hwcrypto/sha.h)
      -> candidates: []
      exit status 1

      Compilation error: exit status 1

      • Ronnie dit :

        après include il y a : hwcrypto/sha.h qui n’a pas été copié sur mon message précedent

      • F1ATB André dit :

        L’explication se trouve au chapitre Bugs Soft sur la page installation du logiciel.

        cdlt

        • Ronnie dit :

          Désolé, j’avais vu plusieurs messages de personnes dans mon cas en plus. Téléchargement effectué sur l’ESP32, reste plus qu’a assembler le routeur.
          Merci encore de votre disponibilité.

  20. DEBAVI dit :

    Bonjour, j’ai tenté de vous joindre mais je ne retrouve pas ma demande. Pouvez-vous m’aider