MQTT items unreliable

There is, the issues in GitHub…

One might argue that it’s not particularly prominent… more like the bottom of a filing cabinet.

It seems like the sort of thing that could be shown in the web browser the first time you connect to the new version. Not that most people would read it, but I’d like to think I would have at least skimmed it, and β€œMQTT binding has severe subscription issues, do not use” would probably have caught my attention? :slight_smile:

But who would read through a list of known problems concerning over 330 different bindings? At any given moment there are probably will over 100l known issues. In fact, there are currently 330 open issues. And that just covers the bindings. There are dozens more in the core and his repos.

The solution can’t be a simple list. It’s too long to be useful.

But that’s not what it would have said. It would have said something about Homie not working. But only a minority if users currently use Homie, because of the poor support for it in the esp libraries right now.

Anyway, for some reason I thought you are already running the snapshots until David piped in. Had I realized that I would have suggested it because it does no good to troubleshoot a problem on anything but the snapshot. You never know what has already been fixed.

And a I should have done a search of the issues myself, but it’s always worth a search because they’re might already be an issue open.

2 Likes

I’m upgrading to a snapshot today. You’re right, it doesn’t make sense to be running an old version at this point.

There are two other controllers that are homie3 publishers, Athom’s Homey and Hubitat Elevation, I was passingly involved in the first and am the author of the second for HE. These both also support the Home Assistant MQTT discovery protocol.

In both cases we gave up testing compatibility and perusing reported issues with OH usage because there was nothing solid to test against. I’m aware OH2.4 had major issues, and 2.5M1 still had β€˜some’ issues and have been … patiently … awaiting 2.5M2. Hopefully the wait may soon be over but both those controller implementations are pretty much complete now and the developers moved on.

I would be interested to see just what the β€˜required’ payloads are in homie3 that OH uses. It’s also a shame that OH doesn’t support homie3 for exposing its own devices.

Overall I’m not a huge fan of homie3 (or homie4) as I feel there’s a lot to still address and it’s quite involved to implement. There is a need for such a definition though if any mass adoption of MQTT is to happen and HA’s implementation is very different and less flexible.

BTW Both Athom Homey and Hubitat Elevation implement incoming homie discovery as well so should work with your project Leif - when I get a moment I’ll see if I can try it. Homey and Elevation certainly talk nicely with each other using homie.

3 Likes

David, I am now running 2.5.0 S1627 and I am seeing the exact same issue.
A non-existent Homie thing kills the subscription for a generic thing.

Here’s a karaf bundle:list dump.

START LEVEL 100 , List Threshold: 50
 ID β”‚ State  β”‚ Lvl β”‚ Version               β”‚ Name
