Binding "SmartHome/J Viessmann Binding" - can't set value

Hi @rossko57,
thanks for your comment, and of course you are right.
The value is set with a slider-widget in the HabPanel.

How can I manage to sent the value inclusive the unit when I change the slider? Currently I don’t have an idea :see_no_evil:

Thanks @rogrun, the Snapshot works fine for me :ok_hand:

1 Like

Check Item type, channel type. Things don’t go well if you have a mix of quantity and plain number types.

Apart from that, don’t know, that’s a HADpanel question.

Thanks @rogrun for your amazing work!

Setting heatingDhwTemperatureMain is working very well with your snapshot version. Unfortunately, heatingCircuits1HeatingCurve#shift and heatingCircuits1HeatingCurve#slope not.

Here the trace logging:

2022-11-05 19:48:25.139 [TRACE] [smann.internal.handler.DeviceHandler] - ChannelUID: viessmann:device:1:0:heatingCircuits1HeatingCurve#slope | Properties: {setCurveParams=slope,shift, setCurveUri=https://api.viessmann.com/iot/v1/equipment/installations/*****/gateways/*****************/devices/0/features/heating.circuits.1.heating.curve/commands/setCurve, feature=heating.circuits.1.heating.curve, command=setCurve}
2022-11-05 19:48:25.139 [TRACE] [smann.internal.handler.DeviceHandler] - Received QuantityType Command for Channel org.openhab.core.thing.binding.builder.ChannelBuilder$ChannelImpl@7253f693 Command: 0.9

Nothing more instead like this one on changing DHW temperature:

