Buderus KM200 Binding, Firmware 04.08.02 initializing error

Hey everyone,

I am on openhab 3.2.0 on my debian 10.12 homesverer.
The last years I dint not have any trouble with the KM200 binding.
A few weeks ago my wife told me that the current outside temperature is wrong in openhab. I am using the temperature from our buderus heater with km200.

Last week I had a look at that and figured out, that the km200 was not initialized. I did a whole reconfiguration of the binding (with new password and key). The buderus App is working fine.
Unfortunately the binding cannot initialize my heater. I get the message:

2022-06-14 09:56:33.560 [ERROR] [nal.common.AbstractInvocationHandler] - An error occurred while calling method 'ThingHandler.initialize()' on 'org.openhab.binding.km200.internal.handler.KM200GatewayHandler@347fc56f': This type of setpoint is not supported, get setpoint: on
java.lang.IllegalArgumentException: This type of setpoint is not supported, get setpoint: on
	at org.openhab.binding.km200.internal.handler.KM200SwitchProgramServiceHandler.addSwitch(KM200SwitchProgramServiceHandler.java:110) ~[?:?]
	at org.openhab.binding.km200.internal.handler.KM200SwitchProgramServiceHandler.updateSwitches(KM200SwitchProgramServiceHandler.java:389) ~[?:?]
	at org.openhab.binding.km200.internal.handler.KM200VirtualServiceHandler.initVirtualObjects(KM200VirtualServiceHandler.java:63) ~[?:?]
	at org.openhab.binding.km200.internal.handler.KM200GatewayHandler.readCapabilities(KM200GatewayHandler.java:275) ~[?:?]
	at org.openhab.binding.km200.internal.handler.KM200GatewayHandler.initialize(KM200GatewayHandler.java:120) ~[?:?]
	at jdk.internal.reflect.GeneratedMethodAccessor107.invoke(Unknown Source) ~[?:?]
	at jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[?:?]
	at java.lang.reflect.Method.invoke(Method.java:566) ~[?:?]
	at org.openhab.core.internal.common.AbstractInvocationHandler.invokeDirect(AbstractInvocationHandler.java:154) [bundleFile:?]
	at org.openhab.core.internal.common.Invocation.call(Invocation.java:52) [bundleFile:?]
	at java.util.concurrent.FutureTask.run(FutureTask.java:264) [?:?]
	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128) [?:?]
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628) [?:?]
	at java.lang.Thread.run(Thread.java:829) [?:?]
2022-06-14 09:56:33.567 [ERROR] [core.thing.internal.ThingManagerImpl] - Exception occurred while initializing handler of thing 'km200:kmdevice:559410733': This type of setpoint is not supported, get setpoint: on
java.lang.IllegalArgumentException: This type of setpoint is not supported, get setpoint: on
	at org.openhab.binding.km200.internal.handler.KM200SwitchProgramServiceHandler.addSwitch(KM200SwitchProgramServiceHandler.java:110) ~[?:?]
	at org.openhab.binding.km200.internal.handler.KM200SwitchProgramServiceHandler.updateSwitches(KM200SwitchProgramServiceHandler.java:389) ~[?:?]
	at org.openhab.binding.km200.internal.handler.KM200VirtualServiceHandler.initVirtualObjects(KM200VirtualServiceHandler.java:63) ~[?:?]
	at org.openhab.binding.km200.internal.handler.KM200GatewayHandler.readCapabilities(KM200GatewayHandler.java:275) ~[?:?]
	at org.openhab.binding.km200.internal.handler.KM200GatewayHandler.initialize(KM200GatewayHandler.java:120) ~[?:?]
	at jdk.internal.reflect.GeneratedMethodAccessor107.invoke(Unknown Source) ~[?:?]
	at jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[?:?]
	at java.lang.reflect.Method.invoke(Method.java:566) ~[?:?]
	at org.openhab.core.internal.common.AbstractInvocationHandler.invokeDirect(AbstractInvocationHandler.java:154) [bundleFile:?]
	at org.openhab.core.internal.common.Invocation.call(Invocation.java:52) [bundleFile:?]
	at java.util.concurrent.FutureTask.run(FutureTask.java:264) [?:?]
	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128) [?:?]
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628) [?:?]
	at java.lang.Thread.run(Thread.java:829) [?:?]


and the debug log contains:

2022-06-14 09:56:29.009 [DEBUG] [ery.KM200GatewayDiscoveryParticipant] - hardwareID: null
2022-06-14 09:56:29.009 [DEBUG] [ery.KM200GatewayDiscoveryParticipant] - MDNS info: [ServiceInfoImpl@1013608774 name: 'HOSTNAME - Web control panel._http._tcp.local.' address: '/192.168.200.1:81 /IPV6-2:81 /fe80:0:0:0:5895:18ff:fe47:3888:81 ' status: 'NO DNS state: probing 1 task: null' is persistent, has data
	path: /index.php], uid: null
2022-06-14 09:56:29.012 [DEBUG] [ery.KM200GatewayDiscoveryParticipant] - hardwareID: null
2022-06-14 09:56:29.012 [DEBUG] [ery.KM200GatewayDiscoveryParticipant] - MDNS info: [ServiceInfoImpl@1824926324 name: 'HOSTNAME._http._tcp.local.' address: '/IP:80 /IPV6:80 /fe80:0:0:0:5895:18ff:fe47:3888:80 ' status: 'NO DNS state: probing 1 task: null' is persistent, has data, empty], uid: null
2022-06-14 09:56:29.033 [DEBUG] [ery.KM200GatewayDiscoveryParticipant] - hardwareID: null
2022-06-14 09:56:29.034 [DEBUG] [ery.KM200GatewayDiscoveryParticipant] - MDNS info: [ServiceInfoImpl@379929361 name: 'HOSTNAME - Web control panel._http._tcp.local.' address: '/IP2:81 /IPV6-2:81 IPV6-3:81  ' status: 'NO DNS state: probing 1 task: null' is persistent, has data
	path: /index.php], uid: null
2022-06-14 09:56:29.040 [DEBUG] [ery.KM200GatewayDiscoveryParticipant] - hardwareID: null
2022-06-14 09:56:29.040 [DEBUG] [hab.binding.km200.internal.KM200Comm] - Starting receive connection...
2022-06-14 09:56:29.040 [DEBUG] [ery.KM200GatewayDiscoveryParticipant] - MDNS info: [ServiceInfoImpl@1667391429 name: 'HOSTNAME._http._tcp.local.' address: '/IP2:80 /IPV6:80 /IPV6-80:80 ' status: 'NO DNS state: probing 1 task: null' is persistent, has data, empty], uid: null
2022-06-14 09:56:29.179 [DEBUG] [hab.binding.km200.internal.KM200Comm] - Starting receive connection...
2022-06-14 09:56:29.778 [DEBUG] [b.binding.km200.internal.KM200Device] - /system/holidayModes/hm4/delete: recData.length == 1
2022-06-14 09:56:29.778 [DEBUG] [hab.binding.km200.internal.KM200Comm] - Starting receive connection...
2022-06-14 09:56:30.378 [DEBUG] [b.binding.km200.internal.KM200Device] - /system/holidayModes/hm4/delete: recData.length == 1
2022-06-14 09:56:30.378 [DEBUG] [hab.binding.km200.internal.KM200Comm] - Starting receive connection...
2022-06-14 09:56:30.498 [DEBUG] [hab.binding.km200.internal.KM200Comm] - Starting receive connection...
2022-06-14 09:56:30.618 [DEBUG] [hab.binding.km200.internal.KM200Comm] - Starting receive connection...
2022-06-14 09:56:30.758 [DEBUG] [hab.binding.km200.internal.KM200Comm] - Starting receive connection...
2022-06-14 09:56:30.898 [DEBUG] [hab.binding.km200.internal.KM200Comm] - Starting receive connection...
2022-06-14 09:56:31.038 [DEBUG] [hab.binding.km200.internal.KM200Comm] - Starting receive connection...
2022-06-14 09:56:31.178 [DEBUG] [hab.binding.km200.internal.KM200Comm] - Starting receive connection...
2022-06-14 09:56:31.318 [DEBUG] [hab.binding.km200.internal.KM200Comm] - Starting receive connection...
2022-06-14 09:56:31.458 [DEBUG] [hab.binding.km200.internal.KM200Comm] - Starting receive connection...
2022-06-14 09:56:31.598 [DEBUG] [hab.binding.km200.internal.KM200Comm] - Starting receive connection...
2022-06-14 09:56:31.738 [DEBUG] [hab.binding.km200.internal.KM200Comm] - Starting receive connection...
2022-06-14 09:56:32.338 [DEBUG] [b.binding.km200.internal.KM200Device] - /system/holidayModes/hm5/delete: recData.length == 1
2022-06-14 09:56:32.339 [DEBUG] [hab.binding.km200.internal.KM200Comm] - Starting receive connection...
2022-06-14 09:56:32.938 [DEBUG] [b.binding.km200.internal.KM200Device] - /system/holidayModes/hm5/delete: recData.length == 1
2022-06-14 09:56:32.938 [DEBUG] [hab.binding.km200.internal.KM200Comm] - Starting receive connection...
2022-06-14 09:56:33.558 [DEBUG] [b.binding.km200.internal.KM200Device] - Communication to /systemStates is not possible!
2022-06-14 09:56:33.559 [DEBUG] [internal.handler.KM200ServiceHandler] - initDevice: nodeRoot == null for service: /systemStates
2022-06-14 09:56:33.559 [DEBUG] [l.handler.KM200VirtualServiceHandler] - Full Servicename: /dhwCircuits/dhw1/switchPrograms/A
2022-06-14 09:56:33.559 [DEBUG] [ler.KM200SwitchProgramServiceHandler] - Positive switch: high
2022-06-14 09:56:33.559 [DEBUG] [ler.KM200SwitchProgramServiceHandler] - Negative switch: off
2022-06-14 09:56:33.559 [DEBUG] [l.handler.KM200VirtualServiceHandler] - On: /dhwCircuits/dhw1/switchPrograms/A/high  Of: /dhwCircuits/dhw1/switchPrograms/A/off
2022-06-14 09:56:33.559 [DEBUG] [l.handler.KM200VirtualServiceHandler] - Full Servicename: /dhwCircuits/dhw1/switchPrograms/cp
2022-06-14 09:56:33.559 [DEBUG] [ler.KM200SwitchProgramServiceHandler] - Positive switch: off
2022-06-14 09:56:33.560 [DEBUG] [ler.KM200SwitchProgramServiceHandler] - Negative switch: on
2022-06-14 09:56:38.695 [DEBUG] [ery.KM200GatewayDiscoveryParticipant] - hardwareID: null
2022-06-14 09:56:38.695 [DEBUG] [ery.KM200GatewayDiscoveryParticipant] - MDNS info: [ServiceInfoImpl@1902810384 name: 'HOSTNAME - Web control panel._http._tcp.local.' address: '/IP3-81 /IPV6-3-81 ' status: 'NO DNS state: probing 1 task: null' is persistent, has data
	path: /index.php], uid: null

My guess it happens in reason of a firmware update? Anyone else with that kind of problem? Any suggestions how to fix it?

@Markinus do you ha a suggestion for me?

Thanks in advance

Hi,
I need your full service list. You can take it from debug. I have an idea but have to verify it.
Best,

Hey @Markinus,

thanks for replay. Please find attached the logfile of a whole reboot cycle.
I can find some services, but not a whole list?

Thx
km200.log (98.7 KB)

Hey @Markinus ,

did you have a look into my logs? I’m not sure if everything you are looking for is in the logs.

Thanks

Hi,
you have to enable debug for this binding then the other messages will appear.

Best,

Hi @Markinus,

the binding is in debug mode, as you can see in the logs every entry is on DEBUG level.
Are you good to go with that log? Or is anything missing?

Thanks

Hi,
strange, this log file is no complete. There should be a list of all services in debug. You have to try again.
Best,
Markus

Hey @Markinus ,

I disabled the gateway, cleared the log file and enabled it again.

Please find attached the logfile. In my eyes it looks like before.

Just a short reminder: I did delete the whole thing before, and started with a new configuration
km200.log (56.7 KB)

Hey @Markinus ,

any news about this?

It looks like someone else had the same problem? The assumption ist, that the response data changed?

Thx

David

From my reading of error message - yes, it is a JSON parsing error. I don’t know KM200 at all, but firmware updates might change that.

hi,
I’m a bit out of time but I will try to take a closer look to this on the weekend.
Best,

Hey @Markinus ,

that would be awesome.

I appreciate that.

David

Hey @Markinus,
first I do have a km100 not a km200.
I just debuged the binding. It looks like the negativeswitch is “on”.
I did not have a deeper look at the definitions, but is there any reason why you are not accepting the value “on” in general? What is the difference between “on” and “high”?

I added a quick fix: just checking if positive is “off” and negative is “on”. You did that other way round.
WIth the fix, there is still the warning:

“!!! Wrong configuration on device. ‘on’ instead of ‘high’ in switch program. It seems that’s a firmware problem-> ignoring it !!!”

But for me it is going back to normal operation (I’m not using all kind of things). In my opinion that did not break anything. Maybe some else can test that on their setup? Attached you can find my service list.

Also attached there is the binding jar. Would be awesome if someone could double check that everything is working.
services.txt (61.9 KB)
org.openhab.binding.km200-3.4.0-SNAPSHOT.txt (95.0 KB) (just rename it from .txt to .jar)

As my changes are merged to 3.4 I’m marking this as solved…

Have had the problem, too. After debugging each message of the communication of the binding with my pretty old MB-LAN, I’ve found that the request for the attribute /gateway/registrations led to an invalid response of the gateway - blocking the binding to move forward into “bridge initialized” mode.

See PR