────┼────────┼─────┼───────────────────────┼────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
 20 β”‚ Active β”‚  80 β”‚ 5.3.1.201602281253    β”‚ OSGi JAX-RS Connector
 21 β”‚ Active β”‚  80 β”‚ 2.8.2.v20180104-1110  β”‚ Gson: Google Json Library for Java
 22 β”‚ Active β”‚  80 β”‚ 18.0.0                β”‚ Guava: Google Core Libraries for Java
 23 β”‚ Active β”‚  80 β”‚ 21.0.0                β”‚ Guava: Google Core Libraries for Java
 24 β”‚ Active β”‚  80 β”‚ 3.0.0.v201312141243   β”‚ Google Guice (No AOP)
 28 β”‚ Active β”‚  80 β”‚ 3.5.5                 β”‚ JmDNS
 30 β”‚ Active β”‚  80 β”‚ 1.0.0                 β”‚ Units of Measurement API
 32 β”‚ Active β”‚  80 β”‚ 1.1.0.Final           β”‚ Bean Validation API
 34 β”‚ Active β”‚  80 β”‚ 2.0.1                 β”‚ javax.ws.rs-api
 35 β”‚ Active β”‚  80 β”‚ 2.9.2                 β”‚ Joda-Time
 36 β”‚ Active β”‚  80 β”‚ 0.5.8                 β”‚ Jollyday
 37 β”‚ Active β”‚  80 β”‚ 3.2.0.v201101311130   β”‚ ANTLR Runtime
 39 β”‚ Active β”‚  80 β”‚ 3.2.1                 β”‚ Commons Collections
 40 β”‚ Active β”‚  80 β”‚ 1.1                   β”‚ Commons Exec
 41 β”‚ Active β”‚  80 β”‚ 2.2.0                 β”‚ Commons IO
 42 β”‚ Active β”‚  80 β”‚ 2.6                   β”‚ Commons Lang
 51 β”‚ Active β”‚  80 β”‚ 4.2.6                 β”‚ Apache Karaf :: OSGi Services :: Event
 66 β”‚ Active β”‚  80 β”‚ 1.4.7.1               β”‚ Apache ServiceMix :: Bundles :: xstream
 68 β”‚ Active β”‚  80 β”‚ 4.12.0                β”‚ Apache XBean OSGI Bundle Utilities
 69 β”‚ Active β”‚  80 β”‚ 4.12.0                β”‚ Apache XBean :: Classpath Resource Finder
 70 β”‚ Active β”‚  80 β”‚ 2.12.0.v20160420-0247 β”‚ EMF Common
 71 β”‚ Active β”‚  80 β”‚ 2.12.0.v20160420-0247 β”‚ EMF Ecore
 72 β”‚ Active β”‚  80 β”‚ 2.11.0.v20160420-0247 β”‚ EMF Change Model
 73 β”‚ Active β”‚  80 β”‚ 2.12.0.v20160420-0247 β”‚ EMF XML/XMI Persistence
 74 β”‚ Active β”‚  80 β”‚ 3.9.0.v20170207-1454  β”‚ Common Eclipse Runtime
 79 β”‚ Active β”‚  80 β”‚ 9.4.11.v20180605      β”‚ Jetty :: Http Utility
 80 β”‚ Active β”‚  80 β”‚ 9.4.12.v20180830      β”‚ Jetty :: Http Utility
 87 β”‚ Active β”‚  80 β”‚ 9.4.12.v20180830      β”‚ Jetty :: Proxy
 99 β”‚ Active β”‚  80 β”‚ 9.4.11.v20180605      β”‚ Jetty :: Websocket :: Common
