v2.0.0-beta.1: A big, big release
Pre-release
Be aware that this is a beta release!
After more than 6 months of development, the long awaited v2.0.0 Homie for ESP82666 is finally ready for a beta release! There are a lot of new features that should take your IoT ESP8266 devices to a whole new level. Before going into the details, I would like to thanks all the awesome contributors who made this release possible. In particular:
- @Bee-Certain for his donation
- @euphi for his extensive tests, the broadcast channel addition and his participation in autoregistration of nodes
- @flaviostutz for his work on transparent proxy in configuration mode
- @jpmens for his active participation in both the Homie ecosystem and in discussions
- @mrpace2 who did a great job of enhancing the OTA process
- @pevma for his donation and for providing me an ESP32
- @sumnerboy for his participation and for his donation
- @unaiur who allowed autoregistration of nodes and the configuration UI to be embedded
- @benzino77 for the static IP support (and more)
- All other contributors and people who reported issues and asked for features
The v2 is obviously a breaking release. Sketches are indeed not backward compatible with the v1. The v2 also conforms to the new Homie convention v2.
📝 Documentation
The documentation was moved to http://marvinroger.github.io/homie-esp8266/. I recommend you read it all, even if you come from Homie for ESP8266 v1, because a lot of things changed.
The new documentation script will allow you to access the documentation of every release released from now on, including the old v1.5.0 version, with the very same link.
✨ Features
- Static IP, custom BSSID and channel support
- MQTT is now provided by the AsyncMqttClient library, which is asynchronous, and this is actually the biggest change in the v2. Change that you won't notice... What this means is that the network code is not blocking anymore, everything is handled in another "thread", so your code cannot be blocked (in v1, if the MQTT server was unavailable, your code blocked for ~7 seconds) and can handle way more messages without crashing. In other words: the v2 is more bulletproof.
- Custom settings! 🎉 In configuration mode, you're now able to provide custom settings, booleans, numbers, strings... That you can also change in normal mode through a special MQTT topic.
- OTA is now done over MQTT. No need for an HTTP server serving the firmwares anymore, the only requirements for Homie for ESP8266 are a Wi-Fi connection, and an MQTT broker.
- Standalone mode. It was a requested feature (#125) to allow the device to operate without being configured first. It was already possible with the v1, but the device would still boot into configuration mode and spawn an AP, which was insecure.
- Broadcast channel allows you to receive broadcasts, so that a controller can trigger anything on every Homie devices.
- Range properties allows you to define a property with multiple endpoints. Useful for a LED strip for example, where you would have a range property
led
ranging from1
to10
, for example. - Optimized for battery-powered sensors. The Wi-Fi and MQTT connection are way faster than on the v1, and a new
Homie.prepareToSleep()
function allows to cleanly disconnect from the broker in order to deep sleep safely. - And a lot more...
🌐 Setup UI
The setup UI sources are now available on its own repo, marvinroger/homie-esp8266-setup. It makes use of Vue.js instead of, previously, React. The new online address is http://setup.homie-esp8266.marvinroger.fr/.
🐛 Report bugs!
This new release brings a lot of new stuff, so there's probably something broken somewhere. Let's work on making this v2 stable!