zivillian / ism7mqtt

GNU General Public License v3.0
56 stars 10 forks source link

Writing to ISM7 fails #22

Closed omo2002 closed 1 year ago

omo2002 commented 2 years ago

Hi, I am struggeling writing to the ISM7 device. My MQTT topic looks like this: "Wolf/192.168.0.11/DHK_BM-2_0x35", which provides a "Uhrzeit" parameter

Now I want to set the "Uhrzeit" value. When I write to "Wolf/192.168.0.11/DHK_BM-2_0x35/set/Uhrzeit" the value 10:00:00 nothing happens. What do I do wrong ?

zivillian commented 2 years ago

To answer your question: you do nothing wrong, it's just currently unsupported.

If I'm correct your ism7mqtt dies with a NotImplementedException. I'm not sure if it's possible to set the time, but if you are able to set it with the Smartset application, it may be possible to implement this.

infocfc commented 1 year ago

I'm also currently looking at this fantastic project (finally someone realized my dream to take control over wolf heating locally instead of using the cloud). My final goal is to connect this to Home Assistant. Right now, I'm fighting the basics though. I'm also trying to actually write settings back to my CBG-2/20 first, using MQTT Explorer connecting to my Mosquitto MQTT Server running on Home Assistant, but I'm not succesful. I'm a bit confused by above statement, so is writing in general possible, or not yet)?

zivillian commented 1 year ago

writing is supported, but I've not (yet) implemented all converters - e.g. the DateTimeConverter. Please be aware, that not all Properties are writeable.

infocfc commented 1 year ago

Ok, thanks. Can you tell me a value that should certainly be writeable? Personally, I'm for starters most interested in the "Warmwassersolltemperatur_eingestellt_35014", however I see that I oddly get two of those, namely also Warmwassersolltemperatur_eingestellt_35009", so that may not be a good starting point. FWIW, I'm currently starting it like this:

ism7mqtt -m=192.168.2.180 --mqttuser=XXXX --mqttpass=XXXX -i=192.168.2.156 -p=mypassword -s --retain -d

That shows me all I want in MQTT Explorer, but so far I've not been succesful in writing anything back. I may be doing it wrong though...

infocfc commented 1 year ago

OK, I've been successful writing Programmwahl_35012, aka setting water to standby or auto. So it seems that "Warmwassersolltemperatur_eingestellt_35014" doesn't work (yet? ;)). I so really want to egt this to work with Home Assistant to make the really dumb original wolf software smart....

zivillian commented 1 year ago

Have you tried writing to Warmwassersolltemperatur_eingestellt_35009? Since you seem to have multiple duplicates - you can clean them up, by just removing the ids from your config.

If you are able to set them via the Smartset application, you can take a look at the source or network tab to figure out the ID (or bundle id).

infocfc commented 1 year ago

I actually tried both, as I don't know which is which, nor do I know why I even have two. But yes, I do have multiple duplicates. Any Idea how I can get rid of those other than try and error? They all do supply sane values when read, e.g both, Warmwassersolltemperatur_eingestellt_35014 and Warmwassersolltemperatur_eingestellt_35009 when read return the correct current value.

infocfc commented 1 year ago

Ok, I checked in Smartset in the network tab, and this is the payload when I change the Warmwassertemperatur to 54:

{"WriteParameterValues":[{"ValueId":26642,"Value":54,"ParameterName":"Warmwassersolltemperatur eingestellt"}],"SystemId":1,"GatewayId":1,"BundleId":31500,"SessionId":32}

Not sure what to make of this though. Where does the "_35009" or "_35014" come from?

zivillian commented 1 year ago

26642 may be the Id value from the table ExchangeParameterBundleBO inside the smartsetpc.sdf database. Can you take look, or send me your database?

35009 and 35014 are the parameter template IDs. They were configured in your smartset database and converted into the json config. Since they both have the same name, ism7mqtt appends the ID to make them unique. The parameter templates are defined in the ParameterTemplates.xml

infocfc commented 1 year ago

Sent you the database via email. Or rather not, your github address doesn't seem to exist. How can I get it to you?

zivillian commented 1 year ago

My guess was right - 26642 is the database id: grafik So the parameter sent to the ism is 35009.

