Homie Release V4.0
With v3.0.0 we introduced the release with the words "a new beginning for Homie as a stable and reliable base".
And we want to build up on this with a new, fully backwards compatible release. With one noteworthy exception that forced us to raise the major version number, according to SemVer.
Arrays got removed
No use case could justify their existence and we found that they do not offer any performance / bandwidth benefits over just defining nodes with properties. Instead the community, especially Homie Controller developers, found Arrays to be an implementation burden. No longer! If you don't find a Homie Controller implementation for your favorite programming language, no is the time to dive in.
$stats changed
The Homie specification no longer defines any topics in $stats. It was always a controversal subject in the community, starting with the fact that Homie attributes (those topic parts that start with a dollar character)
are not meant to have subtopics.
Extensions
The extension mechanism that was first introduced in V3.0.1 has been put in use with V4. The removed $stats subtopics are now specified in a V2/v3-compat extension.
An extension is a specification on its own which allows for more modularity in the implementation space.
A Homie Controller is not required to support any extensions, but if it does, it might help to render Homie Nodes and Properties in a more intended way.
Find more information about extensions on the website:
https://homieiot.github.io/extensions/.
Happy coding!
-- The Homie Community