soif / EspBuddy

Wrapper to easily upload (OTA or Serial), backup, batch query, monitor ESP8266 boards using Esptool.py, Espota.py and Platformio
GNU General Public License v3.0
51 stars 10 forks source link

EspEasy upload via web interface #17

Closed kluszczyn closed 6 years ago

kluszczyn commented 6 years ago

EspEasy pre-build binaries has already active firmware upload via web interface and do not have Arduino OTA functionality. Currently, to use EspBuddy, first we have to build EspEasy binaries with Arduino OTA support enabled (this adds +10kb to firmware size), update firmware in device via web interface or serial, enable Arduino OTA in EspEasy Advanced setting page, reboot and then device should be visible to EspBuddy via Arduino OTA mechanism.

To simplify this process and give possibility to use pre-build binaries of EspEasy I would propose to implement in EspBuddy upload via web interface, probably with help of curl function, as a option to Arduino OTA.

soif commented 6 years ago

As ESPBuddy obviously needs some command line skills, as well as having php installed, It limits its usage to users who are a bit experimented, and thus are certainly able to git clone EspEasy, install PlatformIO, and add the OTA feature before letting EspBuddy built it and upload it. So the need of using pre-build binaries is really hypothetic IMHO.

But anyway, If you wish to add a curl upload method (ie -u) to Espbuddy, you're really welcome to submit a Pull Request (to the develop branch). 🍺

Notice that unfortunately this will not work directly for 1M devices because the current EspEasy is larger than (1M - 128k / 2), so in this case the curl upload should proceed in 2 steps (exactly as it does fo the Espbuddy OTA method) : 1) upload an intermediate firmware (the one shipped with Espbuddy) 2) upload the final firmware

Also you would have to slightly modify the archive mechanism so that if Firmware.bin is NOT a symlink ( you might even add a --firm=/path/to/firmware option), once uploaded, it is correctly moved to the firmware folder, and symlinked as Firmware.bin

And finally be sure to put some of the code in repo + _repoespeasy classes, so that it is cleanly extendable to Espurna or Tasmota.

kluszczyn commented 6 years ago

Making changes in your code is over my head (unfortunately). Idea was to replace OTA by curl upload for EspEasy, as web upload is enabled by default and available in pre-build binaries.

So, feel free to close this issue. Thanks