zivillian commented 1 year ago

Can you run ism7mqtt with debug logging (-d) and try to set the value via mqtt?

infocfc commented 1 year ago

Absolutely nothing happens. At least not in the log. Tried both, RAW and JSON. So I checked with wireshark where I run MQTT Explorer, and see this: image

192.168.2.180 is my Home Assistant running Mosquitto.

I'll run wireshark on the machine running ism7mqtt next and try again.

infocfc commented 1 year ago

Ok, so the issue seems to be with the mqtt server. It never makes it to the machine running ism7mqtt. The only thing I see is a mqtt ping which gets answered, but no publish. But why does it work with a different topic?

zivillian commented 1 year ago

That sounds strange - ism7mqtt is subscribing to the wildcard topics Wolf/{ip}/+/set/+ and Wolf/{ip}/+/set - so it should get the message from the broker.

infocfc commented 1 year ago

Maybe it has something to do with the parameters I use for ism7mqtt? But it really is strange that Programmwahl works, Warmwassersolltemperatur eingestellt doesn't. Here's the debug output when I set Programmwahl:

<
> <?xml version="1.0" encoding="utf-16"?><tbreq xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" bn="7" gw="1" ae="true" ty="write"><iwr se="" ba="0x30" in="10101" dl="0x00" dh="0x00" /></tbreq>
< ?<?xml version="1.0" encoding="utf-8"?><tbres bn="7" gw="1" st="OK" ts="2022-09-28T23:18:14" emsg=""><iac se="0" ba="0x30" in="10101" dl="0x0" dh="0x0" st="OK"/></tbres>
publishing mqtt with topic 'Wolf/192.168.2.156/WWSystem_BM-2_0x35' '{"Programmwahl_35012":0,"Programmwahl_35012_Text":"Standby","Programmwahl_35015":0}'
publishing mqtt with topic 'Wolf/192.168.2.156/WWSystem_BM-2_0x35/Programmwahl_35012' '0'
publishing mqtt with topic 'Wolf/192.168.2.156/WWSystem_BM-2_0x35/Programmwahl_35012_Text' '"Standby"'
publishing mqtt with topic 'Wolf/192.168.2.156/WWSystem_BM-2_0x35/Programmwahl_35015' '0'

And when I set Warmwassersolltemperatur, nothing happens on the ism7mqtt side. Guess I have to dig in Mosquitto and see what's going on there, and why it doesn't send the latter on.

zivillian commented 1 year ago

I'm missing the XML debug output from your log. Are you sure, that this is the complete output?

Edit: after formatting your comment I see the missing output

zivillian commented 1 year ago

It should look like this:

> <?xml version="1.0" encoding="utf-16"?><tbreq xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" bn="16" gw="1" ae="true" ty="write"><iwr se="" ba="0x30" in="10117" dl="0x01" dh="0x00" /></tbreq>
< <EF><BB><BF><?xml version="1.0" encoding="utf-8"?><tbres bn="16" gw="" st="OK" ts="2022-09-29T19:49:09" emsg=""><iac se="0" ba="0x30" in="10117" dl="0x1" dh="0x0" st="OK"/></tbres>
publishing mqtt with topic 'Wolf/192.168.23.114/BM-2_0x35' '{"1x Warmwasser":1,"1x Warmwasser_Text":"Ein"}'
> <?xml version="1.0" encoding="utf-16"?><tbreq xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" bn="17" gw="1" ae="true" ty="write"><iwr se="" ba="0x30" in="10117" dl="0x00" dh="0x00" /></tbreq>
< <EF><BB><BF><?xml version="1.0" encoding="utf-8"?><tbres bn="17" gw="" st="OK" ts="2022-09-29T19:49:21" emsg=""><iac se="0" ba="0x30" in="10117" dl="0x0" dh="0x0" st="OK"/></tbres>
publishing mqtt with topic 'Wolf/192.168.23.114/BM-2_0x35' '{"1x Warmwasser":0,"1x Warmwasser_Text":"Aus"}'
zivillian commented 1 year ago

After looking at my output I've updated the code to also log received mqtt messages - can you try the binaries from the latest build?

zivillian commented 1 year ago