100 β”‚ Active β”‚  80 β”‚ 9.4.12.v20180830      β”‚ Jetty :: Websocket :: Common
107 β”‚ Active β”‚  80 β”‚ 0.6.0.v20181130-0903  β”‚ org.eclipse.lsp4j
108 β”‚ Active β”‚  80 β”‚ 0.6.0.v20181130-0903  β”‚ org.eclipse.lsp4j.jsonrpc
109 β”‚ Active β”‚  80 β”‚ 2.17.0.v20190304-0518 β”‚ Xtend Runtime Library
110 β”‚ Active β”‚  80 β”‚ 2.17.0.v20190304-0518 β”‚ Xtend Macro Interfaces
111 β”‚ Active β”‚  80 β”‚ 2.17.0.v20190304-0545 β”‚ Xtext
112 β”‚ Active β”‚  80 β”‚ 2.17.0.v20190304-0626 β”‚ Xtext Common Types
113 β”‚ Active β”‚  80 β”‚ 2.17.0.v20190304-0545 β”‚ Xtext IDE Core
114 β”‚ Active β”‚  80 β”‚ 2.17.0.v20190304-0545 β”‚ Xtext Utility
115 β”‚ Active β”‚  80 β”‚ 2.17.0.v20190304-0626 β”‚ Xbase Model
116 β”‚ Active β”‚  80 β”‚ 2.17.0.v20190304-0626 β”‚ Xbase Generic IDE Services
117 β”‚ Active β”‚  80 β”‚ 2.17.0.v20190304-0518 β”‚ Xbase Runtime Library
132 β”‚ Active β”‚  80 β”‚ 1.9.6                 β”‚ MIME streaming extension
134 β”‚ Active β”‚  80 β”‚ 7.1.0                 β”‚ org.objectweb.asm
135 β”‚ Active β”‚  80 β”‚ 7.1.0                 β”‚ org.objectweb.asm.commons
136 β”‚ Active β”‚  80 β”‚ 7.1.0                 β”‚ org.objectweb.asm.tree
137 β”‚ Active β”‚  80 β”‚ 2.5.0.201906270301    β”‚ openHAB Core :: Bundles :: Core
138 β”‚ Active β”‚  80 β”‚ 2.5.0.201906270307    β”‚ openHAB Core :: Bundles :: Audio
139 β”‚ Active β”‚  80 β”‚ 2.5.0.201906270317    β”‚ openHAB Core :: Bundles :: OAuth2Client
140 β”‚ Active β”‚  80 β”‚ 2.5.0.201906270315    β”‚ openHAB Core :: Bundles :: Binding XML
141 β”‚ Active β”‚  90 β”‚ 2.5.0.201906270312    β”‚ openHAB Core :: Bundles :: Boot
142 β”‚ Active β”‚  80 β”‚ 2.5.0.201906270302    β”‚ openHAB Core :: Bundles :: Configuration Core
143 β”‚ Active β”‚  80 β”‚ 2.5.0.201906270303    β”‚ openHAB Core :: Bundles :: Configuration Discovery
144 β”‚ Active β”‚  80 β”‚ 2.5.0.201906270322    β”‚ openHAB Core :: Bundles :: Configuration mDNS Discovery
145 β”‚ Active β”‚  80 β”‚ 2.5.0.201906270323    β”‚ openHAB Core :: Bundles :: Configuration Dispatcher
146 β”‚ Active β”‚  75 β”‚ 2.5.0.201906270314    β”‚ openHAB Core :: Bundles :: Configuration XML
147 β”‚ Active β”‚  80 β”‚ 2.5.0.201906270306    β”‚ openHAB Core :: Bundles :: Ephemeris
148 β”‚ Active β”‚  80 β”‚ 2.5.0.201906270315    β”‚ openHAB Core :: Bundles :: ID
149 β”‚ Active β”‚  80 β”‚ 2.5.0.201906270303    β”‚ openHAB Core :: Bundles :: Console
150 β”‚ Active β”‚  80 β”‚ 2.5.0.201906270318    β”‚ openHAB Core :: Bundles :: Console for OSGi runtime Karaf
151 β”‚ Active β”‚  80 β”‚ 2.5.0.201906270307    β”‚ openHAB Core :: Bundles :: HTTP Interface
153 β”‚ Active β”‚  80 β”‚ 2.5.0.201906270319    β”‚ openHAB Core :: Bundles :: Monitor
154 β”‚ Active β”‚  80 β”‚ 2.5.0.201906270304    β”‚ openHAB Core :: Bundles :: Network I/O
155 β”‚ Active β”‚  80 β”‚ 2.5.0.201906270315    β”‚ openHAB Core :: Bundles :: REST Interface
156 β”‚ Active β”‚  80 β”‚ 2.5.0.201906270319    β”‚ openHAB Core :: Bundles :: REST Interface :: Core
157 β”‚ Active β”‚  80 β”‚ 2.5.0.201906270320    β”‚ openHAB Core :: Bundles :: REST mDNS Announcer
158 β”‚ Active β”‚  80 β”‚ 2.5.0.201906270320    β”‚ openHAB Core :: Bundles :: REST JAX-RS Optimizations
159 β”‚ Active β”‚  80 β”‚ 2.5.0.201906270320    β”‚ openHAB Core :: Bundles :: Sitemap REST Interface
160 β”‚ Active β”‚  80 β”‚ 2.5.0.201906270320    β”‚ openHAB Core :: Bundles :: SSE Interface
161 β”‚ Active β”‚  80 β”‚ 2.5.0.201906270321    β”‚ openHAB Core :: Bundles :: Voice REST Interface
162 β”‚ Active β”‚  80 β”‚ 2.5.0.201906270317    β”‚ openHAB Core :: Bundles :: mDNS Service
163 β”‚ Active β”‚  80 β”‚ 2.5.0.201906270314    β”‚ openHAB Core :: Bundles :: Karaf Integration
164 β”‚ Active β”‚  80 β”‚ 2.5.0.201906270305    β”‚ openHAB Core :: Bundles :: Model Core
165 β”‚ Active β”‚  80 β”‚ 2.5.0.201906270313    β”‚ openHAB Core :: Bundles :: Model Items
166 β”‚ Active β”‚  80 β”‚ 2.5.0.201906270325    β”‚ openHAB Core :: Bundles :: Model Item IDE
167 β”‚ Active β”‚  80 β”‚ 2.5.0.201906270325    β”‚ openHAB Core :: Bundles :: Model Items Runtime
168 β”‚ Active β”‚  80 β”‚ 2.5.0.201906270329    β”‚ openHAB Core :: Bundles :: Language Server
169 β”‚ Active β”‚  80 β”‚ 2.5.0.201906270306    β”‚ openHAB Core :: Bundles :: Model Persistence
170 β”‚ Active β”‚  80 β”‚ 2.5.0.201906270326    β”‚ openHAB Core :: Bundles :: Model Persistence IDE
171 β”‚ Active β”‚  80 β”‚ 2.5.0.201906270329    β”‚ openHAB Core :: Bundles :: Model Persistence Runtime
172 β”‚ Active β”‚  80 β”‚ 2.5.0.201906270310    β”‚ openHAB Core :: Bundles :: Model Rules
173 β”‚ Active β”‚  80 β”‚ 2.5.0.201906270326    β”‚ openHAB Core :: Bundles :: Model Rule IDE
174 β”‚ Active β”‚  80 β”‚ 2.5.0.201906270310    β”‚ openHAB Core :: Bundles :: Model Rules Runtime
175 β”‚ Active β”‚  80 β”‚ 2.5.0.201906270308    β”‚ openHAB Core :: Bundles :: Model Script
176 β”‚ Active β”‚  80 β”‚ 2.5.0.201906270327    β”‚ openHAB Core :: Bundles :: Model Script IDE
177 β”‚ Active β”‚  80 β”‚ 2.5.0.201906270330    β”‚ openHAB Core :: Bundles :: Model Script Runtime
178 β”‚ Active β”‚  80 β”‚ 2.5.0.201906270312    β”‚ openHAB Core :: Bundles :: Model Sitemap
179 β”‚ Active β”‚  80 β”‚ 2.5.0.201906270327    β”‚ openHAB Core :: Bundles :: Model Sitemap IDE
180 β”‚ Active β”‚  80 β”‚ 2.5.0.201906270330    β”‚ openHAB Core :: Bundles :: Model Sitemap Runtime
181 β”‚ Active β”‚  80 β”‚ 2.5.0.201906270328    β”‚ openHAB Core :: Bundles :: Model Thing
182 β”‚ Active β”‚  80 β”‚ 2.5.0.201906270329    β”‚ openHAB Core :: Bundles :: Model Thing IDE
183 β”‚ Active β”‚  80 β”‚ 2.5.0.201906270330    β”‚ openHAB Core :: Bundles :: Model Thing Runtime
184 β”‚ Active β”‚  80 β”‚ 2.5.0.201906270305    β”‚ openHAB Core :: Bundles :: Persistence
185 β”‚ Active β”‚  80 β”‚ 2.5.0.201906270304    β”‚ openHAB Core :: Bundles :: Scheduler Service
186 β”‚ Active β”‚  80 β”‚ 2.5.0.201906270316    β”‚ openHAB Core :: Bundles :: Semantics
187 β”‚ Active β”‚  80 β”‚ 2.5.0.201906270330    β”‚ openHAB Core :: Bundles :: JSON Storage
188 β”‚ Active β”‚  80 β”‚ 2.5.0.201906270303    β”‚ openHAB Core :: Bundles :: Thing
189 β”‚ Active β”‚  75 β”‚ 2.5.0.201906270316    β”‚ openHAB Core :: Bundles :: Thing XML
190 β”‚ Active β”‚  80 β”‚ 2.5.0.201906270307    β”‚ openHAB Core :: Bundles :: Transformation Service
191 β”‚ Active β”‚  80 β”‚ 2.5.0.201906270313    β”‚ openHAB Core :: Bundles :: UI
192 β”‚ Active β”‚  80 β”‚ 2.5.0.201906270330    β”‚ openHAB Core :: Bundles :: UI Icon Support
193 β”‚ Active β”‚  80 β”‚ 2.5.0.201906270307    β”‚ openHAB Core :: Bundles :: Voice
194 β”‚ Active β”‚  80 β”‚ 2.5.0.201906161107    β”‚ openHAB UI :: Bundles :: Dashboard UI
203 β”‚ Active β”‚  80 β”‚ 1.4.0                 β”‚ ThreeTen-Extra
204 β”‚ Active β”‚  80 β”‚ 1.0.2                 β”‚ Units of Measurement Common Library
205 β”‚ Active β”‚  80 β”‚ 1.0.8                 β”‚ Units of Measurement Implementation for Java SE
206 β”‚ Active β”‚  80 β”‚ 2.5.0.201906161432    β”‚ openHAB Add-ons :: Bundles :: ZWave Binding
207 β”‚ Active β”‚  80 β”‚ 1.9.2                 β”‚ Jackson JSON processor
208 β”‚ Active β”‚  80 β”‚ 1.9.2                 β”‚ Data mapper for Jackson JSON processor
209 β”‚ Active β”‚  80 β”‚ 1.6.0                 β”‚ Commons Codec
210 β”‚ Active β”‚  80 β”‚ 4.2.3                 β”‚ Apache HttpClient OSGi bundle
211 β”‚ Active β”‚  80 β”‚ 4.2.3                 β”‚ Apache HttpCore OSGi bundle
212 β”‚ Active β”‚  80 β”‚ 3.1.0.7               β”‚ Apache ServiceMix :: Bundles :: commons-httpclient
213 β”‚ Active β”‚  80 β”‚ 2.5.0.201906270314    β”‚ openHAB Core :: Bundles :: 1.x Compatibility Layer
216 β”‚ Active β”‚  80 β”‚ 2.1.0                 β”‚ json-path
217 β”‚ Active β”‚  80 β”‚ 3.15.0.OH2            β”‚ nrjavaserial
218 β”‚ Active β”‚  80 β”‚ 3.12.1                β”‚ OkHttp
219 β”‚ Active β”‚  80 β”‚ 1.15.0                β”‚ Okio
220 β”‚ Active β”‚  80 β”‚ 1.1.6                 β”‚ com.zsmartsystems.zigbee
221 β”‚ Active β”‚  80 β”‚ 1.1.6                 β”‚ com.zsmartsystems.zigbee.dongle.cc2531
222 β”‚ Active β”‚  80 β”‚ 1.1.6                 β”‚ com.zsmartsystems.zigbee.dongle.ember
223 β”‚ Active β”‚  80 β”‚ 1.1.6                 β”‚ com.zsmartsystems.zigbee.dongle.telegesis
224 β”‚ Active β”‚  80 β”‚ 1.1.6                 β”‚ com.zsmartsystems.zigbee.dongle.xbee
225 β”‚ Active β”‚  80 β”‚ 1.0.0                 β”‚ Engine.IO Client
226 β”‚ Active β”‚  80 β”‚ 1.0.0                 β”‚ Socket.IO Client
227 β”‚ Active β”‚  80 β”‚ 1.0.1                 β”‚ JLayer
228 β”‚ Active β”‚  80 β”‚ 20180813.0.0          β”‚ JSON in Java
229 β”‚ Active β”‚  80 β”‚ 2.2                   β”‚ json-smart
230 β”‚ Active β”‚  80 β”‚ 1.10.0                β”‚ Apache Commons Codec
231 β”‚ Active β”‚  80 β”‚ 3.3.0                 β”‚ Commons Net
232 β”‚ Active β”‚  80 β”‚ 1.2.1                 β”‚ Paho MQTT Client
233 β”‚ Active β”‚  80 β”‚ 2.5.0.201906282038    β”‚ openHAB Add-ons :: Bundles :: Astro Binding
234 β”‚ Active β”‚  80 β”‚ 1.14.0.201906300308   β”‚ openHAB Expire Binding
235 β”‚ Active β”‚  80 β”‚ 2.5.0.201906282051    β”‚ openHAB Add-ons :: Bundles :: MQTT Broker Binding
236 β”‚ Active β”‚  81 β”‚ 2.5.0.201906282051    β”‚ openHAB Add-ons :: Bundles :: MQTT Things and Channels
237 β”‚ Active β”‚  82 β”‚ 2.5.0.201906282051    β”‚ openHAB Add-ons :: Bundles :: MQTT HomeAssistant Convention
238 β”‚ Active β”‚  82 β”‚ 2.5.0.201906282051    β”‚ openHAB Add-ons :: Bundles :: MQTT Homie Convention
239 β”‚ Active β”‚  80 β”‚ 2.5.0.201906282052    β”‚ openHAB Add-ons :: Bundles :: NTP Binding
240 β”‚ Active β”‚  80 β”‚ 2.5.0.201906282107    β”‚ openHAB Add-ons :: Bundles :: ZigBee Binding
241 β”‚ Active β”‚  80 β”‚ 2.5.0.201906282107    β”‚ openHAB Add-ons :: Bundles :: ZigBee CC2531 Bridge
242 β”‚ Active β”‚  80 β”‚ 2.5.0.201906282107    β”‚ openHAB Add-ons :: Bundles :: ZigBee Ember Bridge
243 β”‚ Active β”‚  80 β”‚ 2.5.0.201906282107    β”‚ openHAB Add-ons :: Bundles :: ZigBee Telegesis Bridge
244 β”‚ Active β”‚  80 β”‚ 2.5.0.201906282107    β”‚ openHAB Add-ons :: Bundles :: ZigBee XBee Bridge
245 β”‚ Active β”‚  80 β”‚ 2.5.0.201906270304    β”‚ openHAB Core :: Bundles :: Automation
246 β”‚ Active β”‚  80 β”‚ 2.5.0.201906270324    β”‚ openHAB Core :: Bundles :: Automation Media Modules
247 β”‚ Active β”‚  80 β”‚ 2.5.0.201906270324    β”‚ openHAB Core :: Bundles :: Automation Script Modules
248 β”‚ Active β”‚  80 β”‚ 2.5.0.201906270324    β”‚ openHAB Core :: Bundles :: Automation Script RuleSupport
249 β”‚ Active β”‚  80 β”‚ 2.5.0.201906270325    β”‚ openHAB Core :: Bundles :: Automation REST API
250 β”‚ Active β”‚  80 β”‚ 2.5.0.201906270323    β”‚ openHAB Core :: Bundles :: Configuration USB-Serial Discovery
251 β”‚ Active β”‚  80 β”‚ 2.5.0.201906270323    β”‚ openHAB Core :: Bundles :: Configuration USB-Serial Discovery for Linux using sysfs scanning
252 β”‚ Active β”‚  80 β”‚ 2.5.0.201906270324    β”‚ openHAB Core :: Bundles :: Configuration Serial
253 β”‚ Active β”‚  80 β”‚ 2.5.0.201906270321    β”‚ openHAB Core :: Bundles :: MQTT Transport
254 β”‚ Active β”‚  80 β”‚ 2.5.0.201906270317    β”‚ openHAB Core :: Bundles :: Serial Transport
255 β”‚ Active β”‚  80 β”‚ 2.5.0.201906270321    β”‚ openHAB Core :: Bundles :: Serial Transport for RXTX
256 β”‚ Active β”‚  80 β”‚ 2.5.0.201906270322    β”‚ openHAB Core :: Bundles :: Serial Transport for RFC2217
257 β”‚ Active β”‚  80 β”‚ 2.5.0.201906282102    β”‚ openHAB Add-ons :: Bundles :: IO :: Java Sound Support
258 β”‚ Active β”‚  80 β”‚ 2.5.0.201906282102    β”‚ openHAB Add-ons :: Bundles :: IO :: openHAB Cloud Connector
259 β”‚ Active β”‚  80 β”‚ 2.5.0.201906282103    β”‚ openHAB Add-ons :: Bundles :: IO :: Web Audio Support
260 β”‚ Active β”‚  80 β”‚ 1.14.0.201906300308   β”‚ openHAB MapDB Persistence Bundle
261 β”‚ Active β”‚  75 β”‚ 2.5.0.201906282103    β”‚ openHAB Add-ons :: Bundles :: Transformation Service :: Exec
262 β”‚ Active β”‚  75 β”‚ 2.5.0.201906282103    β”‚ openHAB Add-ons :: Bundles :: Transformation Service :: JavaScript
263 β”‚ Active β”‚  75 β”‚ 2.5.0.201906282104    β”‚ openHAB Add-ons :: Bundles :: Transformation Service :: JSonPath
264 β”‚ Active β”‚  75 β”‚ 2.5.0.201906282044    β”‚ openHAB Add-ons :: Bundles :: Transformation Service :: Map
265 β”‚ Active β”‚  75 β”‚ 2.5.0.201906282104    β”‚ openHAB Add-ons :: Bundles :: Transformation Service :: RegEx
266 β”‚ Active β”‚  75 β”‚ 2.5.0.201906282104    β”‚ openHAB Add-ons :: Bundles :: Transformation Service :: Scale
267 β”‚ Active β”‚  75 β”‚ 2.5.0.201906282104    β”‚ openHAB Add-ons :: Bundles :: Transformation Service :: XPath
268 β”‚ Active β”‚  75 β”‚ 2.5.0.201906282104    β”‚ openHAB Add-ons :: Bundles :: Transformation Service :: Xslt
269 β”‚ Active β”‚  80 β”‚ 2.5.0.201906161112    β”‚ openHAB UI :: Bundles :: Basic UI
270 β”‚ Active β”‚  80 β”‚ 2.5.0.201906161112    β”‚ openHAB UI :: Bundles :: Classic UI
271 β”‚ Active β”‚  80 β”‚ 2.5.0.201906161124    β”‚ openHAB UI :: Bundles :: Icon Set :: Classic
272 β”‚ Active β”‚  80 β”‚ 2.5.0.201906161123    β”‚ openHAB UI :: Bundles :: Paper UI
273 β”‚ Active β”‚  80 β”‚ 2.5.0.201906161115    β”‚ openHAB UI :: Bundles :: HABmin UI
274 β”‚ Active β”‚  80 β”‚ 2.5.0.201906161118    β”‚ openHAB UI :: Bundles :: HABPanel UI
275 β”‚ Active β”‚  80 β”‚ 1.1.1.201605111122    β”‚ Swagger Provider
276 β”‚ Active β”‚  80 β”‚ 2.4.5                 β”‚ Jackson-annotations
277 β”‚ Active β”‚  80 β”‚ 2.4.5                 β”‚ Jackson-core
278 β”‚ Active β”‚  80 β”‚ 2.4.5                 β”‚ jackson-databind
279 β”‚ Active β”‚  80 β”‚ 2.4.5                 β”‚ Jackson-dataformat-YAML
280 β”‚ Active β”‚  80 β”‚ 2.0.0                 β”‚ FindbugsAnnotations
281 β”‚ Active β”‚  80 β”‚ 1.5.8                 β”‚ swagger-annotations
282 β”‚ Active β”‚  80 β”‚ 1.5.8                 β”‚ swagger-core
283 β”‚ Active β”‚  80 β”‚ 1.5.8                 β”‚ swagger-jaxrs
284 β”‚ Active β”‚  80 β”‚ 1.5.8                 β”‚ swagger-models
285 β”‚ Active β”‚  80 β”‚ 3.19.0.GA             β”‚ Javassist
286 β”‚ Active β”‚  80 β”‚ 3.2.1                 β”‚ Apache Commons Lang
287 β”‚ Active β”‚  80 β”‚ 2.5.0.201906161123    β”‚ openHAB UI :: Bundles :: openHAB REST API Documentation
288 β”‚ Active β”‚  80 β”‚ 0.9.10.v20160429-1435 β”‚ reflections (wrap)
289 β”‚ Active β”‚  80 β”‚ 1.5.8.v20160511-1038  β”‚ swagger-jersey2-jaxrs (wrap)