2022-11-05 19:46:06.786 [TRACE] [smann.internal.handler.DeviceHandler] - ChannelUID: viessmann:device:1:0:heatingDhwTemperatureMain | Properties: {command=temperature, temperatureParams=temperature, channelType=type-settemperature, feature=heating.dhw.temperature.main, temperatureUri=https://api.viessmann.com/iot/v1/equipment/installations/******/gateways/*******************/devices/0/features/heating.dhw.temperature.main/commands/setTargetTemperature}
2022-11-05 19:46:06.788 [TRACE] [smann.internal.handler.DeviceHandler] - Received QuantityType Command for Channel org.openhab.core.thing.binding.builder.ChannelBuilder$ChannelImpl@2a48a04 Command: 50.0
2022-11-05 19:46:06.789 [TRACE] [.viessmann.internal.api.ViessmannApi] - API: Post request json is '{"temperature":50.0}'
2022-11-05 19:46:07.376 [TRACE] [.viessmann.internal.api.ViessmannApi] - API: Response took 587 msec: {"data":{"success":true,"reason":"COMMAND_EXECUTION_SUCCESS"}}

Doing I’m anything wrong? Maybe you can have a look an this?

Thanks! Martin

Which version are you using? There is a bug in the last version in the marketplace.

Please use this, described here:

Hi @rogrun,

yes, I’m using your snapshot version 3.2.15. By using version 3.2.14 from the marketplace either DHT temperature nor heating curve worked.

openhab> bundle:list | grep "SmartHome/J"
286 │ Active │  80 │ 3.2.15.202209041557    │ SmartHome/J Add-ons :: Bundles :: Viessmann Binding
287 │ Active │  80 │ 3.2.15.202209010215    │ SmartHome/J Add-ons :: Bundles :: Common Components

:pensive:
Thanks! Martin

I’ll take a look at that in the next few days.

[edit]
I looked again. Your channel is the wrong type. It must be a DecimalType and not QuantityType.

Hi @rogrun,

that’s it! Thank you very much! :heart_hands:

Martin

Hello,

Thank you for the great binding. I was able to optimize my heating with it. I just can’t get the hot water under control.

I installed the latest binding.(3.2.15)

Unfortunately, setting the hot water temperature does not work for me. The trace log shows:

2022-11-16 17:10:52.936 [INFO ] [openhab.event.ItemStateChangedEvent ] - Item ‘ViessmannDevice0_DHWmaintemperature’ changed from 56 °C to 55 °C
2022-11-16 17:10:52.943 [TRACE] [smann.internal.handler.DeviceHandler] - ChannelUID: {feature=heating.dhw.temperature.main}

2022-11-16 17:12:41.515 [INFO ] [openhab.event.ItemStateChangedEvent ] - Item ‘ViessmannDevice0_DHWmaintemperature’ changed from 54 °C to 57 °C

I then also tried to change the shift of the heating curve. That doesn’t work either.

2022-11-17 08:49:19.077 [INFO ] [openhab.event.ItemCommandEvent ] - Item ‘ViessmannDevice0_HeatingcurveCircuit1shift’ received command -5
2022-11-17 08:49:19.079 [INFO ] [penhab.event.ItemStatePredictedEvent] - Item ‘ViessmannDevice0_HeatingcurveCircuit1shift’ predicted to become -5
2022-11-17 08:49:19.087 [INFO ] [openhab.event.ItemStateChangedEvent ] - Item ‘ViessmannDevice0_HeatingcurveCircuit1shift’ changed from -6 to -5
2022-11-17 08:49:19.091 [TRACE] [smann.internal.handler.DeviceHandler] - ChannelUID: {setCurveUri=https://api.viessmann.com/iot/v1/equipment/installations/1964249/gateways/ xxxxxxxxxxxx/devices/0/features/heating.circuits.1.heating.curve/commands/setCurve, command=setCurve, setCurveParams=slope,shift, feature=heating.circuits.1.heating.curve}

Can someone please give me a tip what I’m doing wrong.

Greetings

Your log should look like this:

10:17:52.351 [INFO ] [openhab.event.ItemCommandEvent       ] - Item 'ViessmannDevice0_DHWmaintemperature' received command 49
10:17:52.420 [INFO ] [openhab.event.ItemStatePredictedEvent] - Item 'ViessmannDevice0_DHWmaintemperature' predicted to become 49
10:17:52.449 [TRACE] [ssmann.internal.handler.DeviceHandler] - ChannelUID: viessmann:device:xxxxxxxx:0:heatingDhwTemperatureMain | Properties: {feature=heating.dhw.temperature.main, temperatureUri=https://api.viessmann.com/iot/v1/equipment/installations/xxxx/gateways/xxxxxx/devices/0/features/heating.dhw.temperature.main/commands/setTargetTemperature, temperatureParams=temperature, command=temperature, channelType=type-settemperature}
10:17:52.468 [TRACE] [ssmann.internal.handler.DeviceHandler] - Received QuantityType Command for Channel org.openhab.core.thing.binding.builder.ChannelBuilder$ChannelImpl@3cc4c22e Command: 49.0
10:17:52.455 [INFO ] [openhab.event.ItemStateChangedEvent  ] - Item 'ViessmannDevice0_DHWmaintemperature' changed from 48 °C to 49 °C
10:17:52.469 [TRACE] [g.viessmann.internal.api.ViessmannApi] - API: Post request json is '{"temperature":49.0}'
10:17:52.484 [INFO ] [openhab.event.ItemStateChangedEvent  ] - Item 'ViessmannConnectBridge_CountAPICalls' changed from 21 to 22
10:17:52.949 [TRACE] [g.viessmann.internal.api.ViessmannApi] - API: Response took 479 msec: {"data":{"success":true,"reason":"COMMAND_EXECUTION_SUCCESS"}}

10:07:23.119 [INFO ] [openhab.event.ItemCommandEvent       ] - Item 'ViessmannDevice0_HeatingcurveCircuit1shift' received command -6
10:07:23.123 [INFO ] [openhab.event.ItemStatePredictedEvent] - Item 'ViessmannDevice0_HeatingcurveCircuit1shift' predicted to become -6
10:07:23.126 [INFO ] [openhab.event.ItemStateChangedEvent  ] - Item 'ViessmannDevice0_HeatingcurveCircuit1shift' changed from -1 to -6
10:07:23.161 [TRACE] [ssmann.internal.handler.DeviceHandler] - ChannelUID: viessmann:device:xxxxxxxx:0:heatingCircuits1HeatingCurve#shift | Properties: {setCurveUri=https://api.viessmann.com/iot/v1/equipment/installations/xxxx/gateways/xxxxxx/devices/0/features/heating.circuits.1.heating.curve/commands/setCurve, feature=heating.circuits.1.heating.curve, setCurveParams=slope,shift, command=setCurve, channelType=type-number, circuitId=.1}
10:07:23.162 [TRACE] [ssmann.internal.handler.DeviceHandler] - Received DecimalType Command for Channel org.openhab.core.thing.binding.builder.ChannelBuilder$ChannelImpl@61b20c99
10:07:23.164 [TRACE] [g.viessmann.internal.api.ViessmannApi] - API: Post request json is '{"slope":1.4, "shift":-6}'
10:07:23.570 [TRACE] [g.viessmann.internal.api.ViessmannApi] - API: Response took 404 msec: {"data":{"success":true,"reason":"COMMAND_EXECUTION_SUCCESS"}}

I’m surprised that after ChannelUID there isn’t:
viessmann:device:xxxxxxxx:0:heatingDhwTemperatureMain | Properties:
viessmann:device:xxxxxxxx:0:heatingCircuits1HeatingCurve#shift | Properties:

Have you already deleted and re-added all items and the device thing?

Please use 3rd party json addon service version. Here is the latest version since last sunday

Hello rogrun,
Thank you for the fast answer. What do you mean by:

Greetings

I mean this.

If you installed the JAR file in the Addons folder. Please delete the commons jar and the Viessmann jar.

The latest stable version is only available via the JSON 3rd party addon service.

Oh I see. Excuse me.
I’ve always been active. I installed version 3.2.15 via Bindings/Other Addons. I also rebooted afterwards. New channels are also available in Device0, e.g. (heatingCircuits1OperatingModesForcedReduced#active).

I tried a trace again, but when I sent the new hot water temperature, I no longer received a message

2022-11-17 11:14:25.695 [INFO ] [openhab.event.ItemCommandEvent ] - Item ‘ViessmannDevice0_DHWmaintemperature’ received command 40

2022-11-17 11:14:25.698 [INFO ] [penhab.event.ItemStatePredictedEvent] - Item ‘ViessmannDevice0_DHWmaintemperature’ predicted to become 40

2022-11-17 11:14:25.706 [INFO ] [openhab.event.ItemStateChangedEvent ] - Item ‘ViessmannDevice0_DHWmaintemperature’ changed from 48 °C to 40 °C

2022-11-17 11:14:35.990 [DEBUG] [n.internal.ViessmannDiscoveryService] - Discovered Device viessmann:device:54d3894269:0

Thank you for your help.

Have you set the log level to TRACE?
log:set TRACE org.smarthomej.binding.viessmann

Yes

That’s weird. I can’t explain it. It works for me. I will test it again on my test system.
I’ll get in touch

Thank you

Unfortunately I cannot get it to work either.

I removed the marketplace folder, just in case, and installed the addon again from the 3rd party json addon service.

I unlinked and reoved the items from the slope and shift channel.

The log shows:

2023-01-24 11:24:59.209 [INFO ] [openhab.event.ItemCommandEvent      ] - Item 'Viessmann_Warmepumpe_Heating_curve_Circuit_0_shift' received command -1

2023-01-24 11:24:59.218 [INFO ] [penhab.event.ItemStatePredictedEvent] - Item 'Viessmann_Warmepumpe_Heating_curve_Circuit_0_shift' predicted to become -1

2023-01-24 11:24:59.226 [INFO ] [openhab.event.ItemStateChangedEvent ] - Item 'Viessmann_Warmepumpe_Heating_curve_Circuit_0_shift' changed from -2 to -1

==> /var/log/openhab/openhab.log <==

2023-01-24 11:24:59.240 [TRACE] [smann.internal.handler.DeviceHandler] - ChannelUID: {feature=heating.circuits.0.heating.curve, command=setCurve, setCurveParams=slope,shift, setCurveUri=https://api.viessmann.com/iot/v1/equipment/installations/xxxxx/gateways/xxxxxxx/devices/0/features/heating.circuits.0.heating.curve/commands/setCurve}

2023-01-24 11:24:59.243 [TRACE] [smann.internal.handler.DeviceHandler] - Received DecimalType Command for Channel org.openhab.core.thing.binding.builder.ChannelBuilder$ChannelImpl@163e4e5

2023-01-24 11:25:09.301 [DEBUG] [n.internal.ViessmannDiscoveryService] - Discovered Device viessmann:device:ee95c015cc:0

2023-01-24 11:25:09.306 [DEBUG] [n.internal.ViessmannDiscoveryService] - Discovered Device viessmann:device:ee95c015cc:gateway

What else should I check or remove/re-add?

Do you have more than one heating circuits since you use heating circuit 1 instead of 0? I wonder because for me the first heating circuit is 0. The values I read from it are those that I see at the actual equipment while heating circuit 1 gives me the default values of the pump, i.e. slop 0.6 and shift 0.

Please check in the console, wich version is installed.

bundle:list | grep -i viessmann

If there are two (or more), please delete all and reinstall by the marketplace.
The latest version is 3.2.15

240 │ Active │  80 │ 3.2.15                 │ SmartHome/J Add-ons :: Bundles :: Viessmann Binding

My trace lookes like this:
(tested with OpenHAB 3.4.1)

20:11:31.874 [INFO ] [openhab.event.ItemCommandEvent       ] - Item 'Viessmann_Device_0_Heating_curve_Circuit_1_shift' received command -4
20:11:32.202 [INFO ] [openhab.event.ItemStatePredictedEvent] - Item 'Viessmann_Device_0_Heating_curve_Circuit_1_shift' predicted to become -4
20:11:32.203 [INFO ] [openhab.event.ItemStateChangedEvent  ] - Item 'Viessmann_Device_0_Heating_curve_Circuit_1_shift' changed from -6 to -4
20:11:32.208 [TRACE] [ssmann.internal.handler.DeviceHandler] - ChannelUID: viessmann:device:e119b556bb:0:heatingCircuits1HeatingCurve#shift | Properties: {circuitId=.1, channelType=type-number, setCurveParams=slope,shift, command=setCurve, feature=heating.circuits.1.heating.curve, setCurveUri=https://api.viessmann.com/iot/v1/equipment/installations/xxx/gateways/xxxxxxxx/devices/0/features/heating.circuits.1.heating.curve/commands/setCurve}
20:11:32.208 [TRACE] [ssmann.internal.handler.DeviceHandler] - Received DecimalType Command for Channel org.openhab.core.thing.binding.builder.ChannelBuilder$ChannelImpl@3befa2a3
20:11:32.232 [TRACE] [g.viessmann.internal.api.ViessmannApi] - API: Post request json is '{"slope":1.4, "shift":-4}'
20:11:33.715 [TRACE] [g.viessmann.internal.api.ViessmannApi] - API: Response took 1482 msec: {"data":{"success":true,"reason":"COMMAND_EXECUTION_SUCCESS"}}