[homeassistant] Split Home Assistant from MQTT binding#19496
[homeassistant] Split Home Assistant from MQTT binding#19496lsiepel merged 7 commits intoopenhab:mainfrom
Conversation
There was a problem hiding this comment.
Thanks, this is a big step forward.
All changes i can think of are included, but it is so large, we probably need to test this extensively with snapshots.
It affects multiple mqtt bindings, so they probably all need to be tested in some way, especially installing / runlevels etc.
ab0215b to
49a7ddf
Compare
|
I was able to get a KAR built for all of "addons" (by stripping out all unrelated bindings), then removed the built in addons feature repo in my test instance. I was able to confirm that installing the Home Assistant binding automatically installs the MQTT binding just as I expected it to. For uninstallation, it works a little differently than I thought. I can easily uninstall the Home Assistant, and if I had not explicitly installed MQTT binding, it gets removed too. If I had explicitly installed the MQTT binding, it gets left. The change from my expected behavior is that if you have Home Assistant installed, then try to uninstall MQTT... nothing happens. Under the hood, it's just de-selecting MQTT for explicit installation, but because it's an implicit dependency of the Home Assistant feature, it gets left installed. I don't know if this one bit of weirdness is worth updating the addons API and the UI to be able to show "implicitly installed; cannot be removed" or something in this state. I can clearly see the state in the Karaf console under Once the core PR gets merged, I'll install the bundles to my production installation to get more testing. I also have generic MQTT, Homie, and espmilighthub things, so I'll get good testing exposure. (I'm awaiting the core PR, because having on-off core bundles locally is a huge pain, because anytime a feature gets installed or removed it reverts it, and for many core bundles that can cause most/all of your instance to be broken until you do a restart). |
f5608d0 to
501a9c0
Compare
Signed-off-by: Cody Cutrer <cody@cutrer.us>
Signed-off-by: Cody Cutrer <cody@cutrer.us>
Signed-off-by: Cody Cutrer <cody@cutrer.us>
Signed-off-by: Cody Cutrer <cody@cutrer.us>
It fails due to referencing the sibling MQTT feature. So instead add it to the list of explicitly verified features in the full feature pom. Signed-off-by: Cody Cutrer <cody@cutrer.us>
Signed-off-by: Cody Cutrer <cody@cutrer.us>
7220ab8 to
b56f93b
Compare
|
Rebased and merge conflicts resolved. 🤞 it passes CI now that the XSD caching is merged, too. |
it was in mqtt.generic, so needed to be moved to mqtt Signed-off-by: Cody Cutrer <cody@cutrer.us>
|
I guess there are certain situations that it can be considered a breaking change. Should we add a upgrade notification to the distro repo? wdyt? |
|
Yes, I agree. If only because it won't auto-select the new feature. |
This first collapses mqtt.generic into mqtt to simplify and reduce confusion about feature dependencies. Then it moves the Home Assistant sub-binding into its own binding, with just a feature dependency on the MQTT binding. I've tested existing mqtt:homeassistant Things continue to work, and I can create both auto-discovered Home Assistant things (and they come online) and manually created Home Assistant things (as far as finding the bridge) in the UI.
Refs openhab/openhab-core#4878
Depends on openhab/openhab-core#5083