Bonjour
J'ai un ESP32 qui fonctionne 24h/24 que je peux mettre à jour avec vscode à distance (OTA) depuis le réseau local.
Sur le même réseau local de la maison j'ai un NAS avec proxy inversé. Ainsi depuis internet, un
ping esp.xxx.synology.me
atteint le NAS.
Ma question : est-il possible de reprogrammer l'ESP32 depuis internet ?
Pour l'instant j'ai mis dans le platformio.io :
Oui, il faut que tu configure ton reverse proxy pour qu'il redirige le port utiliser par ton ESP pour l'OTA vers celui-ci.
Par contre il faudra que ton ESP est une IP fixe.
Bonjour Terwal
Il me semble que c'est ce que j'ai fait :
172.16.1.251 est l'ip fixe de mon esp au sein du réseau local.
Je précise que j'ai essayé aussi de remplacer le port 80 par le port 3232 mais même erreur que précédemment.
J'ai deux doutes :
Est-ce que le téléchargement du programme vers l'esp se fait en http ?
Qu'est ce que représentent les host_ip:0.0.0.0 et host_port:20120 visibles dans le message :
Je ne suis pas spécialiste du téléversement en OTA.
Mais je crois que c'est un serveur WEB qui est utilisé sur l'ESP, donc le protocole doit être HTTP ou HTTPS(je ne sais pas si c'est gérer).
Après ton proxy reverse peut surement se charger de passer d'un Protocol à un autre, mais meix vaut commencer par le même protocole des deux cotés.
Par contre dans ton platform.io, tu donne bien l'IP/nom de domaine de ton NAS, mais tu précise que le port est 3232.
Donc NAS, doit recevoir une demande de connexion sur ce port(3232), qu'il faut redirigé sur le port d'écoute utilisé par ton ESP.
Comme à priori 3232 est le port par défaut pour l'OTA des ESP32, je suppose que le programme de ton ESP, utilise aussi ce port ?
En tout cas, il faut que tu détermine quel est le port utilisé par ton ESP, pour l'indiquer dans la configuration de ton proxy.
J'ai à peu près tout essayé, recevoir par le port 3232 ou 443 (en https) ou 80 et renvoyer vers l'esp avec le port 3232 puisque c'est qu'il attend. Mais pour l'instant, j'obtiens toujours le même message d'erreur (celui indiqué dans mon 1er post).
avez vous essayé AsyncElegantOTA ?
ça fonctionne avec ESPAsyncWebServer qui est le choix habituel quand on veut un serveur web sur un ESP
Ensuite si vous faites une requête pour /update vous verrez une interface dédiée où vous pouvez charger un .bin pour faire l'update, et vous pouvez même utiliser l'interface pour mettre à jour des fichiers SPIFFS
Je rappelle que je ne suis pas du coup spécialiste de l'OTA, donc il est possible que je raconte des bêtises
Ton code fait de l'OTA de l'ESP vers l'IDE(basicOTA) non ?
Toi si tu veux pouvoir téléverser depuis internet, il faut le faire de l'IDE vers l'ESP(en WEB ou Mise à jour via OTA par un téléchargement)
Dans la documentation de ArduinoOTA, il indique que ce n'est pas utilisable pour les ESP(32 et 8266) et qu'il faut utiliser ESP32httpUpdate.
Comme @J-M-L a donné un lien vers un tutoriel qui justement doit faire la même chose, j'aurais plutôt tendance à suivre ses conseils, quitte à changer ton code