With the latest version it should look like this:

received mqtt with topic 'Wolf/192.168.23.114/BM-2_0x35/set' '{"1x Warmwasser":1}'
> <?xml version="1.0" encoding="utf-16"?><tbreq xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" bn="9" gw="1" ae="true" ty="write"><iwr se="" ba="0x30" in="10117" dl="0x01" dh="0x00" /></tbreq>
< <EF><BB><BF><?xml version="1.0" encoding="utf-8"?><tbres bn="9" gw="" st="OK" ts="2022-09-29T20:05:18" emsg=""><iac se="0" ba="0x30" in="10117" dl="0x1" dh="0x0" st="OK"/></tbres>
publishing mqtt with topic 'Wolf/192.168.23.114/BM-2_0x35' '{"1x Warmwasser":1,"1x Warmwasser_Text":"Ein"}'
received mqtt with topic 'Wolf/192.168.23.114/BM-2_0x35/set' '{"1x Warmwasser":0}'
> <?xml version="1.0" encoding="utf-16"?><tbreq xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" bn="10" gw="1" ae="true" ty="write"><iwr se="" ba="0x30" in="10117" dl="0x00" dh="0x00" /></tbreq>
< <EF><BB><BF><?xml version="1.0" encoding="utf-8"?><tbres bn="10" gw="" st="OK" ts="2022-09-29T20:05:21" emsg=""><iac se="0" ba="0x30" in="10117" dl="0x0" dh="0x0" st="OK"/></tbres>
publishing mqtt with topic 'Wolf/192.168.23.114/BM-2_0x35' '{"1x Warmwasser":0,"1x Warmwasser_Text":"Aus"}'
infocfc commented 1 year ago

That's interesting. It receives it, but apparently doesn't publish it.

I think it really is because of my parameters? "-s -retain"? I was just playing with it, and thought the output of individual topics was more clean and useful for my purpose. Also, I'm using "raw" to publish.

