homie-esp8266: OTA Crashing WeMos device
After much testing, I have been able to find one of the examples is able to replicate my issue. The most basic example as per http://marvinroger.github.io/homie-esp8266/docs/2.0.0/quickstart/getting-started/ does work OK. The TemperatureSensor does not. I think it maybe related to having two temperatureNode.advertise
lines - but no idea how.
I’m using a WeMos Mini Pro v1.1.0 and a v1.0.0 (both have the same behavior - so fairly sure it’s not the device). I’m sure OTA used to work on these same devices but that may have been Homie <= 1.5. I’m only recently getting back into OTA updates using the v2.0 firmware (latest stable release).
Basically, if I upload the “TemperatureSensor” example, then change the version to v1.0.1 (say), and recompile, and try to upload the newly built firmware using ota_updater.py
, I get an Exception right away. The decoded exception looks like this: https://gist.github.com/sillyfrog/1e66895dd9b3ed576d31514c7bcface2
I have tried using both Arduino, and PlatformIO (each with their own checkout), and ensured all libraries are up to date.
Things appear to otherwise work OK, until you go to do an OTA update, and then things fall apart.
Happy to provide any more information you may need - and I feel I’m just doing something silly, but not sure where to start looking 😕
Thanks in advance.
Cheers.
About this issue
- Original URL
- State: closed
- Created 6 years ago
- Comments: 44 (4 by maintainers)
@stritti Yes, I’ve been using this (well the current release at least) for some time and it’s still working for me. Thanks!
I can confirm and reproduce this issue on a Wemos D1 mini both with Homie OTA and ArduinoOTA. All test with build flag
PIO_FRAMEWORK_ARDUINO_LWIP2_LOW_MEMORY
It is related to the device_id as @JorinL suggested.device_id: homie-alu-led-2
echo "0 48003 412864 50a61345aed86f6dabce66fca2de94a2" >/dev/udp/192.168.2.12/8266
resets the devicedevice_id: led2
echo "0 48003 412864 50a61345aed86f6dabce66fca2de94a2" >/dev/udp/192.168.2.12/8266
does not reset the deviceSo for me it is certain device_ids that break the process. As possible workaround maybe you can use lowercase ids without any special chars. And I think further investigation in ArduinoOTA library is necessary in that case.
My workaround is to use normal OTA instead of Homie OTA…