This morning I started feeling like I was chasing my tail. I was having no luck getting anything to work. Finally I decided I needed an openHAB LAB setup so that I don’t have to experiment on my production system now that I am relying on it. That has taken all day, but I finally now have Homie items updating Basic UI items! Slow progress, but progress nonetheless.

1 Like

Hm. Ok. That needs investigation. In theory it’s possible. They all share the same mqtt connection object if the same mqtt bridge thing is used.

1 Like

Hey, an offline Homie Device will also kill subscription for other homie devices on the same MQTT broker connection. I don’t know how anyone missed this!

To reproduce:
Use two separate Homie Devices added as things.
Make sure openHAB responds to messages from both.

Then change the device ID of homie device A, so that it shows as offline.
BOTH are now broken, not just the one you changed.
Change the device ID of homie device A back so that it shows as online.
Note how device A now works but device B is still broken until you disable and re-enable it.

Can you clarify where you change that, and who says its offline? I imagine this is about Things.

1 Like

Can do!

Just to clarify, my point is not:

"It's a good idea to change the device ID so that a device stops working"

That is just what I’m doing to reproduce the bug. My point is:

"An MQTT thing should not be able to kill the subscription of another MQTT thing"

:wink:

1 Like

Oddly enough I’ve been wrestling with a completely different binding, with the learning that if you duplicate thing IDs in flight it breaks things in non-obvious ways.
Just to be safe … what is thing ID of the bystander casualty? Is it related/same as β€œHomie device ID”? PaperUI hides this stuff mostly, REST API might be clearer.

