soif / espbuddy Goto Github PK
View Code? Open in Web Editor NEWWrapper to easily upload (OTA or Serial), backup, batch query, monitor ESP8266 boards using Esptool.py, Espota.py and Platformio
License: GNU General Public License v3.0
Wrapper to easily upload (OTA or Serial), backup, batch query, monitor ESP8266 boards using Esptool.py, Espota.py and Platformio
License: GNU General Public License v3.0
Hi,
How I can run espbuddy.php ?
Which software I need ?
Thanks
The built-in help action needs :
May be refactor actions as inherited classes of a master action class, with documentation included in each action class.
Each Host and/or config should be able to auto checkout or pull git versions
Instead of waiting for 16s, that the intermediate firmware is booted, ping the host until it answers at least 2 time, wait 1s, then upload the second one. Die on 25s timeout
Want to help?
Thank you ๐บ
I was looking for updating our old 2-step updater image to be built using the latest core 2.7.0, so it can support .bin.gz images.
But why re-invent the wheel if there is EspBuddy :)
So do you think it is possible you can make EspBuddy our default 2-step updater, supporting .gz images?
I was thinking about how to make the build fit, as the core 2.7.0 builds are quite a bit larger than the older core versions.
So maybe we can leave out the SPIFFS lib and let ESPEasy save some basic needed settings into the EEPROM section (which we don't yet use).
For example:
This way we don't need to interpret the settings files, or even have to bother looking at the SPIFFS.
Just allow to have a very basic interface to upload the new (.bin.gz) image.
The Firmware names (saved in the host folder) should include
TODO: implement
https://github.com/mirko/SonOTA
to flash Sonoff devices from the factory firmware, without soldering!
The more users, the more developers will join, the more features and bugs fixed
BTW add links below to pages linking to EspBubby
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.
Move the override mechanism to a method.
ie:
private _ParamOverride($param_name, $only_when_null, $can_be_alias){
}
depending on prefs[keep_previous] :
Rotate file like:
22:39:27 [DEBUG]: Options: {'esp_ip': '192.168.2.2', 'host_port': 43449, 'image': '/var/www/html/EspBuddy/firmwares/ESPEasyUploader.OTA.1m128.esp8266.bin', 'host_ip': '0.0.0.0', 'auth': '', 'esp_port': 8266, 'spiffs': False, 'debug': True, 'progress': True}
22:39:27 [INFO]: Starting on 0.0.0.0:43449
22:39:27 [INFO]: Upload size: 288048
22:39:27 [INFO]: Sending invitation to: 192.168.2.2
22:39:37 [ERROR]: No Answer
FATAL ERROR: First Upload Failed !!!
I can ping device ip with no problem? Why device is no answering?
implements : https://github.com/s0170071/CRC4ESP
Retry upload when failing, with a prior device reset if needed (serial should be ok, OTA lets see)
I've tested all "sonodiy" actions, except the 'flash' command. Because I currently have only one device, and flashing it can not be reversed to the factory firmware, so I would'nt be able to make further tests.
It should work asis, if the device accept an external URL, as the default Tasmota one currently configured in the config-sample.php file.
If it fails, it might be necessary to download the firmware directly to a local web server, and then change the URL according to the new location.
Try with a local hostname, ie:
http://mycomputer.local/firmare.bin
or even directly with an IP address, ie:
http://192.168.0.123/firmare.bin
I would appreciate if you could PLEASE report if it works correcly and what were the exact steps that you tried.
Thank you
Hi,
I love the idea of your wrapper and would like to use them on my Sonoff Touch switches which are based on ESP8285. Due to the size of the firmware I have to use the two step approach.
Unfortunately even the first upload step fails. The concerning device runs ESPEasy 2.0.0-dev12.
The image compiles after removing -DUSE_CUSTOM_H from the options. Otherwise the build fails because I have no custom parts.
The wizard finds my device and I can retrieve information from it, like version.
But the upload fails with the following lines
** Uploading Intermediate Uploader Firmware ****************************************************************************
-> /opt/EspBuddy/bin/espota.py -r -d -i 192.168.1.61 -f /opt/EspBuddy/firmwares/ESPEasyUploaderMega.OTA.1m128.bin
08:30:36 [DEBUG]: Options: {'esp_ip': '192.168.1.61', 'host_port': 47070, 'image': '/opt/EspBuddy/firmwares/ESPEasyUploaderMega.OTA.1m128.bin', 'host_ip': '0.0.0.0', 'auth': '', 'esp_port': 8266, 'spiffs': False, 'debug': True, 'progress': True}
08:30:36 [INFO]: Starting on 0.0.0.0:47070
08:30:36 [INFO]: Upload size: 288064
08:30:36 [INFO]: Sending invitation to: 192.168.1.61
08:30:46 [ERROR]: No Answer
I've tried to start this manually and telnet connects on port 47070.
Any idea?
Here are the relevant parts of my config.php
$cfg['repos']['espeasy']['path_repo'] ="/opt/ESPEasy/";
$my_espeasy_flags ='-DBUILD_DEV=\"'.$my_build.'\" -DMY_IP=\"{{host_ip}}\" -DMY_AP_IP={{host_ip1}},{{host_ip2}},{{host_ip3}},{{host_ip4}} -DMY_NAME=\"{{host_name}}\" -DMY_UNIT={{host_ip4}}';
$cfg['configs']['espeasy_1024_8285']['repo'] ="espeasy";
$cfg['configs']['espeasy_1024_8285']['environment'] ="normal_ESP8285_1024";
$cfg['configs']['espeasy_1024_8285']['exports']['PLATFORMIO_BUILD_FLAGS'] =$my_espeasy_flags;
$cfg['configs']['espeasy_1024_8285']['2steps'] =true;
$cfg['hosts']['sonoff_touch']['ip'] ="192.168.1.61";
$cfg['hosts']['sonoff_touch']['config'] ="espeasy_1024_8285";
Any help is appreciated
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.