MQTT items unreliable

I named it “home” right as I was starting out with MQTT… a few days before I learned about “homie”. That one isn’t following the homie convention in any way… surely they can’t be getting mixed up? i mean, MQTT is even case sensitive :slight_smile: Also, even if I wanted to subscribe to “homie” in a rule, shouldn’t I be able to? They shouldn’t trample each other.

homielib is up!

First time I ever make an actual redistributable arduino library, as well as release code publically, go easy on it please :slight_smile:

I don’t use the arduino environment myself (i outgrew that in about two seconds), I run sloeber. I tried adding the library to my Arduino environment and wasn’t successful (it accepted it but nothing was added to the menu). If someone with more experience could take a look, that’d be great.

But, the important part:
This is a functioning Homie 3.0.1 library for ESP8266, and with it, it’s easy to demonstrate the problems with openHAB.

Or, so I thought. Wouldn’t you know it, now that I’m testing the final version, I’m not seeing the same error as before (OFFLINE - COMMUNICATION_ERROR Did not receive all required topics). Maybe that’s because I turned off the trace logging and it’s keeping up better now.

I AM however seeing the following every time the ESP publishes an mqtt update:

2019-07-01 18:47:07.287 [WARN ] [.core.thing.binding.BaseThingHandler] - Handler HomieThingHandler of thing mqtt:homie300:506c59a4 tried updating channel nodeid1#hum although the handler was already disposed.

2019-07-01 18:47:09.289 [WARN ] [.core.thing.binding.BaseThingHandler] - Handler HomieThingHandler of thing mqtt:homie300:506c59a4 tried updating channel nodeid1#precip although the handler was already disposed.

2019-07-01 18:47:11.291 [WARN ] [.core.thing.binding.BaseThingHandler] - Handler HomieThingHandler of thing mqtt:homie300:506c59a4 tried updating channel nodeid1#wind although the handler was already disposed.

2019-07-01 18:47:15.292 [WARN ] [.core.thing.binding.BaseThingHandler] - Handler HomieThingHandler of thing mqtt:homie300:506c59a4 tried updating channel nodeid1#hum although the handler was already disposed.

2019-07-01 18:47:17.290 [WARN ] [.core.thing.binding.BaseThingHandler] - Handler HomieThingHandler of thing mqtt:homie300:506c59a4 tried updating channel nodeid1#precip although the handler was already disposed.

Also, obviously the interference with generic MQTT items is still an issue. :slight_smile:

So, if people here with ESP and MQTT experience could help by running my homielib example and hopefully reproduce the problems I’m seeing, I would most appreciate it. Also, if you find the homielib lib useful, have at it, of course.

1 Like

Are all of your client IDs unique? If not, when a client with the same ID as a client already connected to the broker subscribes, the broker kicks off the old client in favor of the new one. All your clients must have a unique client ID. Do not confuse the client ID with the user ID. You can reuse the same user ID everywhere.

I can’t tell if this is what you are experiencing of not but it sounds like a possibility.

What QOS are you using? If it’s zero I could see that if they come in too fast the broker might just drop them if it can’t process them fast enough. Or it could be the case that the AsyncMqttClient doesn’t have the ability to queue up the messages so if you send a new message before the last one gets published to the broker the old one gets overwritten.

It appears like it, at least in terms of openHAB and Homie.

Don’t confuse the standard Homie with implementations of the standard. The standard is actually pretty mature. The implementations of it are not as mature.

Please file an issue on the openhab2-addons as well so it can get fixed in openHAB too.

I know a lot of people are using Homie with openHAB though and this is the first report of a problem like this so it isn’t clear to me what’s unique about your use case yet. Clearly there is something going on.

It can’t but the person might. I think rossko57 is just suggesting double checking you haven’t accidentally used “home” where you should have used “homie” and vise versa.

1 Like

That’s a very good point! I actually don’t know where to look up the client ID for MQTT things after they were created. I looked around for it for a while now, in both paperui and habmin, i don’t think the option is there other than when you first create the item… it doesn’t even show it anywhere afterwards, let alone edit.
But, I stuck with the default 32-bit hex value (never edited it) and i deleted and recreated the homie mqtt things several times. They would have gotten a new random client ID every time.
Also, since the Homie MQTT items also kill the subscription on the Publish Trigger, the one that’s directly on the broker thing… I don’t think that’s it.

I tried both 1 and 2. Indeed 0 could have dropped messages enroute. I think it’s probably AsyncMqttClient has a limited buffer. It is an embedded system after all. I spent a few minutes looking for a way to control the buffer size (and came up empty handed) before I rewrote my initial publish function to work in a piecemeal manner. No delay() anywhere, obviously. :slight_smile:

That’s what I meant, I think. :slight_smile: I’ll go with that.

Done! #5786 and #5787.

Ah! Now I get it.

I don’t use Homie yet so I only have Generic Things right now. But that shouldn’t matter because the client ID I believe is set on the Broker Thing. It’s there under “Show More” for the Broker Thing config in PaperUI. The broker represents the connection to the MQTT Broker and the client ID is defined on a connection by connection basis so I wouldn’t expect it be possible to supply a client ID on a Generic Thing or Homie Thing.

The question is does the Homie Things use a different Broker Thing?

The client ID that gets generated automatically when you don’t supply one is generated by the Paho library.

Don’t confuse the client ID on the Broker Thing with the Channel ID.

When I started making my first Homie device just as a test, by manually publishing the right values, and saw it automatically pop up in the inbox, I knew it was the right way to go for me.

Ah!

They do now because that was the only workaround I found for the bug. Normally they would be using the same broker thing, of course.

I ran across the bug when they were using the same broker thing (it’s the same mosquitto broker so of course i did not create a new broker thing willy nilly). So, there was only one client ID. Obviously one should be able to have more than one subscription (to different things, mind you) on the same broker thing? :slight_smile:

Technically I was confusing the “Thing ID” with the client ID on the broker thing :wink:

The MQTT Homie part is broken in openHAB 2.5m1. It has several subscribe/resubscribe issues. Fixes are merged since a few months already, but we didn’t had a release since then.

1 Like

Yes,

It’s been too long. I remember there were Homie problems but I thought they got fixed before M1.

@leif, definitely upgrade. I’ve been running the snapshots for a week or so and I find them to be stable again. It should be safe to use. Though I can’t speak for all bindings, just the ones I use.

1 Like

HA! That explains it. That’s kind of what I was afraid of when I upgraded from 2.4. Two steps forward, one step back. Fair enough.

I’m going to stop by clonezilla on the way, though. :slight_smile:

But hey, I’ve wasted more than a day troubleshooting this… If this was already known, that’s not great. Perhaps there should be a page of known issues in a prominent place?

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