Installation rapide du logiciel

L’ensemble du code binaire à télécharger dans l’ESP32 peut se faire très simplement et rapidement depuis votre PC ou MAC depuis la version 10.00 du routeur. Seules conditions :

  • Accéder à internet (ce site F1ATB.fr)
  • Ouvrir cette page dans un navigateur Web Chrome ou Edge

Procédure

L’ESP32 est branché sur un port série/USB du PC ou du MAC afin d’y transférer le code binaire. C’est le même code quelle que soit la configuration modulaire choisie et peu importe le capteur de mesure.

Cette procédure est adaptée à la première installation du code du routeur sur l’ESP32. Elle efface toute la mémoire Flash pour l’installation du nouveau code. Une fois en place, on peut le modifier si besoin par le Wifi depuis une page Web avec la fonctionnalité « Web OTA ».


Avec certaines cartes, si le téléversement du code dans l’ESP32 ne se fait pas, il faut appuyer sur le bouton Boot , appuyer et relâcher Reset ou RST et relâcher Boot.

Si vous utilisez une carte ESP32-ETH01 ou WT32-ETH01, regardez la procédure d’installation sur la vidéo ici : https://f1atb.fr/fr/routeur-photovoltaique-via-ethernet/

Moniteur Série

Premier lancement du programme

3 solutions s’offre à vous.

Appairage WPS

La solution la plus simple pour passer à l’ESP32 le WiFi auquel il doit se connecter à l’avenir est d’utiliser le bouton WPS de vote box WiFi. Un appui sur le bouton, puis immédiatement un démarrage ou reset de l’ESP32 et il cherchera à se connecter au WiFi désigné. Sur le port série (la console) vous trouverez l’adresse IP qui a été attribué par la box internet. Sinon, allez sur votre box et regardez la liste des dernières adresses attribuées.

Configuration par le port série

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
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/

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. Parfois, il est nécessaire de rafraichir plusieurs fois la liste des Wifi sur votre smartphone. De même, penser à répondre « oui » quand la fenêtre demandant si vous voulez rester connecté à un réseau sans accès à internet pop-up. Elle disparait parfois très rapidement…

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. Sélectionnez la case correspondante.

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.

Ce forçage des adresses IP se fait au format IPV4 (4 chiffres entre 0 et 255 séparés par un point). A partir de la version V15.10 du routeur il est possible d’appeler le routeur au format IPV6 (adresse globale sur 8 groupes de 4 chiffres hexadécimaux séparés par : et encadré [] ). L’adresse IPV6 apparait sur la page données brutes. Elle permet d’acceder directement au routeur depuis le monde extérieur si votre box internet le permet. Pour la sécurité, ouvrir que pour le routeur et mettre un mot de passe dans les paramètres.

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.

Statistiques téléchargements récents

