Viessmann Binding [5.0.0;5.9.0)

Hi @farbenmann , please set the loglevel to TRACE and PM me the full log.

I’ll take a look, asap

Hi Ronny @rogrun, thanks for your support, log says:

2025-11-18 15:20:40.277 \[ERROR\] \[nal.common.AbstractInvocationHandler\] - An error occurred while calling method ‘ThingHandler.initialize()’ on ‘org.openhab.binding.viessmann.internal.handler.DeviceHandler@770e6489’: Last segment must not be blank: \[viessmann, \]
java.lang.IllegalArgumentException: Last segment must not be blank: \[viessmann, \]
at org.openhab.core.common.AbstractUID.(AbstractUID.java:79) \~\[?:?\]
at org.openhab.core.common.AbstractUID.(AbstractUID.java:59) \~\[?:?\]
at org.openhab.core.thing.UID.(UID.java:57) \~\[?:?\]
at org.openhab.core.thing.type.ChannelTypeUID.(ChannelTypeUID.java:52) \~\[?:?\]
at org.openhab.binding.viessmann.internal.handler.DeviceHandler.lambda$1(DeviceHandler.java:818) \~\[?:?\]
at java.util.Optional.ifPresent(Optional.java:178) \~\[?:?\]
at org.openhab.binding.viessmann.internal.handler.DeviceHandler.createOrUpdateChannel(DeviceHandler.java:816) \~\[?:?\]
at org.openhab.binding.viessmann.internal.handler.DeviceHandler.handleUpdate(DeviceHandler.java:695) \~\[?:?\]
at org.openhab.binding.viessmann.internal.handler.ViessmannGatewayHandler.updateFeaturesOfDevice(ViessmannGatewayHandler.java:354) \~\[?:?\]
at org.openhab.binding.viessmann.internal.handler.DeviceHandler.initChannelState(DeviceHandler.java:261) \~\[?:?\]
at org.openhab.binding.viessmann.internal.handler.ViessmannThingHandler.initDeviceState(ViessmannThingHandler.java:61) \~\[?:?\]
at org.openhab.binding.viessmann.internal.handler.DeviceHandler.initialize(DeviceHandler.java:130) \~\[?:?\]
at jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:103) \~\[?:?\]
at java.lang.reflect.Method.invoke(Method.java:580) \~\[?:?\]
at org.openhab.core.internal.common.AbstractInvocationHandler.invokeDirect(AbstractInvocationHandler.java:149) \~\[?:?\]
at org.openhab.core.internal.common.Invocation.call(Invocation.java:52) \~\[?:?\]
at java.util.concurrent.FutureTask.run(FutureTask.java:317) \~\[?:?\]
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1144) \~\[?:?\]
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:642) \~\[?:?\]
at java.lang.Thread.run(Thread.java:1583) \[?:?\]
2025-11-18 15:20:40.279 \[ERROR\] \[core.thing.internal.ThingManagerImpl\] - Exception occurred while initializing handler of thing ‘viessmann:device:dfafb86fed:7736172145185229:0’: Last segment must not be blank: \[viessmann, \]
java.lang.IllegalArgumentException: Last segment must not be blank: \[viessmann, \]
at org.openhab.core.common.AbstractUID.(AbstractUID.java:79) \~\[?:?\]
at org.openhab.core.common.AbstractUID.(AbstractUID.java:59) \~\[?:?\]
at org.openhab.core.thing.UID.(UID.java:57) \~\[?:?\]
at org.openhab.core.thing.type.ChannelTypeUID.(ChannelTypeUID.java:52) \~\[?:?\]
at org.openhab.binding.viessmann.internal.handler.DeviceHandler.lambda$1(DeviceHandler.java:818) \~\[?:?\]
at java.util.Optional.ifPresent(Optional.java:178) \~\[?:?\]
at org.openhab.binding.viessmann.internal.handler.DeviceHandler.createOrUpdateChannel(DeviceHandler.java:816) \~\[?:?\]
at org.openhab.binding.viessmann.internal.handler.DeviceHandler.handleUpdate(DeviceHandler.java:695) \~\[?:?\]
at org.openhab.binding.viessmann.internal.handler.ViessmannGatewayHandler.updateFeaturesOfDevice(ViessmannGatewayHandler.java:354) \~\[?:?\]
at org.openhab.binding.viessmann.internal.handler.DeviceHandler.initChannelState(DeviceHandler.java:261) \~\[?:?\]
at org.openhab.binding.viessmann.internal.handler.ViessmannThingHandler.initDeviceState(ViessmannThingHandler.java:61) \~\[?:?\]
at org.openhab.binding.viessmann.internal.handler.DeviceHandler.initialize(DeviceHandler.java:130) \~\[?:?\]
at jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:103) \~\[?:?\]
at java.lang.reflect.Method.invoke(Method.java:580) \~\[?:?\]
at org.openhab.core.internal.common.AbstractInvocationHandler.invokeDirect(AbstractInvocationHandler.java:149) \~\[?:?\]
at org.openhab.core.internal.common.Invocation.call(Invocation.java:52) \~\[?:?\]
at java.util.concurrent.FutureTask.run(FutureTask.java:317) \~\[?:?\]
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1144) \~\[?:?\]
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:642) \~\[?:?\]
at java.lang.Thread.run(Thread.java:1583) \[?:?\]