1 Like

The bystander casualty (what an excellent description!) is:

mqtt:homie300:homie:livingroommcu

The Homie device ID is

LivingRoomMCU

Previously, the homie device ID was:

livingroommcu

I changed it a few hours ago because I realized it would look better in the MQTT tree.

So they were the same before, but I would say they are not the same now, since MQTT is case sensitive. In any case they are both killed.

Also please note that previously (while I was still developing my homie library), my other devices were generic MQTT things, and they still got slaughtered. I only had one homie device at the time – the one I was developing. So, with the available data, I thought Homie devices killed generic devices, which made is kind of understandable that one might not notice the bug.

But, now that my homie library is usable, I turned my existing generic devices into homie devices… and with that I now notice that Homie things kill other MQTT subscriptions indiscriminately, whether from a homie device or a generic device. That tells me it’s probably at the broker level. I wouldn’t be surprised if it killed HASS thing subscriptions too.

With my limited understanding, the only way for an MQTT Thing to be marked as offline is if the Broker Thing get’s marked as offline. With Generic Things we create a separate Broker Thing. Do you need to create a Broker Thing for Homie too or is it all embedded in the one Homie Thing? Maybe it’s there but hidden?

hmm, not so sure about OH though.
Your screenshot shows PaperUI identifying the Thing as
mqtt:homie300:homie:livingroommcu
I’m guessing that is auto derived from the Homie supplied info LivingRoomMCU?

