Routeur photovoltaïque – Réalisation logicielle

Routeur Multi Source
Version V9.01_RMS

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

Le code source est disponible ici:

Dézipper l’ensemble et ouvrez dans l’IDE Arduino (version 2.xx) le fichier Solar_Router_V9_01_RMS.ino.

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.

Historique des versions V5.x , V6.x , V7.x, V8.x

  • version V6.00_RMS
    • Corrige un bug sur le nom du capteur de température et retire les mauvaises mesure de température
    • Introduit la source Smart Gateways (en phase de test) des compteurs belge, holladais etc.
    • Introduit la source Shelly Em
    • Introduit un code tarifaire numérique en plus de LTARF dans les messages MQTT si Linky
    • Encode les URL vers Enphase pour passer les mots de passe
  • version V6.01_RMS
    • Recadre la courbe des températures sur 48h
    • Affiche les valeurs des courbes suivant la postion du curseur en X
    • Corrige un bug d’ocillation d’un relais externe pendant 1mn au début de l’action
  • version V6.02_RMS
    • Corrige un bug pour le Shelly en triphasé et en injection
  • version V7.00_RMS
    • Affiche la couleur du jour de la tarification Tempo et permet sa prise en compte dans les actions
  • version V7.01_RMS
    • Corrige un bug sur l’affichage de l’energie quotidienne dans le cas ESP externe
  • version V7.02_RMS
    • Prend en compe les caratères non alphabétiques dans le mot de passe réseau
  • version V7.03_RMS
    • Corrige un bug d’accès wifi vers Envoy et EDF
  • version V8.00_RMS
    • Introduit les modes multi-sinus et train de sinus
    • Change la bibliothèque pour la liaison série vers Linky ou UxIx2
  • version V8.01_RMS Corrige un bug sur l’envoi MQTT du Triac
  • version V8.02_RMS Modifie les libellés des relais On/Off dans la page d’accueil
  • version V8.03_RMS Lissage voie secondaire pour le capteur Shelly
  • version V8.04_RMS Rajoute un lissage sur les puissances uniquement si multi-sinus ou train de sinus avec une mesure de puissance courte
  • version V8.05_RMS Rajoute un lissage sur les puissances voie secondaire Shelly
  • version V8.06_RMS
    • Rajout device[« name »] = nomRouteur; dans DeviceTextToDiscover
    • Début couleur Tempo du jour à 6h00 du matin et non Oh
    • Modification loi de lissage pour les mesures courtes. Pour les multi-sinus et train-sinus.
    • Correction bug sur régulation On/Off
  • version V8.07_RMS
    • Rajout de la source JSY-MK-333 pour du triphasé. Mode appelé UxIx3
    • MQTT : Rajout des puissances produites et consommées dans le cas d’une source Enphase.
    • Réduction à 10 le nombre maximum d’actions ou relais pilotables pour réduire l’encombrement mémoire
    • Historique sur 48h de l’ouverture du Triac et des Relais
    • Conservation des paramètres d’une action même si inactive
    • Forçage à On ou Off des actions par pas de 30mn
  • V8.08_RMS
    • Modification demande vers EDF pour tarif Tempo
    • Correction bug de signe Shelly 2eme voie
    • Suppression RemoteDebug
  • 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

Mise à jour des anciennes versions

Dans le cas d’une mise à jour des anciennes versions V3.04_UxI ou V3.11_Linky, V4, V5, V6, V7,V8 vers la V9, notez bien sur une feuille de papier les paramètres et réglages. La nouvelle version V9, 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

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/

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

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

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

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/

Depuis une mise à jour récente de la librairie de carte ESP32, il y a un bug à la compilation « WiFiClient’ does not name a type) ….. »

En attendant que ce problème de bibliothèque se résolve, Dans l’IDE Arduino allez dans « Outils –> Carte ESP32 Dev Module –> Gestionnaire de carte

Sélectionnez l’ancienne version V2.0.17 et non la version 3.00

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

    html lang= »fr »

  2. Durand Roland dit :

    Bonjour André, tout fonctionne très bien merci. Question mineure: J’ai un cumulus 2200W: Vous recommandez une action « Découpe Sinus » avec « réactivité 50% », ou bien faudrait-il que j’abaisse la réactivité ou que je déclenche selon « train de sinus » ou « multisinus » dans mon cas svp? J’ai fait des tests avec un halogène 150W au lieu du cumulus pour mes essais, et je trouve que ça scintille beaucoup avec ces paramètres.. Mais ça ne sera peut-être pas un souci pour la résistance du cumulus.. Ma détection se fait via un Shelly3 en triphasé, j’ai un onduleur 6kW tri, mais un cumulus mono 2k2. Encore merci et bravo!

    • F1ATB André dit :

      Le scintillement c’est genant pour une lumière. Le cumulus s’en moque. Mettez le Multi-sinus.
      Avec 150W vous pouvez avoir une réactivité de 500. Avec 2200W baissez la réactivité à 10 environ.

      Cdlt

      • Durand Roland dit :

        Parfait, merci André!!

      • gerard dit :

        le routeur triac est branché sur le cumulus 2200W en multi-sinus
        mais c’est la lampe LED de mon bureau qui scintille
        j’ai un peu peur pour toute l’électronique de la maison
        je suis revenu en découpe sinus

  3. Nicolas dit :

    Bonjour, C’est sur quel version que nous somme pas obligé de connecter le routeur à une box ? (pour éviter que l’esp ne reboot)
    Merci d’avance pour le retour.
    Cdt,

  4. F1ATB dit :

    Toutes les versions ont besoins de se connecter à Internet pour avoir l’heure.
    Cdlt

  5. David dit :

    Bonjour,
    J’ai tout suivi a la lettre il me semble mais j’ai cette erreur:
    A fatal error occurred: Failed to connect to ESP32: No serial data received.
    For troubleshooting steps visit: https://docs.espressif.com/projects/esptool/en/latest/troubleshooting.html
    Failed uploading: uploading error: exit status 2

    Pourriez vous m’indiquer la solution?

    Cordialement

  6. Dédé dit :

    Bonjour André
    Comment peut on retourner en mode AP sur l’Esp 32 pour pouvoir changer de config réseau.
    Merci.
    Salutations.
    Dédé

    • F1ATB André dit :

      Soit vous coupez temporaireùent le réseau que vous ne voulez plus et l’ESP32 ne le trouvant pas repartira en AP au bout d’un moment.
      Soit vous modifiez un chiffre de la constante CLE_Rom_Init autour de la ligne 59. L’ESP32 ne retrouvant pas la valeur qu’il a en mémoire repartira sur une version vierge.

      Cdlt

  7. David dit :

    super projet !!

    est-ce qu’il y aurait une façon de piloter un chauffe eau thermodynamique ?

    avec une valeur VA seuil à dépasser pour déclencher un relais ?

  8. David dit :

    ps: y a un GitHub pour le projet ? je suis développeur forcément ça m’intéresse

    • F1ATB André dit :

      Source dispo sur le site. Pas de github.

      • David dit :

        y a beaucoup d’engouement sur ce projet une plateforme collaborative permet de canaliser toute cette belle énergie :p

        encore bravo pour tout ce travail

        • F1ATB André dit :

          Je pense que la plateforme collaborative, c’est bien avec des informaticiens. Dans le cas du routeur, c’est tout le monde et peu d’informaticiens. Je suis déjà inondé de questions plus ou moins pertinentes. Avec des variantes, des développements complémentaires. Encore plus de questions vont tomber. C’est en open source. Libre à chacun qui se sent capable de créer sa variante.

          Cdlt

          • PhilippeL dit :

            je vais dans le sens de David. Les quelques informaticiens pourraient venir aider et répondre à des questions usuelles pour vous décharger, et même ajouter des modules complémentaires à ce beau projet. Perso, je retouche un peu le code et ajoute une écriture des données en base sur un NAS plus quelques aménagements.

            Cela permet aussi de regrouper les demandes , filtrées par thème.
            Mais cela demande du temps, c’est sûr.
            Encore bravo en tout cas ! le logiciel est super fiable.

          • David dit :

            Oui le github serait que pour aider au dév. Pas pour la vie du projet.

            Je pensais justement à un refacto sur la forme : rendre le code modulaire pour faciliter les variantes. Ne compiler que ce qu’on utilise. Ajouter un support multilingue etc. Créer une API interne, etc.

            La partie HTML doit aussi être pas simple à maintenir sous forme de char* … Un petit outil de simulatoin / précompilation pourrait être sympa.

            Je suis admiratif de votre travail et je trouve qu’il pourrait être partagé hors de l’héxagone !

            Le but est que de n’avoir à maintenir qu’un sous ensemble et que vous puissiez vous concentrez sur le cœur de l’algo sans avoir à passer trop de temps sur l’écosystème qui se crée autour (ni le casser du coup).

            J’ai commandé les composant donc je vais passer pas la case compilation… je vais tenter de refacto certaines choses simples et je monterai un petit repo.

          • JSteunou dit :

            Carrément partant pour un github aussi ! Avec une CI qui build automatiquement chaque release pour profiter de beau projet comme https://web.esphome.io/ pour faciliter l’upload de firmware 🙂

          • David dit :

            J’ai posé un repo sur Github: https://github.com/quazardous/SolarRouterRMS

            – Pas de modification de code.
            – Remplacement de RemoteDebug par RemoteDebug2
            – Renommage du sketch sans référence de version (gestion via tag git)
            – Utilisation Arduino Cli via Makefile (Intégration avec Git-Bash, compatibilité Arduino IDE 2.0 et Visual Studio Code)
            – Documentation de la pile logicielle pour linux et windows

  9. Ludo dit :

    Bonjour André, et merci pour votre superbe travail !
    J’ai réalisé le routeur qui fonctionne depuis plusieurs jours maintenant.
    Est-il possible de piloter en plus du triac, un ou plusieurs relais en fonction de la puissance disponible ou bien de température du chauffe eau.
    Ayant 2 chauffe eau, le but serait via un relais NO/NC, basculer le routage d’un chauffe eau vers un autre.
    Ou alors déclencher 1000w (1/3 résistance branché) seulement sur le chauffe eau 2 et le surplus restant dans le chauffe eau 1.

    Merci beaucoup.
    Ludo

    • F1ATB André dit :

      Oui vous pouvez rajouter des relais en tout ou rien (On/Off) ou en progressif (multi-sinus..). Suivant les seuils vous pouvez donner la priorité à l’un ou a l’autre.

      Cdlt

  10. PhDV61 dit :

    Salut André,

    j’ai reçu le matériel à l’exception du coupleur optique, et donc me suis penché sur le logiciel. Du code réalisé par un électronicien, c’est quand même plus clair que du code d’informaticien !

    Pour ceux que cela pourrait aider, Je suis sur Mac Book Air 2014 toujours sous Mac-Os Sierra (si si !), et j’utilisais encore une version 1.8x de l’IDE. Je suis donc passé à « Mojave » puis « Big sur », afin de pouvoir utiliser le dernier IDE Arduino 2.3.1. Effet de bord : Office sur Sierra ne fonctionne plus. On m’invite à repasser à la caisse…

    Il m’a fallu chercher sur le net les solutions aux 2 erreurs de compil que j’avais, liées à l’environnement Mac-Os / Arduino IDE pour pouvoir compiler l’ensemble, puis le télécharger ( en bataillant quelques minutes avec le bouton « boot » ).

    Franchement, tes explications sont claires et limpides. En les suivant pas à pas, tout fonctionne à merveille.

    J’ai juste un warning de compil lié au « json » : class ARDUINOJSON_DEPRECATED(« use JsonDocument instead ») DynamicJsonDocument
    C’est lié je pense au passage de json 6 à json 7. Tout est expliqué là : https://arduinojson.org/v7/how-to/upgrade-from-v6/

    Pour l’instant ce n’est pas bloquant, car le code tourne. donc je règlerai plus tard. Je vais préparer la partie matériel ce we, en attente du coupleur optique.

    Si tu as toujours mon numéro de tel, envoie-moi le tien (ou par email) pour qu »on puisse déjeuner ou diner ensemble avec nos dames.

    A+
    Phl.

  11. debiane dit :

    bonjour André
    merci pour tout ce que vous faite et de l’aide que vous apportez.
    je me suis lancé sur l’assemblage d’un routeur solaire selon vos indications. le programme Solar_rouetur_V8_V6_RMS.ino est bien televersé. j’ai fait le premier lancement, j’ai eu les diagramme et quand je continu a vouloir m’occuper de l’OTA . depuis je n’arrive plus a retrouver les diagrammes avec l’adresse IP sur le navigateur . avez vous une idée . merci

    • F1ATB André dit :

      Regardez si l’ESP32 n’est pas passé en mode AP (emetteur Wifi)
      Regardez sur le port série avec l’Arduino IDE, l’adresse IP. Elle est donnée toutes les 30s

      Cdlt

  12. LE BELLER dit :

    Bonjour André,
    et merci pour ton excellent travail.
    Je suis en V8.06, triac (Découpe Sinus) pour BEC et SSR (On/Off) pour pompe piscine. J’ai mis Seuil Pw 0 pour BEC et On si Pw 3000W, est ce que c’est bon? Je ne souhaite pas utiliser le Off! L’idée est l’avoir en priorité 1 le BEC puis la pompe filtration piscine.

    • F1ATB André dit :

      Pour le BEC (je suppose Ballon d’eau chaude), un seuil à 0 c’est OK.
      Par contre pour la pompe de piscine si elle consomme 1CV=736W il faut mettre un seuil à -100 pour le On avec un Off à +900 (on se prend 1000W d’écart entre les seuils)
      Ou si on veut l’enclencher plus tard un seuil On à -700 et off à +300

      Je ne comprends pas le +3000 et pas de Off.

      Cdlt

  13. LE BELLER dit :

    bonjour André, merci pour ta réponse rapide, j’ai compris. J’ai une pompe de 1.5CV (1103W), j’ai mis On si Pw1250, je vais testé. Pour le +3000 et pas de off, oublie, c’est moi qui n’avait pas compris le principe de fctment du Off si Pw et On si PW.
    Autre question : menu Actions, pour le relais, le nb max de périodes horaire est de 6? Est ce que je peux modifier le code pour rajouter plus? fichier? ligne?
    Je réfléchi à modifier le code pour automatiser la durée de filtration de la piscine en fct de la T°C. Si tu as des pistes! Il faut que je comprenne le code côté fct action…
    Merci

    • LE BELLER dit :

      Les tests ne sont pas concluants, avec On si Pw1300W ou On si Pw800W, beaucoup de arrêt/marche sur une période très courte et la notion de priorité avec le Ballon d’Eau Chaude n’est pas bonne, le BEC fonctionne en même temps, bizarre. Après réflexion, pour mon relai SSR en On/Off, je vais testé On si Pw0W.

  14. LE BELLER dit :

    correction: Après réflexion, pour mon relai SSR en On/Off, je vais testé On si Pw 500W + une temporisation de 60 sec pour éviter les arrêt / démarrage trop fréquent! merci

  15. LE BELLER dit :

    pb de page web! désolé
    correction: Après réflexion, pour mon relai SSR en On/Off, je vais testé On si Pw 500W et Off si Pw -1350W + une temporisation de 60 sec pour éviter les arrêt / démarrage trop fréquent! merci

    • F1ATB André dit :

      Regardez la courbe rouge des puissances en W, pour voir combien d’écart entre Pon et Poff il faut + une marge.

      Cdlt

    • F1ATB André dit :

      Les chiffres c’est l’inverse votre moteur va enchainer les marches / arrêts..
      Pon =-1350
      Poff =+500

      Quand on injecte 1350W, alors le relais s’enclenche. Ainsi la puissance injectée va tomber à -1350+1103= -247W
      Mettez plutôt -1100W pour Pon ainsi la conso va monter autour de 0 et vous mettez un Poff de +200.

      1850 W d’écart estun peu fort pour 1103W de puissance moteur. un écart de 1300 doit être préférable.

  16. Seigneurin Stéphane dit :

    Bonjour, je voudrais ajouter une nouvelle source : j’ai une borne de recharge Lektrico 1K7k avec un petit module dans le tableau électrique qui possède une pince ampèremétrique de type Shelly je pense. J’ai regardé un peu et il y a un Json accessible sur l’IP du module, du type :
    {« type »: 0, « phases »: 1, « meter_status »: 0, « voltage »: [242.228, 242.228, 0.001], « current »: [-5.337, 0.000, 0.000], « active_current »: [-4.737, 0.000, 0.000], « power_factor »: [-0.847, 0.000, 0.000], « angle »: [-150.828, -135.173, 0.000], « active_p »: [-1147.532, 0.000, 0.000], « apparent_p »: [1353.245, 5.133, 0.000], « reactive_p »: [-681.957, 0.221, 0.000]}
    Est-ce faisable d’ajouter cette source ? Est-ce que vous hébergez le code sur Github ou quelque part ? J’ai vu dans le code des petits trucs peut-être à modifier (Envoy avec un e à la fin à supprimer par exemple; une référence à Emphase dans le fichier Source_ShellyEM qui ne doit pas devoir être là je pense).
    Merci beaucoup.

    • Seigneurin Stéphane dit :

      J’ai oublié de préciser que l’URL pour récupérer les données est du type http://IP_Address/rpc/Meter_info.get

    • Seigneurin Stéphane dit :

      Je pense que j’ai réussi à récupérer les données en ajoutant un nouveau type de source. La communication avec le module de mesure fonctionne, je récupère la tension, le courant, le facteur de puissance, la puissance active et la puissance apparente. Le graph de la première page semble se dessiner correctement. Les données brutes sont OK.
      Je ne sais pas comment calculer l’énergie par contre. Comment faire ?
      Et il faut que je vérifie que ça donne quand je suis en surproduction solaire pour s’assurer des signes des différentes valeurs mesurées (j’ai trop de conso et pas assez de soleil en ce moment) mais j’ai vu que le relais que j’ai branché était parfois alimenté quand j’avais de la surproduction (mais je travaillais sur d’autres éléments donc je n’ai pas pu bien tout vérifier).

      • F1ATB André dit :

        L’energie = Puissance * Durée
        Chaque fois que vous mesurez une puissance en Watt vous la multipliez par le temps écoulé ( en heure) entre la précédente mesure et cette dernière. Vous additionnez ce résultat au résultat d’énergie précédent.

        Cdlt

        • Seigneurin Stéphane dit :

          Oui tout à fait. Est-ce que je prends la puissance apparente ou active ? et pour le temps écoulé : je ne sais pas trop sur quelle variable me caler si elle existe : LastRMS_Millis ? et sur quelle donnée injecter le résultat : je vois Energie_M_Soutiree et Energie_M_Injectee suivant le cas mais pour le cumul je ne sais pas.

          • Seigneurin Stéphane dit :

            J’ai fait un petit calcul de temps écoulé en récupérant millis() et en stockant l’ancienne valeur. Je multiplie la puissance active par le temps écoulé et je l’additionne soit à Energie_M_Soutiree ou Energie_M_Injectee selon le cas. Je vois que l’énergie active du jour augmente sur la première page.

          • F1ATB André dit :

            Il faut stocker dans une variable l’instant de mesure. Pour la fois suivante faire la différence. Attention les millis sont des variables entier long qui déborde tous les 50 jours environ.
            On prend les watt , c’est ce que l’on paye et non les VA

            Cdlt

          • Seigneurin Stéphane dit :

            Ok merci, j’ai vérifié que le nouveau temps millis() n’est pas inférieur à la dernière valeur du temps, par protection.
            Je pense que le code est ok. Plus qu’à vérifier demain quand il fera beau…
            J’ai fait quelques changements de couleurs de mon côté et voici une petite vidéo de ce que ça donne :
            https://1drv.ms/v/s!Ai91bf9FQgj9hawSGPmA0ZCVJ3yIRw?e=okcQzd
            Je peux partager mon code si vous voulez intégrer la source dans votre version.
            Le modèle de borne de recharger avec module de mesure de puissance (pour coupler aux panneaux) que j’ai c’est ça : https://lektri.co/fr/maison/

          • Seigneurin Stéphane dit :

            C’est tout bon a priori.
            J’ai donc un routeur solaire avec 2 leds en sortie + une récupération des données sur le module qui était déjà dans mon tableau électrique (installé avec ma borne de recharge électrique et permettant de mesurer le surplus de mes panneaux solaires), un relais SSR 40A branché à un chauffe-eau 3000W.
            Tout semble fonctionner, j’espère qu’il ‘y aura pas de problème de surchauffe, j’ai mis un radiateur au dos du relais SSR et le tout dans un boitier électrique.
            Merci beaucoup !

          • F1ATB André dit :

            Parfait

  17. Eric dit :

    Bonjour, ma box est en panne j’ai récupéré une box de poche mais comment refaire le couplage entre la nouvelle box et l’esp sans devoir tout réinitialiser?
    merci

    • F1ATB André dit :

      Regardez avec votre smartphone. De temps en temps l’ESP32 va rechercher le Wifi qu’il ne trouve plus et repasser en mode point d’accès sur l’adresse 192.168.4.1

  18. Huret dit :

    Bjr André, merci pour le partage.
    Je n’ai pas de box à la maison, j’ai un iPhone qui fait office de « boite » sur laquelle j’ai déjà mon PV P&P connecté dessus. Arduino Compile & televersement se font correctement, je vois l’adr IP attribué via le Port série. Premiere connexion page web pour rentrer le nom réso &pwd se fait correctement, et après plus rien. J’ai un timeout après 20secs lorsque je souhaite me connecter sur l’adr IP attribuée. J’ai fait un essai sur le wifi du fiston et cela marche, j’ai ttes les pages info & parametrage.
    Je me dde si ma config particulière (sans box) n’est pas reconnue dans le code et je devrais faire une maj, bien que le code l’identifie au début car il me réclame le réso & pwd.
    Des idées/suggestions? Merci d’avance

    • F1ATB André dit :

      Regardez sur le port série, les messages que l’ESP32 envois.

      • Huret dit :

        Merci André,
        Voici les msgs:
        IP address: 172.20.10.5
        WIFIbug:0
        Charge Lecture RMS (coeur 0) en ms – Min : 1 Moy : 3 Max : 21
        Charge Boucle générale (coeur 1) en ms – Min : 0 Moy : 1 Max : 41
        ESP32 ON depuis : 0.53 heures
        Mesure Température invalide Niveau Signal WIFI:-85

        Cdlt

        • F1ATB André dit :

          Si 172.20.10.5 ne répond pas dans un navigateur connecté au même iphone, cela vient de cette configuration particulière qui agit comme une passerelle uniquement.
          Cdlt

  19. Thierry Royer dit :

    Bonjour, j’essaie de compiler le programme V8_06 avec IDE (2.3.2) mais j’ai une erreur ligne 89 :
    Compilation error: invalid conversion from ‘int’ to ‘const esp_task_wdt_config_t*’ [-fpermissive]
    je tourne en rond sur cette erreur sans en savoir l’origine ! j’ai désinstallé IDE, enlever le directory Arduino et réinstallé sans plus de succès
    Avez vous une sujétion ?

  20. Eric dit :

    en regardant sur le smartphone je vois bien quand l’esp repasse en point d’accès puisqu’il ne trouve plus son wifi mais impossible de me connecter en 192.168.4.1 puis ensuite perte du point d’accès