Setting the target temperature from shelly TRV only possible in integers?

Hello community, I have a Shelly TRV set up with the Shelly Binding.
I have set up a setpoint number item as the item for the target temperature.

Problem:
I can only send integers as setpoint to the TRV. If I set the setpoint steps to 0.5 I get a parsing error.

How can I make it so that floats are also sent?

I can set 0.5 steps in the web interface and in the Shelly App.

Thanks for your support

A parsing error from what? The device? The binding? The UI?

I have linked the following item to the TRV Thing

Now I set the target temperature in 0.5 steps:

16:50:50.467 [INFO ] [openhab.event.ItemCommandEvent       ] - Item 'TRV_Woh_Solltemp_SET' received command 24.5
16:50:50.472 [WARN ] [adataStateDescriptionFragmentProvider] - Unable to parse the stateDescription from metadata for item TRV_Woh_Solltemp_SET, ignoring it
16:50:50.480 [INFO ] [openhab.event.ItemStatePredictedEvent] - Item 'TRV_Woh_Solltemp_SET' predicted to become 24.5
16:50:50.485 [WARN ] [adataStateDescriptionFragmentProvider] - Unable to parse the stateDescription from metadata for item TRV_Woh_Solltemp_SET, ignoring it
16:50:50.490 [WARN ] [adataStateDescriptionFragmentProvider] - Unable to parse the stateDescription from metadata for item TRV_Woh_Solltemp_SET, ignoring it
16:50:50.497 [WARN ] [adataStateDescriptionFragmentProvider] - Unable to parse the stateDescription from metadata for item TRV_Woh_Solltemp_SET, ignoring it
16:50:50.503 [INFO ] [openhab.event.ItemStateChangedEvent  ] - Item 'TRV_Woh_Solltemp_SET' changed from 24 °C to 24.5 °C
16:50:50.506 [WARN ] [adataStateDescriptionFragmentProvider] - Unable to parse the stateDescription from metadata for item TRV_Woh_Solltemp_SET, ignoring it

The TRV does not set the setpoint temperature to 24.5 °C but remains at 24 °C.

If I set the steps to integers it works.

Well, the error mentions “StateDescription”, so what’s your State Description metadata?

Here is the State Description

value: " "
config:
  readOnly: false
  step: 0,5
  min: "5"
  max: "30"

The state description is a blank space which is telling OH to not show the state at all.

Set the pattern to %.1f °C.

The .1 means one decimal place.

Hello, so I first made a dot instead of a comma in the State Description at the steps.
With this the parsing error is gone.

value: " "
config:
  pattern: "%.1f °C"
  readOnly: false
  step: "0.5"
  min: "5"
  max: "30"
17:16:09.214 [INFO ] [openhab.event.ItemCommandEvent       ] - Item 'TRV_Woh_Solltemp_SET' received command 26.5
17:16:09.222 [INFO ] [openhab.event.ItemStatePredictedEvent] - Item 'TRV_Woh_Solltemp_SET' predicted to become 26.5
17:16:09.268 [INFO ] [openhab.event.ItemStateChangedEvent  ] - Item 'TRV_Woh_Solltemp_SET' changed from 26 °C to 26.5 °C

Item changes state without error

However, the TRV remains at 26.0 °C

From 26.5 °C to 27 °C I have the following logs

17:24:21.113 [INFO ] [openhab.event.ItemCommandEvent       ] - Item 'TRV_Woh_Solltemp_SET' received command 27
17:24:21.120 [INFO ] [openhab.event.ItemStatePredictedEvent] - Item 'TRV_Woh_Solltemp_SET' predicted to become 27
17:24:21.128 [INFO ] [openhab.event.ItemStateChangedEvent  ] - Item 'TRV_Woh_Solltemp_SET' changed from 26.5 °C to 27 °C
...
17:24:25.344 [INFO ] [openhab.event.ItemStateChangedEvent  ] - Item 'TRV_Wohn_Ist_Soll_temp' changed from 26 to 27
...
17:24:25.336 [WARN ] [b.core.thing.binding.BaseThingHandler] - Handler ShellyRelayHandler tried updating the thing status although the handler was already disposed.
17:24:25.356 [WARN ] [b.core.thing.binding.BaseThingHandler] - Handler ShellyRelayHandler tried updating the thing status although the handler was already disposed.

Set temperature has been changed in the TRV !

Now I set the target temperature from 27.0 °C to 26.5 °C in the TRV directly.

This generates the following logs

17:34:23.581 [INFO ] [openhab.event.ItemStateChangedEvent  ] - Item 'TRV_Woh_Solltemp_SET' changed from 27 °C to 26.5 °C
17:34:23.574 [WARN ] [b.core.thing.binding.BaseThingHandler] - Handler ShellyRelayHandler tried updating the thing status although the handler was already disposed.

Set temperature was successfully changed in the item to 26.5 °C.

Result of this test:
Send integers OK
Send half float not OK
Receive integers OK
Receive float numbers OK

There is an error somewhere !

Addendum:
I just specified the set temperature via the HTTP API.

Send URL:
http://<IP-ShellyTRV>/settings/thermostats/0?target_t=29.4

The TRV accepts all numbers via this. Even 1/10 steps.

So I would also say that there is something wrong with the binding.

The ShellyBinding is telling you there is a problem with the Thing. I’d focus on that.

I don’t use these Items so I can’t offer more help with that. There also might be some setting on the Channel that requires the change to be above a certain amount. What happens if you command it from 26.0 °C to 27.5 °C?

But over all, what ever is going wrong at this point is in the binding. I don’t have this device so I’m not going to be of much more help.

I have opened an issue:
https://github.com/openhab/openhab-addons/issues/15695#issue-1924587578

This topic was automatically closed 41 days after the last reply. New replies are no longer allowed.