> <?xml version="1.0" encoding="utf-16"?><tbreq xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" bn="6" gw="1" ae="false" ty="push"><ird in="35" ba="0x35" is="60" /><ird in="41" ba="0x35" is="60" /><ird in="42" ba="0x35" is="60" /><ird in="257" ba="0x35" is="60" /><ird in="265" ba="0x35" is="60" /><ird in="271" ba="0x35" is="60" /><ird in="388" ba="0x35" is="60" /><ird in="408" ba="0x35" is="60" /><ird in="618" ba="0x35" is="60" /><ird in="701" ba="0x35" is="60" /><ird in="702" ba="0x35" is="60" /><ird in="1443" ba="0x35" is="60" /><ird in="10117" ba="0x35" is="60" /><ird in="10121" ba="0x35" is="60" /><ird in="10130" ba="0x35" is="60" /><ird in="10141" ba="0x35" is="60" /><ird in="10145" ba="0x35" is="60" /><ird in="10146" ba="0x35" is="60" /><ird in="10147" ba="0x35" is="60" /><ird in="10148" ba="0x35" is="60" /><ird in="10149" ba="0x35" is="60" /><ird in="10150" ba="0x35" is="60" /><ird in="10151" ba="0x35" is="60" /><ird in="10152" ba="0x35" is="60" /><ird in="10153" ba="0x35" is="60" /><ird in="10154" ba="0x35" is="60" /><ird in="10157" ba="0x35" is="60" /><ird in="10160" ba="0x35" is="60" /><ird in="10161" ba="0x35" is="60" /><ird in="10162" ba="0x35" is="60" /><ird in="10163" ba="0x35" is="60" /><ird in="10165" ba="0x35" is="60" /><ird in="10185" ba="0x35" is="60" /><ird in="10195" ba="0x35" is="60" /><ird in="10812" ba="0x35" is="60" /><ird in="10912" ba="0x35" is="60" /><ird in="10920" ba="0x35" is="60" /><ird in="20018" ba="0x35" is="60" /><ird in="278" ba="0x35" is="60" /><ird in="279" ba="0x35" is="60" /><ird in="651" ba="0x35" is="60" /><ird in="5266" ba="0x35" is="60" /><ird in="10100" ba="0x35" is="60" /><ird in="10107" ba="0x35" is="60" /><ird in="10108" ba="0x35" is="60" /><ird in="10109" ba="0x35" is="60" /><ird in="10110" ba="0x35" is="60" /><ird in="10111" ba="0x35" is="60" /><ird in="10113" ba="0x35" is="60" /><ird in="10119" ba="0x35" is="60" /><ird in="10155" ba="0x35" is="60" /><ird in="10156" ba="0x35" is="60" /><ird in="10159" ba="0x35" is="60" /><ird in="10164" ba="0x35" is="60" /><ird in="10165" ba="0x35" is="60" /><ird in="10179" ba="0x35" is="60" /><ird in="10838" ba="0x35" is="60" /><ird in="10839" ba="0x35" is="60" /><ird in="10840" ba="0x35" is="60" /><ird in="10841" ba="0x35" is="60" /><ird in="10842" ba="0x35" is="60" /><ird in="10843" ba="0x35" is="60" /><ird in="10844" ba="0x35" is="60" /><ird in="10845" ba="0x35" is="60" /><ird in="10846" ba="0x35" is="60" /><ird in="10847" ba="0x35" is="60" /><ird in="10848" ba="0x35" is="60" /><ird in="10849" ba="0x35" is="60" /><ird in="10850" ba="0x35" is="60" /><ird in="10851" ba="0x35" is="60" /><ird in="10852" ba="0x35" is="60" /><ird in="19" ba="0x35" is="60" /><ird in="10101" ba="0x35" is="60" /><ird in="10134" ba="0x35" is="60" /><ird in="10158" ba="0x35" is="60" /><ird in="10853" ba="0x35" is="60" /><ird in="10854" ba="0x35" is="60" /><ird in="10855" ba="0x35" is="60" /><ird in="10856" ba="0x35" is="60" /><ird in="10857" ba="0x35" is="60" /><ird in="10858" ba="0x35" is="60" /><ird in="10859" ba="0x35" is="60" /><ird in="10860" ba="0x35" is="60" /><ird in="10861" ba="0x35" is="60" /><ird in="10862" ba="0x35" is="60" /><ird in="10863" ba="0x35" is="60" /><ird in="10864" ba="0x35" is="60" /><ird in="10865" ba="0x35" is="60" /><ird in="10866" ba="0x35" is="60" /><ird in="10867" ba="0x35" is="60" /></tbreq> received mqtt with topic 'Wolf/192.168.2.156/WWSystem_BM-2_0x35/set/Warmwassersolltemperatur_eingestellt_35009' '55' < ?<?xml version="1.0" encoding="utf-8"?><tbres bn="4" gw="1" st="OK" ts="2022-09-30T02:10:59" emsg=""><irs se="0" ba="0x76" in="404" dl="0x78" dh="0x0" st="OK"/><irs se="0" ba="0x76" in="405" dl="0x3C" dh="0x0" st="OK"/><irs se="0" ba="0x76" in="410" dl="0x5" dh="0x0" st="OK"/><irs se="0" ba="0x76" in="718" dl="0x0" dh="0x0" st="OK"/><irs se="0" ba="0x76" in="757" dl="0x0" dh="0x0" st="OK"/><irs se="0" ba="0x76" in="758" dl="0x14" dh="0x5" st="OK"/><irs se="0" ba="0x76" in="759" dl="0x0" dh="0x0" st="OK"/><irs se="0" ba="0x76" in="761" dl="0xAC" dh="0x12" st="OK"/><irs se="0" ba="0x76" in="837" dl="0x0" dh="0x0" st="OK"/><irs se="0" ba="0x76" in="968" dl="0x64" dh="0x0" st="OK"/><irs se="0" ba="0x76" in="969" dl="0x1E" dh="0x0" st="OK"/><irs se="0" ba="0x76" in="974" dl="0x0" dh="0x0" st="OK"/><irs se="0" ba="0x76" in="975" dl="0x0" dh="0x0" st="OK"/><irs se="0" ba="0x76" in="2423" dl="0x23" dh="0x0" st="OK"/><irs se="0" ba="0x76" in="2424" dl="0x41" dh="0x2" st="OK"/><irs se="0" ba="0x76" in="2427" dl="0xDB" dh="0x0" st="OK"/><irs se="0" ba="0x76" in="2428" dl="0xAF" dh="0x1" st="OK"/><irs se="0" ba="0x76" in="2476" dl="0x1" dh="0x0" st="OK"/><irs se="0" ba="0x76" in="2477" dl="0x28" dh="0x0" st="OK"/><irs se="0" ba="0x76" in="2478" dl="0x0" dh="0x0" st="OK"/><irs se="0" ba="0x76" in="2508" dl="0x4C" dh="0x4" st="OK"/><irs se="0" ba="0x76" in="2516" dl="0x20" dh="0x3" st="OK"/><irs se="0" ba="0x76" in="2601" dl="0xEB" dh="0x0" st="OK"/><irs se="0" ba="0x76" in="2602" dl="0x1F" dh="0x0" st="OK"/><irs se="0" ba="0x76" in="2603" dl="0x70" dh="0xFE" st="OK"/><irs se="0" ba="0x76" in="2604" dl="0x0" dh="0x0" st="OK"/><irs se="0" ba="0x76" in="4910" dl="0xA" dh="0x0" st="OK"/><irs se="0" ba="0x76" in="4913" dl="0xB6" dh="0x3" st="OK"/><irs se="0" ba="0x76" in="4918" dl="0x64" dh="0x0" st="OK"/><irs se="0" ba="0x76" in="4919" dl="0x0" dh="0x0" st="OK"/><irs se="0" ba="0x76" in="4920" dl="0x0" dh="0x0" st="OK"/><irs se="0" ba="0x76" in="4929" dl="0x0" dh="0x0" st="OK"/><irs se="0" ba="0x76" in="20036" dl="0x3C" dh="0x0" st="OK"/><irs se="0" ba="0x76" in="20037" dl="0x64" dh="0x0" st="OK"/><irs se="0" ba="0x76" in="20038" dl="0xFA" dh="0x0" st="OK"/><irs se="0" ba="0x76" in="20039" dl="0x0" dh="0x0" st="OK"/><irs se="0" ba="0x76" in="20040" dl="0xBD" dh="0x3" st="OK"/><irs se="0" ba="0x76" in="20041" dl="0x39" dh="0x0" st="OK"/><irs se="0" ba="0x76" in="20042" dl="0x0" dh="0x0" st="OK"/><irs se="0" ba="0x76" in="65019" dl="0x2" dh="0x0" st="OK"/></tbres> publishing mqtt with topic 'Wolf/192.168.2.156/SM1_0x76' '{"Einschaltdifferenz Solarspeicher":12.0,"Ausschaltdifferenz Solarspeicher":6.0,"Softwarerevision":5,"Solarkreispumpe":0,"Solarkreispumpe_Text":"Aus","Kollektorkuehlfunktion":0,"Kollektorkuehlfunktion_Text":"Aus","Maximale Kollektortemperatur":130.0,"Zuordnung Solarspeicher":0,"Betriebsstunden Solarkreispumpe":4780,"Drehzahlregelung Solarkreispumpe":0,"Obere Pumpenleistung":100,"Untere Pumpenleistung":30,"Roehrenkollektorfunktion":0,"Roehrenkollektorfunktion_Text":"Nicht aktiv","Frostschutzfunktion":0,"Frostschutzfunktion_Text":"Nicht aktiv","Minimale Kollektortemperatur 24h":3.5,"Maximale Kollektortemperatur 24h":57.7,"Minimale Warmwassertemperatur Solar 24h":21.9,"Maximale Warmwassertemperatur Solar 24h":43.1,"Auswahl Medium":1,"Auswahl Medium_Text":"Tyfocor L (Anro)","Anteil Glykol im Wasser_6022":40,"Anteil Glykol im Wasser_6023":40,"Waermemengenerfassung_6008":0,"Waermemengenerfassung_6008_Text":"Deaktiviert","Waermemengenerfassung_6039":0,"Waermemengenerfassung_6039_Text":"Deaktiviert","Kritische Kollektortemperatur":110.0,"Maximale Speichertemperatur Solarspeicher":80.0,"Warmwassertemperatur Solar":23.5,"Kollektortemperatur":3.1,"Ruecklauftemperatur":-40.0,"Durchfluss":0.0,"Hysterese Solarspeicher":1.0,"Solarspeichernotabschaltung":95.0,"Kollektorminimalbegrenzung":10.0,"Funktionskontrolle Volumenstrom":0,"Funktionskontrolle Volumenstrom_Text":"Aus","Funktionskontrolle Schwerkraftbremse":0.0,"Rueckkuehlfunktion":0,"Rueckkuehlfunktion_Text":"Aus","Solarkreispumpentaktsperre":60,"Hysterese Roehrenkollektorfunktion":10.0,"Maximale Regelabweichung Solar":25.0,"Tageszaehler Pumpenstarts Solarpumpe":0,"Gesamtzaehler Pumpenstarts Solarpumpe":957,"Gesamtzaehler Pumpenstarts Solarpumpe Tausender":57,"Status Solarspeicher":0,"Status Solarspeicher_Text":"Keine Aktivität","Busspeisung":2,"Busspeisung_Text":"Auto"}'

zivillian commented 1 year ago

Can you share the full debug output (except your password)? There seems to be something wrong, but i can't reproduce it.

infocfc commented 1 year ago

Hi. Sorry for the late reply, life got in the way... I've created a debug.log, which should contain first a "set" of Warmwassersolltemperatur from the original 54 to 55, and then second another set of Programmwahl from 1 to 0. I'll also send it to your email. ism7debug.log

infocfc commented 1 year ago

And now I actually found another problem. I'm currently testing without -s and --retain (which I used before), and now if I publish e.g Programmwahl, it does get set (and I can see the change in the App and the wolf portal), but the new value apparently never comes back via MQTT. E.G, in MQTTExplorer, Wolf/192.168.2.156/WWSystem_BM-2_0x35/Programmwahl_35012 still shows "1" half an hour after I succesfully set it from MQTTExplorer to "0".

Maybe this is related. I'll switch back to -s for testing

zivillian commented 1 year ago

I've looked at your log file and can see the MQTT write request and that nothing is send to the ism7. I've added logging for discarded write requests - so the current version should print, that your request was discarded.

The reason, that nothing is send is that you're using an underscore instead of a space. This is caused by the "separate topic" parameter, which adds another layer of escaping, which is currently only done during publishing to mqtt - I'll look, what's the best way to have a consistent escaping for both publish and receive. Your topic:

