homieiot / convention

🏡 The Homie Convention: a lightweight MQTT convention for the IoT
https://homieiot.github.io/
Other
705 stars 59 forks source link

Homie future? #228

Closed Tieske closed 1 year ago

Tieske commented 1 year ago

based on this discussion: https://github.com/homieiot/convention/issues/221#issuecomment-1238338960

@Thalhammer wrote:

The proper way to fix it (as I have outlined a number of times) would probably result in what would be a more or less new protocol. I am not sure what you had in mind with "take this project forward" (i.e. fix the issues, add minor features or fix it properly), would be cool if you could elaborate a bit what you thought about.

My reflection on the state of home automation (HA), and why I landed with Homie;

A HA system conceptually consists of several components. If you look at the different implementations, you'll recognize them all;

  1. devices and sensors
  2. one or more "logic engines"; if-this-then-that...
  3. GUI's for users to control their devices
  4. a central service-bus that acts as the glue between the above 3 components

Every project, open source ones (Home-Assistant, OpenHAB, etc) as well as commercial ones (Zipato, Fibaro, Girder, etc) makes the same mistake by integrating those components. And hence duplicating work. Devices connecting to one service-bus are not able to talk to another service bus. Android/iPhone apps are always specific to a single backend. Home Assistant and OpenHAB both support a ton of hardware, all driver software is a duplication of effort.

Some of those are now becoming available as standardized packages, independent of the other components;

Over the years I have been involved in multiple projects in this area;

So based on my experience a system should have the following definitions/components to enable proper interoperability and prevent lock-in:

With these components in place, any one can implement their own "logic engine" or GUI, independent. I would love to see the OpenHAB and Home-Assistant code bases be ripped apart, such that they only provide the drivers and expose everything in a standarized device-profile. That would allow me to use all connectivity and hardware without being stuck with their horrible scripting/automation engine (looking at you Home Assistant!), or their apps and GUIs

I'm in the process of replacing my HA (commercial vendor, device going out of support) and don't want to be tied to any of these integrated solutions again. Hence my Google foo led me to the Homie convention. Homie solved the service-bus part by taking an industry standard protocol (MQTT) and building on that. It also solves the device description part, which is the convention itself. NodeRed suits me fine as a logic engine (using @schaze s modules).

So moving forward;

interestingly @schaze did some work on models/profiles; https://github.com/homie-homecontrol/hc-node-homie-smarthome#node-documenation It would be nice to see if we could reuse some of that and bring it into the convention or as separate project under the same org.

As for breaking changes; we don't like them, but they are enablers for change and progress.

@Thalhammer wrote:

I wrote an extensive post in the team discussions about how I would like to move forward

Interested to hear your thoughts on this.

Tieske commented 1 year ago

I invited @Thalhammer and @ogghst , but couldn't add @schaze for some reason, so please sign up yourself (can use oauth2 with Github)

Tieske commented 1 year ago

Since we now have a proposal for Homie 5, I think we can close this now. Note that the collected design goals (in the spreadsheet) have been merged in the readme.

Please reopen if deemed necessary.