I mooched at the Homie spec and it’s a bit unclear whether uppercase is allowed in β€œdevice ID”

Actually it wasn’t. The binding didn’t derive anything – the default thing ID is a actually a random 32-bit hex string (such as 8aa21a72). That’s one of the many things that could be a lot more user friendly, because:

  • The thing ID is important – it’s going to be used as part of every channel identifier
  • You’re going to be typing it in every script or rule that uses data from a homie device
  • It can’t be changed. If you make a mistake you have to delete the thing and start over!

You know, now that you mention it, I guess the homie spec does not specifically allow upper case characters. It doesn’t prohibit them but it is implied that only what is specifically listed is allowed… dang it.

It’s working as well with upper case thing id’s as it did with lower case (and it’s certainly easier to read), but I really don’t feel like taking the chance that I’d have to change all the host names if this is ever enforced in a future version, so I guess I’ll go write a CamelCase to hyphen routine…

Why it doesn’t is a mystery - stupidly overly restrictive I feel - I just lowercase the lot.

1 Like

To add to this and to help @David_Graeff investigate.

I am using mqtt things with external mosquitto server, not using homie convention. All configuration is done using manual config files. Whenever I update the things file that is holding all mqtt things the server connection reconnects and all of mqtt items stop functioning. I am aware of this issue and just restart openhab.
I thing it doesn’t re-subscribe to all the topics after restart. Not sure if it matters but all of my mqtt things are in single config file.
This is reproduced 100% of the time. I think sometime ago in early ages of mqtt2 binding it was working correctly but maybe I just did not notice it. I am using snapshot builds.

Because this is a thread about Homie, I suggest you open a separate thread to work with this unrelated problem to the original topic.

But if you are running anything before the snapshot versions of the binding, there are known bugs like this that have been fixed. The first step will be for you to verify that you see the same errors in the latest snapshots.

I am always running snapshot builds since I’ve started using Openhab many years ago. Last updated about a week ago.
My post was not meant as a separate bug report or a call for help, just some additional info for David to investigate. And reading this topic and its title I am not 100% sure this is about Homie, even topic starter misspelled it :slight_smile: