Salut,
Ca fait plaisir de savoir que c’est utile à d’autres personnes
J’ai commencé à identifier les paramètres usine, mais sans plus.
Du coup j’ai mis en place une sauvegarde des trames complètes, et restauration complète aussi: L’inconvénient c’est qu’en restaurant tout, ou restaure les paramètres comme consigne, timers […] mais au moins c’est sûr.
Voici une version avec WiFiManager, configuration et backup stockés dans la flash de l’ESP :
esp8266_warmpool_andrec7_beta_v3.zip.txt (19,3 Ko)
Pour ne pas écraser les paramètres et backup lors des prochains téléversements vers l’ESP, dans Arduino Outils/Erase Flash choisir « Only Sketch ».
Lors du premier démarrage, l’ESP va émettre un WiFi dont le nom commencera par « ESP_ »: Il suffit de s’y connecter avec un smartphone ou ordinateur, si le portail captif ne s’ouvre pas tout seul il suffit d’ouvrir une page web et vous serez redirigé vers l’interface web WiFiManager: Il y sera possible de configurer le wifi :
Ainsi que les paramètres MQTT :
Actuellement après la première configuration WiFi l’interface web se désactive, il faut redémarrer l’ESP pour réactiver l’interface web (soit via remotedebug, commande MQTT ou bouton reset de l’ESP), j’ai encore des choses à voir comme ça, c’est pas encore parfait.
Le backup n’est pas encore lancé automatiquement, il faut le lancer via la commande MQTT suivante : « WARMPOOL/command/backup ».
J’ai commencé à rendre asynchrone les publish vers MQTT par rapport à la réception d’une trame série, afin d’alléger un petit peu les communication vers Jeedom, mais c’est pas encore fonctionnel (Si activé provoque le crash de l’ESP car les timers appellent beaucoup trop souvent leurs callbacks, j’ai pas encore eu le temps de déboguer ça).
Le principe c’est un timer par trame, paramétré à 10, toute les 10s il fait le publish si des données ont été reçues depuis le dernier publish.
Paramétré à 0, l’ancien comportement est utilisé (Publish dès réception d’une trame) :
uint8_t i_pub_07D1 = 0; //Interval de publication vers le serveur MQTT (Secondes)
uint8_t i_pub_0BB9 = 0; /* /!\ Implémentation pas terminée, laisser à 0 sinon crash /!\ */
uint8_t i_pub_0443 = 0;
uint8_t i_pub_03E9 = 0;
Il sera nécessaire d’installer les bibliothèques WiFiManager by tablatronix et arduino-timer by Michael Contreras via le gestionnaire d’arduino.
Je posterai d’autres mise à jour.