Wolf/192.168.2.156/WWSystem_BM-2_0x35/set/Warmwassersolltemperatur_eingestellt_35009

Supported topic:

Wolf/192.168.2.156/WWSystem_BM-2_0x35/set/Warmwassersolltemperatur eingestellt_35009
zivillian commented 1 year ago

Since spaces in topics are a bad idea it would be better to publish the following json to Wolf/192.168.2.156/WWSystem_BM-2_0x35/set:

{
  "Warmwassersolltemperatur eingestellt_35009":55
}
infocfc commented 1 year ago

Oh yeah, I could have thought about this myself, if I had noticed before, that MQTT Explorer replaces spaces with underlines mqtt

This has nothing to do with the "seperate topic" option, it always does that (see screenshot)

Of course, ideally, ism7mqtt would replace spaces in the wolf descriptions coming from ISM7 with some unique character or sequence before converting them to mqtt (and of course vice versa).

At any rate, this needs to be prominently in the documentation for the time being. Thanks! And sorry I didn't see it myself.

zivillian commented 1 year ago

@infocfc I've reworked the whole structure of json & mqtt so that they are consistent for reading and writing. Can you test the latest builds or docker images (zivillian/ism7mqtt:master)? You may need to adapt your integration to the new structuce.

zivillian commented 1 year ago

Just to clarify:

Oh yeah, I could have thought about this myself, if I had noticed before, that MQTT Explorer replaces spaces with underlines This has nothing to do with the "seperate topic" option, it always does that (see screenshot)

It has - you haven't used the --disable-json parameter, so the json payload was still pubished in addition to the separate MQTT topis and shown by MQTT Explorer. This is not a bug of the MQTT Explorer - only inconsistent behaviour of ism7mqtt.