@farbenmann I fixed your issue. A new version is online now.

1 Like

Thanks for this Binding!

Although I used the other bindings before, I still have “problems” with identifying the correct channel that should show the hotwater temperature displayed by ViCare.

There are way to many candidates:

  • Boiler Temperature Sensor - Main
  • Boiler Temperature
  • heating.dhw.sensors.temperature.dhwCylinder
  • DHW.temperature.sensor
  • DHW.temperature.sensor.outlet

I don’t get it! :thinking:

Sorry for the late reply.

After several restarts the ‘authcode’ still shows the described error. However the Thing is online and perfectly working. Let me know if you need any log.

Have a lovely weekend!

Hi @rogrun , all

thanks again for the great binding.

As it became much colder of the last days my gas burner (Vitodense 300W) became active to support my heat pump.
When checking the gas consumption I found that e.g. the “today total“ gas consumption is not updated by the binding, but in the viessmann ViCare app.
Is it just on my end or is someone else also having this issue?

Yes, I need a log in TRACE mode. Please send it to me via private message.

1 Like

@opus

On my system are two channels that provides the values for hot water:

  • heating.dhw.sensors.temperature.dhwCylinder
  • DHW temperature sensor
1 Like

@Radioaktivman I cannot confirm that. My readings match those in the ViCare app.

Could you please send me the log in TRACE mode with the raw data (API response) and the current value from the ViCare app via private message so that I can compare them?

I had the smarthome/j version and updated to this version.

From the docs:

Added new account and gateway things for gateway selection.
Existing device things can be switched manually to the new gateway as bridge.
After that, the bridge thing can be removed.

I have a gateway thing, a connect bridge thing and a device 0 thing. Am I missing an account thing?

As far as I understood I should switch the device 0 thing from the bridge to the gateway thing. However, I cannot pick the gateway thing. If i click on the bridge line in the device’s setting I only get:

So what am I doing wrong?

@sven1234

You need the account thing to discover the gateway (viessmann:gateway:xyz) and not the gateway device (viessmann:device:7811b4639:gateway) ← this can be removed. After the gateway is discovered and added the thing, you can chose it on your device 0.

To add the account thing. Use the + sign to add a new thing. Chose the Viessmann binding and add the account thing.

After that, it looks like this:

Only shows this:

Please try these steps:

  • Remove the binding
  • Check in the console if there another version is installed bundle:list -s | grep -i viessmann
  • clear openHAB cache
  • Re-install via the marketplace
1 Like

That worked, thanks. Now it discovered and offers device 0, which I already have and switched to the gateway. So I guess I have to ignore that duplicate discovered device.

Yes, you can ignore the new (duplicate) discovered device.

@Radioaktivman @mr.airworthy

Please give me feedback so I can publish the binding in the official repository. To do this, I need to know if it’s a bug or if it’s due to the local openHAB installation.

1 Like

Good morning. What file do you need?

Thanks!

I need the log from enabling the account thing in TRACE mode.

To set the TRACE mode type this in the openHAB console

log:set TRACE org.openhab.binding.viessmann

Please send me the log via PM

1 Like

If one uses the little gear at the bottom right in the logviewer which is included in openhab, one can also set the loglevel without accessing the console:

1 Like

@rogrun I am sorry for the delayed response. I restarted(rebooted) my gas burner recently and historical gas consumption readings now show up in openhab. As it got warmer again, the burner is currently not supporting the heatpump. Hence, I can not assass if the gas consumption total today readings are working again. I will get back with some feedback as soon as the burner becomes active again.

Thanks again for your efforts and great work. The binding is helping me a lot in fine tuning my heating system !

1 Like