Unsupported TARGET_HEATING_COOLING_STATE

Hi all,
on OPENHAB3, there is this problem:

  • [WARN ] [ssories.AbstractHomekitAccessoryImpl] - Unsupported item type for characteristic TARGET_HEATING_COOLING_STATE at accessory ThermoZoneWHERE3_SetpointTemperature. Expected class org.openhab.core.library.items.StringItem, got class org.openhab.core.library.items.NumberItem

How can fix it?
Thanks

The error says that it expects ThermoZoneWHERE3_Setpoint to be a StringItem, not a NumberItem.

Typically a HEATING_COOLING_STATE is something like “cooling”, “heating”, “fan”, “off” and the like. I suspect you have the wrong Homekit tag on this Item.

I have a bTicino 3550 with some thermostat sensor.
i’m using all thermostat tags.

From Frontail i cannot see the WARN in detail.
Any idea?

None of that is relevant.

You’ve applied the homekit = "CurrentHeatingCoolingMode" metadata on an Item that is not a String Item.

You need to use homekit = "TargetTemperature" for the Number Item that represents the target temperature.

Just like the documents say. HomeKit Add-on - System Integrations | openHAB

My bTicino device, send CoolingMode as a Number not String.
Ex: HeatingMode = 2
So, there are any way to change for homekit addon to read Number instead of String?
Where i could change this?

can you share your thing and item configuration for the thermostat?
it’s very strange that coolingmode is a number and not a string.

bticino openWebNet Language have not any string element in request or response.

This is official document for WHO = 4 (Temperature control)

This is my thing

This is my item

On HomeKit i need to view actual temperature, set new target temperature and see the status.
Thanks