Historique des versions V10.x etc.

  • V12.00
    •     Jusqu’à 4 capteurs de température DS18B20 ou extérieurs
    •     Offset sur les températures si besoin de corriger les mesures
    •     Rajout d’informations en sortie MQTT
    •     Les Actions peuvent être conditionnées à l’état d’autres Actions sur le même ESP32 ou un distant
    •     RAZ des historiques sur demande
  • V12.01
    • Correction bug sur les dixièmes de degrés des températures
  • V12.03
    • Corrections sur les multiplications et divisions de float par une constante
  • V12.04
    •     Mise à jour Shelly Em Pro
    •     Clarification mise en page Actions
  • V12.05
    •     Correction bugs Duree_Relais dans Mqtt.ino et débordement micros() dans Source_UxI.ino
  • V12.06
    • Compilation avec une partition mémoire NoFS suite à comportement anormal du watchdog en V12.05.
  • V13.00
    • Compilation à faire avec une partition mémoire  NoFS.
    • Conditionnement Actions par d’autres actions différentes pour chaque tranche horaire.
    • Introduction Mot de passe/Clé d’accès pour modifier les paramètres ou actions
    • MQTT: un prefixe pour la déclaration et un autre pour la publication de l’état
    • Si Action inactive arrêt envoi commande Off sur relais distant.
    • Création d’une hystérésis sur les températures si Tinf<Tsup
    • Choix de la connexion, WIFI avec Internet, WIFI sans internet ou pas de WIFI (mode AP)
    • Retrait du watchdog. Il ne fonctionne plus, sauf si on retire des lignes de code sur des sujets qui n’ont rien à voir. Problème occupation/débordement mémoire ? Pas clair.
    • Choix des couleurs sur les pages Web
    • Choix de l’horloge :internet,Linky,Internet ou Secteur
    • Choix paramétrage en mode standard ou expert.
  • V13.01
    • Mystère du watchdog qui fait planter les ESP esclaves après quelques minutes, bien que plus présent. Il faut lui dire de ne pas s’activer avec un esp_task_wdt_deinit(); en début de programme
    •     RAZ du JSY-MK-194 quand on demande un RAZ dans la page paramètre
    •     Enrichissement des messages MQTT pour l’option Linky avec les énergies par index.
  • V13.02
    •     Rajout delai de 100ms après RAZ du JSY-MK-194
    •     Correction Shelly Pro Em   
  • V13.03
    • Bug corrigé : variable non initialisée en l’abscence de Triac
    • Mise en cache du navigateur (5mn) de certaines pages pour accélerer le chargement
  • V14.00
    •     Carte ESP32 Wroom avec écran 320*240
    •     Envoi température CPU en MQTT
    •     Notes mesurant la qualité des échanges entre ESP32
    •     Correction bug calcul Energie avec Horloge Linky
  • V14.01
    • Correction bug MesurePower UxI crée en V14.00
  • V14.02
    • Re-introduction du Watchdog avec une table de partition personalisé fichier : partitions.csv
    • Correction bug absence lecture état actions   
  • V14.03
    • Forcer l’affichage normal, non miroir sur l’écran
  •  V14.04
    •  Modif pour Shelly Pro Em ligne  245
    •  Retrait mode miroir pour les écrans
  • V14.10
    •   Modif pour Shelly Pro Em de Dash
    •   Introduction ESP32-ETH01 : Ethernet
  • V14.11
    • Prise en compte des chips model D0WDQ6 qui fonctionne en WiFi bien que non V3
  • V14.20
    • Possibilité de remplcer les 2 LEDs par un mini écran SSD1306,SSD1309 ou SH1106
    •  Augmentation de la taille de l’identifiant ESP32 MQTT
    •  Source HomeWizard
    •  Correction Nom serveur si Ethernet
  • V14.21
    •     Shelly Em Gen3
    •     Courbe sur 10mn des ouvertures de Triac ou SSR
    •     Choix d’affichage des courbes de VA
    •     RAZ pour JSY-MK-333G
  • V14.22
    • Distinction des ESP32U en version « ESP32-D0WD » et WT-ETH01 (Ethernet)
  • V14.23
    •     MQTT : envoi facteur de puissance en unité % et envoi STGE du Linky
  • V14.24
    • Bug affichage ouverture action 2s
    • Bug affichage puissance HomeWizard. Modif ValJsonSG().
  • V14.25
    • Affichage des autres routeurs de la maison en page d’accueil
  • V15.00
    •     Retrait température CPU dans les données brutes. Plus défini par Espressif
    •     Reaction plus dynamique à choisir dans le cas d’un CACSI et légère surproduction
    •     Si source de données de puissance externe, le nom du routeur s’affiche en plus de l’IP
    •     Correction décodage Smart Gateway  ValJsonSG  
    •     Choix durée allumage écran LCD
    •     Affichage des puissances Max du jour
    •     Sortie au format PWM pour les Actions
    •     Choix du Timeout en cas de coupure de la communication
    •     Pilotage des Actions par MQTT : tOnOff,Mode,SeuilOn,SeuilOff,OuvreMax,Periode (Topic=DeviceName/Nom_Action)
    •     Favicon
  • V15.01
    •     Nettoyage code html, javascript,css (Merci Michy)
    •     Connexion Wifi :extension du timeout et 2 tentatives avant de déclarer une erreur (Merci Lolo69)
  •  V15.02
    •     Modifications proposée par Lolo69 sur les connexions WIFI avec le Shelly
    •     Rajout du nom du routeur dans le titre des pages HTML
  • V15.03
    •  Arrêt par stop(), après utilisation, de toutes les connexions WIFI comme proposé par Lolo69
  • V15.04
    •     Correction conflit Wifi/OLed
    •     Fin message Shelly non plus sur Timeout mais chaine de caractères. A vérifier avec tous les modèles de Shelly. Codage d’après ChatGPT
  • V15.05
    •     Si plusieurs  AP même SSID, choix du niveau le plus élevé
    •     Telnet port 23 identique au port série USB si liaison ethernet/wifi
  • V15.06
    • Correction affichage IP
  • V15.07
    • Corrections Shelly
  • V15.08
    • Appairage WPS
    • Renouvellement Token Enphase chaque mois
    • Création source de puissance non définie pour la première mise en route
  • V15.09
    • Estimateur injection pour les configurations Linky / CACSI proposé par Ludovic35
  • V15.10
    •     Modification recurrence sortie MQTT pour accepter 1s
    •     Affichage adresse IPV6
    •     Création du mode Demi-Sinus
  • V15.11
    •     Forcage des Actions en page d’Accueil inactif si mot de passe non valide
    •     ValJson Test pour différencier SG et HW
    •     Retour à 200ms la période d’appel des Shelly pour éviter une saturation
  • V15.12
    • Adaptation récurrence d’appel UxIx3 et Shelly
    • Correction bug en mode point d’accès isolé
  •  V16.00
    • Introduction du filtrage PID
  • V16.01
    • Possibilité de choisir un routeur maître en Horloge
    • Correction bug affichage Action
    • Blocage intégrateur I du PID à 50 si non utilisé
  • V16.02
    •     Correction bug d’affichage page paramètres
  • V16.03
    • Initialisation intégrateur PID à 100 pour ne pas ouvrir au démarrage
    • Affichage adresse IP .local
  • V16.04
    • Modif arrondi des retards
    • Mode DemiSinus pris en compte dans MQTT.ino
  • Version 16.05
    • Mise en page retravaillée.
    • Ajout d’un graphique temps réel pour les calculs du PID.
    •  Intégration des informations RTE Tempo (jour et lendemain) via MQTT.
    •  Correction d’un bug sur les couleurs par défaut.
  •  Version 16.06
    • Corrections de bugs :
    •     Problème PVAI_M dans CACSI.
    •     Icône favicon SVG.
    •     Modification de l’ordre de téléchargement des JS pour les pins des Actions.
    •     Restauration des anciens coefficients PID après des essais non sauvegardés.
  •   Version 16.07
    •     Découpage des gros fichiers JavaScript pour éviter les problèmes de mémoire serveur.
  •   Version 16.08
    •     Correction d’un bug sur l’entrée « ouverture max ».
  •   Version 16.09
    •     Amélioration de la mise en page d’accueil sur smartphone.
    •     Masquage des données de la deuxième sonde de puissance si non nommée explicitement.
    •     Optimisation des appels AJAX répétitifs en cas d’erreur.
  •   Version 16.10
    •     Recadrage mesures curseur sur page d’accueil
    •     Correction bug choix Pmqtt
  •   Version 17.00
    •     Changement de la table de partitions pour ajouter une partition dédiée au stockage de fichiers de données. ATTENTION OTA pas possible depuis les anciennes versions.
    •     State Class measurement pour les puissances envoyés vers HA
    •     Nettoyage du code. Merci à Michel, Piamp, ChatGPT et Gemini
    •     Sélection de la vitesse en bauds pour UxIx2 ou UxIx3
    •     Réglage de l’ouverture  du Triac ou du SSR en mode ON et en mode Forcé
    •     Redémarrage ESP32 si en mode AP (émission WiFi) depuis plus de 5mn sans l’avoir demandé
    •     Choix du hostname pour un accès hostname.local
    •     Choix du fuseau horaire et en option un serveur NTP
    •     Icone pour affichage sur Chrome/Android
    •     Choix de la disposition des graphiques en page d’accueil
    •     Choix des écrans 2.4 ou 2.8 pouces en résistif ou capacitif
  •   Version 17.01
    •     Correction bug sur le choix du GPIO du capteur de température et des GPIOs analogiques.
  •   Version 17.02
    •     Correction bug sur le choix Enphase et Shelly.
  •   Version 17.03
    •     Correction bug sur le choix des GPIOs.
    •     Enregistrement Ordre reçu par MQTT
  •   Version 17.04
    •     Erreur sur l’affichage du numéro de version en 17.03

Mise à jour des anciennes versions

Versions V4 à V10

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

Versions V11.xx à V16.xx

Pour les versions V11.xx et au dessus, sauvegardez vos paramètres sur vote PC (bouton Import/Export) si la partie entière de la version change. Pas nécessaire de sauvegarder si uniquement la partie décimale change.

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/

Version V16.xx à V17.xx


La mise à jour par OTA n’est pas possible. Faite une installation complète et rapide du logiciel après avoir sauvegardé le fichier de configuration.

NOTA

Lors de nombreux changements de paramètres, il est nécessaire non seulement de cliquer sur Sauvegarder, mais également de faire un Reset par la suite. Pour réduire le volume d’échanges entre l’ESP32 et votre navigateur internet, depuis la version 13, nous utilisons la mémoire cache de votre navigateur. Cela présente à la fois des avantages et des inconvénients. En effet, nous faisons appel à d’anciens fichiers en cache, et lors d’une mise à jour, il se peut que le navigateur ne détecte pas la nouvelle version. Un Ctrl-F5 permet de vider le cache et d’obtenir les dernières versions des fichiers.

Web 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 directement depuis l’interface Web du routeur. C’est la fonctionnalité Web OTA (On The Air) disponible depuis la version 10 du routeur.

En haut de la page « Paramètres », cliquez sur « Mise à jour par OTA ». Les différentes versions en cours vous seront proposées.

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, il se reset.

De même si pas de Wifi ou pas d’Ethernet pendant 3mn à 24h (au choix) , l’ESP32 se reset.

Liaison Serie / USB ou Telnet

Par le port série connecté en USB, vous recevez des informations de suivi de l’ESP32 utiles pour la mise en route. Depuis la version 15.05 du logiciel du routeur, ces mêmes informations sont accessibles à distance par Telnet port 23 si le Wifi est connecté. Pour cela utilisez un logiciel comme Putty.

Les commandes ci-dessous sont disponibles via le port série ou Telnet

Bienvenue !

**************
commandes pour configuration par port série ou Telnet (respect majuscules, ponctuation et terminer par touche 'Enter'):

ssid:xxx     | Pour définir le nom xxx du Wifi à utiliser
password:yyy | Pour définir le mot de passe yyy du Wifi
restart      | Pour redémarrer l'ESP32 sans appui sur le bouton EN
dispPw       | Pour afficher les mesures de puissance Pw
dispAct      | Pour afficher les ouvertures des Actions
ETH01        | Bascule sur la config ethernet avec bus RMII et LAN8720
T:xxx        | En mode Train de Sinus force la longeur de Trame.
             | T:xxx = xxx*10ms, T:0 retourne en Train de sinus normal
P:yyy        | En mode Train de Sinus force la longueur des Pulses.
             | P:yyy = yyy*10ms. P<=T . Evitez P impaire et Trame paire.
R:x          | Affiche pour le Triac (x=0) ou les Relais (1,2..) ,
             | le Retard en% somme de| Propor | Integral | Dérivé.
             | R: pour annuler
H ou ?       | pour avoir cette aide
**************

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

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é