New Binding: Wireless M-Bus / Techem heat cost allocators

I would need some quidence, as I´m no good at stuff like these. Dont know what OpenMUC is.

OpenMuc is the developer of jMBus (https://www.openmuc.org/m-bus/) which is an integral part of the binding. I already sent them an e-mail yesterday, pointed to our discussion here and kindly asked for their help…

Great… We´ll just have to wait an see then.

Keep in mind we are still on jmbus 3.1.x as we run into troubles with jmbus 3.2 and amber. We might take another attempt with 3.2 and see if it helps in your case.

Hi Lukasz, I only see a few minor changes in “WMBusConnectionImst.java” between 3.1.1 and 3.2.0 but happy to test any version that might include 3.2.0.

I´m ready to test as well… heck, I cant really use the IMST stick anyway :slight_smile:

Hi splatch,

i see very often (often means maybe once per hour) the following failure log entry.
any idea whats behind this?

2019-01-19 07:32:55.061 [ERROR] [ing.wmbus.handler.WMBusBridgeHandler] - An exception occurred while notifying the WMBusMessageListener

java.lang.ArrayIndexOutOfBoundsException: 22

	at org.openhab.binding.wmbus.device.techem.decoder.AbstractTechemFrameDecoder.read(AbstractTechemFrameDecoder.java:44) [244:org.openhab.binding.wmbus:2.3.0.SNAPSHOT]

	at org.openhab.binding.wmbus.device.techem.decoder.AbstractTechemFrameDecoder.parseBigEndianInt(AbstractTechemFrameDecoder.java:54) [244:org.openhab.binding.wmbus:2.3.0.SNAPSHOT]

	at org.openhab.binding.wmbus.device.techem.decoder.AbstractTechemFrameDecoder.parseBigEndianInt(AbstractTechemFrameDecoder.java:50) [244:org.openhab.binding.wmbus:2.3.0.SNAPSHOT]

	at org.openhab.binding.wmbus.device.techem.decoder.AbstractTechemFrameDecoder.parseValue(AbstractTechemFrameDecoder.java:59) [244:org.openhab.binding.wmbus:2.3.0.SNAPSHOT]

	at org.openhab.binding.wmbus.device.techem.decoder.hkv.AbstractTechemHKVFrameDecoder.parseTemperature(AbstractTechemHKVFrameDecoder.java:71) [244:org.openhab.binding.wmbus:2.3.0.SNAPSHOT]

	at org.openhab.binding.wmbus.device.techem.decoder.hkv.AbstractTechemHKVFrameDecoder.decode(AbstractTechemHKVFrameDecoder.java:58) [244:org.openhab.binding.wmbus:2.3.0.SNAPSHOT]

	at org.openhab.binding.wmbus.device.techem.decoder.hkv.AbstractTechemHKVFrameDecoder.decode(AbstractTechemHKVFrameDecoder.java:1) [244:org.openhab.binding.wmbus:2.3.0.SNAPSHOT]

	at org.openhab.binding.wmbus.device.techem.decoder.AbstractTechemFrameDecoder.decode(AbstractTechemFrameDecoder.java:99) [244:org.openhab.binding.wmbus:2.3.0.SNAPSHOT]

	at org.openhab.binding.wmbus.device.techem.decoder.CompositeTechemFrameDecoder.decode(CompositeTechemFrameDecoder.java:54) [244:org.openhab.binding.wmbus:2.3.0.SNAPSHOT]

	at org.openhab.binding.wmbus.device.techem.handler.TechemMeterHandler.parseDevice(TechemMeterHandler.java:112) [244:org.openhab.binding.wmbus:2.3.0.SNAPSHOT]

	at org.openhab.binding.wmbus.device.techem.handler.TechemMeterHandler.parseDevice(TechemMeterHandler.java:1) [244:org.openhab.binding.wmbus:2.3.0.SNAPSHOT]

	at org.openhab.binding.wmbus.handler.WMBusDeviceHandler.onChangedWMBusDevice(WMBusDeviceHandler.java:100) [244:org.openhab.binding.wmbus:2.3.0.SNAPSHOT]

	at org.openhab.binding.wmbus.handler.WMBusBridgeHandler.notifyWMBusMessageListeners(WMBusBridgeHandler.java:292) [244:org.openhab.binding.wmbus:2.3.0.SNAPSHOT]

	at org.openhab.binding.wmbus.handler.WMBusBridgeHandler.processMessage(WMBusBridgeHandler.java:382) [244:org.openhab.binding.wmbus:2.3.0.SNAPSHOT]

	at org.openhab.binding.wmbus.internal.WMBusReceiver.newMessage(WMBusReceiver.java:79) [244:org.openhab.binding.wmbus:2.3.0.SNAPSHOT]

	at org.openmuc.jmbus.wireless.MessageReceiver$2.run(MessageReceiver.java:39) [244:org.openhab.binding.wmbus:2.3.0.SNAPSHOT]

	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) [?:?]

	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) [?:?]

	at java.lang.Thread.run(Thread.java:748) [?:?]

See my new inbox today :smiley: grafik

Could you also give me an answer how to empty my inbox (see post above)? it is still full of wmbus devices from within my neighbourhood.

Any news on this one?

someone who has a solution to the problem?

No solution but I finally received a feedback with a few hints from OpenMUC. Their answer is in German, I roughly translated it into English:

Sie scheinen eine alte Version von jMBus zu verwenden, da die Zeilenzahl ihrer Exception nicht mit der aktuellen übereinstimmt.

It seems that you use an old version of JMBus because the line number in your exception does not correlate to the current one.

Der Fehler tritt an einer seltsamen Stelle auf. Dieses readbyte ist blockierend und wartet solange bis ein Byte gelesen werden kann/darf. Deshalb wird vorher " transportLayer.setTimeout(0);" gesetzt.

The error happens at a strange position. This readbyte is blocking and waits until a Byte can be read. That’s why " transportLayer.setTimeout(0);" is set before.

Ich hatte hier über ein Jahr ein IMST zur Auslesung von Amber Feuchte-/Temperatur-Sensoren in Betrieb, ohne Probleme.`

I used a IMST for over a year to read from Amber humidity/temperature sensors without any problems.

Wird jrxtx oder die OpenHAB Variante von rxtx genutzt?

Is jrxtx or the OpenHAB version of rxtx used?

Es kann auch sein dass es eine neue Firmwareversion gibt und der Stick sich nun anders verhält. Mein Stick hat die Firmware: WMBusUSB, 1.3 (Build 7), 21.03.2013, 09:00:00

It’s possible that there is a newer firmware version and the stick behaves differently now. My stick has firmware WMBusUSB, 1.3 (Build 7), 21.03.2013, 09:00:00 installed.

Unfortunately I have no time at the moment to further investigate the issue but maybe their feedback helps someone finding the problem. Good luck!

The answer to this I suspect is rxtx, and it´s a nightmare…
On my main system, each time I connect the IMST dongle, my RS485 dongle (used for modbus binding) goes bananas. I have even tried setting up symlinks, but still these two dongles seems to interfere with each other… I have not been able to find a solution to this, but I have a slight feeling it may be due to rxtx. Other than that, it´s out of my knowledge :frowning:
I have tried the dongle on another system without the RS845 dongle. I cant get it to go online, and end up with the same error. So even without the RS485 dongle there is a problem.

Is this the Amber Wireless Mbus dongle which is known to work with the binding?

https://dk.farnell.com/wurth-elektronik/amb8465-m/usb-adaptor-wireless-m-bus-ceramic/dp/1749517?MER=bn_level5_5NP_EngagementRecSingleItem_4#

It is similar to earlier amber stick with red shell - should work as it it uses same AMB8465-M chipset.

It´s almost the same price as the blue one. Just need to figure if I want to buy yet another WMbus dongle… Didn´t get the IMST to work :frowning:

I just installed a openhab version (2.5M1) on my windows 10, running oracle Java.
The iMST dongle is having the same issue here.
I also installed Wireless Solution´s tools to make sure the dongle is working. It worked fine.

Hello @Kim_Andersen

did you bought the Amber W-Mbus USB Stick and does it work with this Binding?

Thanks for your information

No I did buy it :frowning:
After thinking again, I thought that it would be better to get the ISMT running, rather than ending up with two dongles not working.

Hello @friesenkiwi I have a Kampstrup Multical21 (encrypted) device at home. How can I support you with the log, what do you need that Multical21 could be added as supported device?

I recompiled KuguHome/openhab-binding-wmbus for OH3.1.0 SNAPSHOT:

org.openhab.binding.wmbus-3.1.0-SNAPSHOT_20210305.zip

You need to configure include BridgeUID to ON, in order to get it discovery working under OH3:
grafik

Installation like described in README.md