What your bTicino device sends on Bus (frames made of digits, # and *) is already translated by the openwebnet binding which maps the values of the official documentation WHO=4 to the values listed for the channels in the binding documentation.
I Think you have errors in your configuration. For example you have two different channels linked to the same temperature item (you should have an item for set temperature and another one for current temperature).
You should also have a item to represent the thermostat status linked to the mode channel (which is a string channel).
I suggest you start again your item configuration, maybe creating items from the channels.
Another way is to start again using .items file configuration and using the example from the binding documentation

i’ve set a thermostat fine on OpenHab.
From sitemap i can read current temperature, set new target and read actuator state.

On Homekit, i see the current temperature, set new target but this generate a WARN.
The follow WARN was made when form iOS i set a new target temperature.

[WARN ] [ssories.AbstractHomekitAccessoryImpl] - Wrong value ON for CurrentHeatingCoolingMode characteristic of the item ThermoZone3Ufficio_actuators. Expected one of following [Off, HeatOn, CoolOn]. Returning OFF.

How can solve this?
Thanks

Hi,
You need to map your modes to the HomeKit supported ones.
You can do this at the code option in HomeKit Metadata. Something like this:

value: Thermostat.CurrentHeatingCoolingMode
config:
  HEAT: Heating
  OFF: Off
value: Thermostat.TargetHeatingCoolingMode
config:
  HEAT: HeatOn
  OFF: Off

Just use your thermostat modes.

now i can command single Thermostat from OH Sitemap and from Homekit, thanks.

BUT… when i change a value with a SetTemperature, Thermostat change the value, but only for minute, then Thermostat return at old value. Old value from Central Unit 3550.

On Central Unit 3550, no change after SetTemperature, how can i fix it?

messages DEBUG for Zone 3 for SetTemperature to 22°:

*#4*3#1*20*0##
*#4*3*0*0240##
*#4*3*0*0240##
*#4*3*12*0220*3##
*4*1*3##

I don’t think this is related to HomeKit.
Afaik the central units are not fully supported.
Pls read here:

And the binding documentation:

Thermo zones management and temperature sensors (probes). NOTE Central Units (4 or 99 zones) are not fully supported yet. See Channels - Thermo for more details.

For my understanding you need to change the setpoint in the central unit too (not only at the thermostat) or it will be overwritten with the old value from the central unit.

I confirm the diagnosis by @dirkdirk : Thermo Central Units in openwebnet binding are not fully supported yet. However work is in progress and also some users report they can already set setpointTemperature correctly with a 99-zone control unit:

I suggest you use that thread to explain in detail your configuration, what you want to do, what does not work for you and maybe post a longer DEBUG log taken from openHAB when you set the new temperature and it gets back to the original value.

1 Like

@massi thanks!

I have a bTicino gateway F454 with 9 zone and a Central Unit 3550.
On OH3 things i see all Zone but not Central Unit, is correct?

From OH3 SiteMap i changed SetTemperature to 22 for my ZONE ThermoZone3Ufficio.
Thermostat work fine, on sitemap i see value changed. Great!
But, If i check the zone on 3550 i see also old value for SetTemperature for this ZONE.

==> /var/log/openhab/events.log <==
2021-10-25 22:55:56.569 [INFO ] [openhab.event.ItemCommandEvent      ] - Item 'ThermoZone3Ufficio_SetpointTemperature' received command 23 °C
2021-10-25 22:55:56.573 [INFO ] [penhab.event.ItemStatePredictedEvent] - Item 'ThermoZone3Ufficio_SetpointTemperature' predicted to become 23 °C
2021-10-25 22:55:56.617 [INFO ] [openhab.event.ItemStateChangedEvent ] - Item 'ThermoZone3Ufficio_SetpointTemperature' changed from 23.5 °C to 23 °C
2021-10-25 22:55:56.688 [INFO ] [openhab.event.ItemStateChangedEvent ] - Item 'ThermoZone3Ufficio_SetpointTemperature' changed from 23 °C to 23.5 °C
2021-10-25 22:55:56.733 [INFO ] [openhab.event.ItemCommandEvent      ] - Item 'ThermoZone3Ufficio_SetpointTemperature' received command 23 °C
2021-10-25 22:55:56.735 [INFO ] [penhab.event.ItemStatePredictedEvent] - Item 'ThermoZone3Ufficio_SetpointTemperature' predicted to become 23 °C
2021-10-25 22:55:56.751 [INFO ] [openhab.event.ItemStateChangedEvent ] - Item 'ThermoZone3Ufficio_SetpointTemperature' changed from 23.5 °C to 23 °C
2021-10-25 22:55:56.912 [INFO ] [openhab.event.ItemCommandEvent      ] - Item 'ThermoZone3Ufficio_SetpointTemperature' received command 22.5 °C
2021-10-25 22:55:56.914 [INFO ] [penhab.event.ItemStatePredictedEvent] - Item 'ThermoZone3Ufficio_SetpointTemperature' predicted to become 22.5 °C
2021-10-25 22:55:56.943 [INFO ] [openhab.event.ItemStateChangedEvent ] - Item 'ThermoZone3Ufficio_SetpointTemperature' changed from 23 °C to 22.5 °C
2021-10-25 22:55:57.373 [INFO ] [openhab.event.ItemCommandEvent      ] - Item 'ThermoZone3Ufficio_SetpointTemperature' received command 22 °C
2021-10-25 22:55:57.374 [INFO ] [penhab.event.ItemStatePredictedEvent] - Item 'ThermoZone3Ufficio_SetpointTemperature' predicted to become 22 °C
2021-10-25 22:55:57.406 [INFO ] [openhab.event.ItemStateChangedEvent ] - Item 'ThermoZone3Ufficio_SetpointTemperature' changed from 22.5 °C to 22 °C
==> /var/log/openhab/openhab.log <==
2021-10-25 22:55:57.549 [DEBUG] [bnet.handler.OpenWebNetBridgeHandler] - ownIdFromMessage(<*#4*3*0*0240##>) --> 4.3
2021-10-25 22:55:57.618 [DEBUG] [bnet.handler.OpenWebNetBridgeHandler] - ownIdFromMessage(<*#4*3*12*0220*3##>) --> 4.3
2021-10-25 22:55:57.628 [DEBUG] [bnet.handler.OpenWebNetBridgeHandler] - ownIdFromMessage(<*4*1*3##>) --> 4.3
2021-10-25 22:56:03.168 [DEBUG] [bnet.handler.OpenWebNetBridgeHandler] - ownIdFromMessage(<*#4*0#1*20*0##>) --> 4.0
2021-10-25 22:56:03.169 [DEBUG] [bnet.handler.OpenWebNetBridgeHandler] - discoverByActivation: msg=<*#4*0#1*20*0##>
2021-10-25 22:56:03.171 [DEBUG] [bnet.handler.OpenWebNetBridgeHandler] - discoverByActivation: no device type detected from msg: <*#4*0#1*20*0##>
2021-10-25 22:56:03.277 [DEBUG] [bnet.handler.OpenWebNetBridgeHandler] - ownIdFromMessage(<*#4*0#4*20*0##>) --> 4.0
2021-10-25 22:56:03.279 [DEBUG] [bnet.handler.OpenWebNetBridgeHandler] - discoverByActivation: msg=<*#4*0#4*20*0##>
2021-10-25 22:56:03.280 [DEBUG] [bnet.handler.OpenWebNetBridgeHandler] - discoverByActivation: no device type detected from msg: <*#4*0#4*20*0##>
2021-10-25 22:56:03.333 [DEBUG] [bnet.handler.OpenWebNetBridgeHandler] - ownIdFromMessage(<*#4*3#1*20*0##>) --> 4.3

After a minute, on log there is the change on old value, i think from Central Unit 3550:

==> /var/log/openhab/openhab.log <==
2021-10-25 22:57:41.902 [DEBUG] [bnet.handler.OpenWebNetBridgeHandler] - ownIdFromMessage(<*#4*2*0*0242##>) --> 4.2
2021-10-25 22:57:42.433 [DEBUG] [bnet.handler.OpenWebNetBridgeHandler] - ownIdFromMessage(<*#4*3*0*0240##>) --> 4.3
2021-10-25 22:57:42.483 [DEBUG] [bnet.handler.OpenWebNetBridgeHandler] - ownIdFromMessage(<*#4*3*12*0240*3##>) --> 4.3
==> /var/log/openhab/events.log <==
2021-10-25 22:57:42.497 [INFO ] [openhab.event.ItemStateChangedEvent ] - Item 'ThermoZone3Ufficio_SetpointTemperature' changed from 22 °C to 24 °C

The goal is to SetTemperature for a single Zone and write the same value on Central Unit for this Zone.
If you need more information, please write to me.
How can i help you?

Thanks!

Thank you Massi for your work and feedback!

@massi i found the problem.

On OH3 i set all my Zone as standAlone: false because i have a 3550 central unit.
When from Sitemap i try to change SetTemperature for Zone 3 to 24°, on logs i see this wrong command

*#4*3*12*0240*3##

instead of correct

*#4*#3*#14*0240*3##

I tried all this command with OpenWebNet Client and it works.
So, who can i fix this?
Thanks

yes @Luca_Ferrarese, probably this is a change needed to support thermo central units.
Maybe @aconte80, who has wrote the current version of the Thermo part, can have a look at your suggestion.
Also I incourage you again to join this other thread which is dedicated to Thermo part testing

@massi you’re right, this is exactly the difference between current implementation of the binding (which only supports standalon probes) and the one - under dev - which is going to support 3550 central.
@Luca_Ferrarese I’m working on it.

Hi, I’ve just published the binding.

You can find more details in this thread, I also invite you to use that thread for feedbacks: