v1.5.0: mDNS querying

@marvinroger marvinroger released this Apr 23, 2016

Thanks to everyone involved.

New features

  • BREAKING - require Arduino for ESP8266 >= 2.2.0: mDNS querying available instead of having to explicitely specify MQTT / OTA servers host / port (#28)
  • Add error reason to the JSON configuration API response

Fixes

  • The MQTT connection fail reason was always UNKNOWN, this is fixed
  • Fix an issue with the configuration API, happening most often in the new 2.2.0 release of Arduino for ESP8266 (#69)

Web UI

The v1.x.x Web setup is not hosted anymore. You can download it as homie-esp8266-v1-setup.zip below.

Downloads

Fixes

  • Fix an issue where the configuration API would never accept a request

Downloads

Thanks to everyone involved.

New features

  • Implement the $uptime device property, refreshed by default every two minutes (#52)
  • The ability to subscribe a node to every properties. This is useful for a led strip for example: you will not want to do node.subscribe("1"); node.subscribe("2"); ... if you have a thousand LED. So now, with a fourth parameter to the HomieNode constructor, you can subscribe to everything. See the LedStrip example for a concrete use case (#62)

Fixes

  • Fix an issue where reconnecting to the MQTT with SSL enabled would crash (#54)

Web UI

  • The default hardware device ID was not used if the device ID was not set in the Web UI. This is fixed (#63)

Misc

  • The AP IP is now configurable from the Constants.hpp file (#56)
  • Callbacks are now std::function - thanks to @rschaten (#59)
  • More dynamic allocations avoided when logging

Downloads

This is kind of a big one. Thanks to everyone involved.

New features

  • You can now set the base topic used on MQTT if you don't want the default devices/ base topic (#44)
  • You can also set the device ID to be used on the MQTT topic if you don't want the default hardware ID (#45)
  • Breaking change (not in the API so still 1.x.x): The new OTA version string sent to the server is now of the following format: device-id=firmware-name=current-device-version=version-advertised-by-$ota (eg. da828fe0=sub2-relay=1.0.0=1.1.0). This makes it easier to parse server-side (#50)

Fixes

  • A lot of work has been done to improve the stability of the MQTT connection when using SSL. Huge thanks to @jpmens which has been very active at testing, he helped a lot 👍 (#46)

Note: This required a lot of changes in the code, the most notable being most of the dynamic allocations were removed. In other words, there are now hard limits for things like the firmware name (see Limits.hpp and customize it if you need to).

  • SSL/TLS fingerprint verification now works for MQTT (#42)

Note: The way the verification is done is not very secure due to some limitations of PubSubClient. Consider it as more secure than no fingerprint at all, but not bulletproof.

Docs

  • The documentation was moved from the Wiki to the repo. So now, whenever you download a copy of the library, you have an up-to-date documentation for your current Homie library version

Web UI

  • Polyfills are now included in the Web UI, so more web browsers are compatible (#48)
  • The Web UI is updated to reflect the latest changes in the library
  • It is visually cleaner
  • SSL is now configurable from the Web UI

Downloads

v1.2.0: Custom LED pin

@marvinroger marvinroger released this Mar 20, 2016

New features

  • You can now set your own LED pin if you don't want to use the built-in LED (#39)
  • Option to show / hide passwords in the configuration app (#32)

Fixes

  • Setup handlers was called before the MQTT connection was done. This is now fixed (#40)

Misc

  • 2 new examples added

Downloads

v1.1.0: custom branding

@marvinroger marvinroger released this Mar 6, 2016

New features

  • Custom branding allows you to change the default Homie text in the AP name, hostname and MQTT client ID to what you want. Thanks to @vixns

Fixes

  • Configuration mode was blocking at boot for ~5 seconds while scanning for Wi-Fi networks. This is now async

Downloads

v1.0.0: initial stable release

@marvinroger marvinroger released this Mar 4, 2016

The framework has been tested on real hardware for weeks, and everything is stable.

Downloads