[OpenWebNet] Thermoregulation support in openHAB3 ready for testing

:smiley: Working! I can now change the setpoint temperature. As I recall, the 1#1 address was found automatically by the scan but I cannot remember for sure.

Thanks again.

PJG

right, this is the issue causing misconfiguration. An issue has been opened to address this.

Hi all, I have a CU 99 zones, 4 thermostats and a question:

Is it normal that when i switch the CU from Manual to Off, the setpoint temperature is not saved as it happens with each termostat?

Herefater the logs:

2022-12-07 21:28:31.741 [INFO ] [openhab.event.ItemCommandEvent      ] - Item 'iCU_Mode' received command OFF
2022-12-07 21:28:31.744 [INFO ] [penhab.event.ItemStatePredictedEvent] - Item 'iCU_Mode' predicted to become OFF
2022-12-07 21:28:31.749 [INFO ] [openhab.event.ItemStateChangedEvent ] - Item 'iCU_Mode' changed from MANUAL to OFF
2022-12-07 21:28:31.917 [INFO ] [openhab.event.ItemStateChangedEvent ] - Item 'iCU_Temp' changed from 20 Ā°C to 11.5 Ā°C

What happens when you switch it back to MANUAL?
Is the setpointTemperature restored to the original ?

i suppose this is normal behaviour of the cu. when switching at the cu to manual it displays 11,5 degrees. thats the same as when you switch the cu in openhab to manual. then you can globally adjust one temperature that is valid for all zones with setpointTemperature of the cu

but you also can adjust setpointTemperature of each zone, this does not change even if you switch between off and manual (at the zone)

Some tests made from Openhab:

CU Temp set to 20Ā°, hence MANUAL mode triggered:

2022-12-08 22:21:11.767 [INFO ] [openhab.event.ItemCommandEvent      ] - Item 'iCU_Temp' received command 20
2022-12-08 22:21:11.769 [INFO ] [penhab.event.ItemStatePredictedEvent] - Item 'iCU_Temp' predicted to become 20
2022-12-08 22:21:11.787 [INFO ] [openhab.event.ItemStateChangedEvent ] - Item 'iCU_Temp' changed from 11.5 Ā°C to 20 Ā°C
2022-12-08 22:21:11.975 [INFO ] [openhab.event.ItemStateChangedEvent ] - Item 'iCU_Mode' changed from OFF to MANUAL

CU mode set to OFF, setpoint back to 11,5Ā°:

2022-12-08 22:21:32.672 [INFO ] [openhab.event.ItemCommandEvent      ] - Item 'iCU_Mode' received command OFF
2022-12-08 22:21:32.674 [INFO ] [penhab.event.ItemStatePredictedEvent] - Item 'iCU_Mode' predicted to become OFF
2022-12-08 22:21:32.684 [INFO ] [openhab.event.ItemStateChangedEvent ] - Item 'iCU_Mode' changed from MANUAL to OFF
2022-12-08 22:21:32.837 [INFO ] [openhab.event.ItemStateChangedEvent ] - Item 'iCU_Temp' changed from 20 Ā°C to 11.5 Ā°C

CU mode set to Manual, a sample of a zone thermostat changed from saved setpoint 20 to 11,5Ā°:

2022-12-08 22:22:19.930 [INFO ] [openhab.event.ItemCommandEvent      ] - Item 'iCU_Mode' received command MANUAL
2022-12-08 22:22:19.932 [INFO ] [penhab.event.ItemStatePredictedEvent] - Item 'iCU_Mode' predicted to become MANUAL
2022-12-08 22:22:19.936 [INFO ] [openhab.event.ItemStateChangedEvent ] - Item 'iCU_Mode' changed from OFF to MANUAL
2022-12-08 22:22:20.705 [INFO ] [openhab.event.ItemStateChangedEvent ] - Item 'iSogg_Function' changed from GENERIC to HEATING
2022-12-08 22:22:20.707 [INFO ] [openhab.event.ItemStateChangedEvent ] - Item 'iSogg_setMode' changed from OFF to MANUAL
2022-12-08 22:22:20.739 [INFO ] [openhab.event.ItemStateChangedEvent ] - Item 'iSogg_SetpointTemp' changed from 20 Ā°C to 11.5 Ā°C

Iā€™ll try to do some tests also from physical CU and post some updates tomorrow

No the CU as each single thermostart store and provide the previous set point, hereafter a couple of picture taken:

Manual 20Ā°, and after all zones to Off

When i set back to Manual the CU prompth me with 20Ā°

correct, i dont use the funkctions because have underfloor heating and just setup one temp for each room that is working the whole year.

i see that when i switch on the cu to manual then i get prompted 11,5 degrees on the display, so i suppose this is system default.

when i change this for example to 16 degrees, then switch to off (direct at the cu), and then back to manual, i again get prompted the 16 degrees.

when i switch in openhab to off and back to manual it changes to 11,5 degrees.

Correct. 11.5Ā° is the default value (same behaviour also in the MyHomeUp mobile application , now H+C).

In this case 20.0Ā° is the CUā€™s default value (youā€™ll get this also without openhab).

What is confusing is that the manufacturer has chosen two different default values to do the same thing from the CU and from the mobile app. :man_shrugging:

Ciao Andrea,

in any case the behaviour is not dramatic but, to double check Iā€™ve made another test.

From the CU physical interface, if I set the status to OFF and then back to MANUAL, the temperature reported is the previously set one. In the image above, 20 was the previously set temperature. I tested this also with other values and every time the previously set one is shown on the CU screen :stuck_out_tongue:

Openhab logs after switching to MANUAL from the physical CU interface:

2022-12-16 14:27:51.706 [INFO ] [openhab.event.ItemStateChangedEvent ] - Item 'iCU_Mode' changed from MANUAL to OFF
2022-12-16 14:27:51.713 [INFO ] [openhab.event.ItemStateChangedEvent ] - Item 'iCU_Temp' changed from 21 Ā°C to 11.5 Ā°C

Hi everyone! I am a new openhab user and Iā€™m enjoying this openwebnet integration in my new home. I have a 4-zone central thermostat which is not yet supported. Anyone planning to work on it? I can offer my support to work on a solution and Iā€™m also available for testing.

At now I can ā€œreadā€ zone values (temperature, setpoint, thermo function, mode) from all the 4 zones, configured as openwebnet:bus_thermo_zone with address 1, 2, 3 and 4. I cannot ā€œwriteā€ setpoint, function or mode. I also cannot control thermo central since itā€™s address is still 1, and at now openwebnet:bus_thermo_cu only support the 99 zone version with its hardcoded address equals to 0.

off topic question: is there a way to send an arbitrary openwebnet raw command through an openhab script using the openwebnet:bus_gateway?

hi @giacob and welcome to this community.
To understand better your configuration, you should share here how you have configured your bus_thermo_zone things: if you used .things file configuration, just copy here the relevant Thermo part (IMPORTANT: always use code fences!!). If you used WebUI you should copy here the yaml code (you can see it from the webui in the Thing config page, tab ā€œCodeā€)

Hi massi, thank you.

In my home I have 3 N4692 thermo sensors and a 4-zone central N4695, which is also a thermo sensor itself.

In my openhab3 I discovered through webui autodiscovery 3 sensors and the sensor integrated in the 4-zone central. They were all discovered as "standAlone: true". Zone 1 was discovered with where: "1#1".
I moved standAlone to false and where: "1#1" to "1" just for testing purposes: both seems uninfluent.

UID: openwebnet:bus_thermo_zone:2ce781eba6:1
label: Termostato Zona Giorno
thingTypeUID: openwebnet:bus_thermo_zone
configuration:
  where: "1"
  standAlone: false
bridgeUID: openwebnet:bus_gateway:2ce781eba6

UID: openwebnet:bus_thermo_zone:2ce781eba6:2
label: Termostato Camera Letto
thingTypeUID: openwebnet:bus_thermo_zone
configuration:
  where: "2"
  standAlone: false
bridgeUID: openwebnet:bus_gateway:2ce781eba6

UID: openwebnet:bus_thermo_zone:2ce781eba6:3
label: Termostato Camera 2
thingTypeUID: openwebnet:bus_thermo_zone
configuration:
  where: "3"
  standAlone: false
bridgeUID: openwebnet:bus_gateway:2ce781eba6

UID: openwebnet:bus_thermo_zone:2ce781eba6:4
label: Termostato Studio
thingTypeUID: openwebnet:bus_thermo_zone
configuration:
  where: "4"
  standAlone: false
bridgeUID: openwebnet:bus_gateway:2ce781eba6

Then I manually configured thermo central unit with the following thing yml:

UID: openwebnet:bus_thermo_cu:2ce781eba6:673fb25b6a
label: Centrale Termostato
thingTypeUID: openwebnet:bus_thermo_cu
configuration:
  where: "0"
bridgeUID: openwebnet:bus_gateway:2ce781eba6

As I already said, here I cannot change the where value since is validated and at now must be equals to "0".

Hi @giacob !

Iā€™m quite ready with a patch for the binding that handles the 4 zone central unit but I need to clarify something before.

Can you send *#4*#0## command to the bus using OpenWebNet Client and post the output here (Client download - Works with Legrand)?

Also post output of *#4*#1## command, please.

If you need some hints on how to use OWN Client, feel free to ask.

Hi @aconte80!
Here the output you requested:

  • *#4*#0## => Command *#*0##===*#4*#0##=== - No Events Received
  • *#4*#1## => Command *#*0##===*#4*#1##=== - No Events Received

Since I want to better understand, looking at the legrand documentation for thermo functions, it seems *#4*#0## is ā€œCentral unit operation mode request commandā€. You are trying to understand if in our case we should switch from address #0 to #1. is it correct?

According to the outcome, it seems my 4-zone cu is ignoring the request, event if remote control is enabled (I double checked it).

I didnā€™t found any documentation about the 4-zone cu protocol. Iā€™ll do some check with the openwebnet client and let you know.

EDIT:

we are probably looking for *#4*#0#1##, i.e. 4ZoneCU address is #0#1

here some logs:

OFF ā€“ Heating Mode:

Input: *#4*#0#1##
Output:

Event *4*103*#0#1## - OFF ā€“ Heating Mode
Event *4*21*#0#1## - Remote Control Enabled
Event *4*31*#0#1## - Central Unit battery KO
Command *4*103*#0#1##===*#4*#0#1##=== - OFF ā€“ Heating Mode
Command *4*21*#0#1##===*#4*#0#1##=== - Remote Control Enabled
Command *4*31*#0#1##===*#4*#0#1##=== - Central Unit battery KO
Command *#*1##===*#4*#0#1##=== - ACK

Manual-adjustment Mode ā€“ Heating (20degree at Zone1/CU)

Input: *#4*#0#1##
Output:

Event *4*110#0200*#0#1## - Manual mode - Heating at 20Ā°
Event *4*21*#0#1## - Remote Control Enabled
Event *4*31*#0#1## - Central Unit battery KO
Command *4*110#0200*#0#1##===*#4*#0#1##=== - Manual mode - Heating at 20Ā°
Command *4*21*#0#1##===*#4*#0#1##=== - Remote Control Enabled
Command *4*31*#0#1##===*#4*#0#1##=== - Central Unit battery KO
Command *#*1##===*#4*#0#1##=== - ACK
Event *#4*1*12*0200*3## - Zone operation temperature with adjust by
local offset frame: Zone 1 Temp 20Ā°
Event *4*1*1## Zone operation mode acquire frame: Zone1 Heating

Thatā€™s exactly what I need!

4ZoneCU address is #0#1

Somehow it helps us to distinguish between 4 and 99 zones but it complicates handling all commands/events. Iā€™ll came back to you asap with some other requests / tests.

Maybe we can split thermo_zone handler from the thermo_cu handler, if we need to reduce code complexity.

Meanwhile I tried to validate this #0#1 address and it seems everything is fine.

For example if I want to enable manual heating mode with 20.0Ā°, using this client command ā€œ1.6.1 Manual setting of central unit to T temperatureā€: *#4*#0*#14*T*M##, I just send *#4*#0#1*#14*0200*1## and it works. I simply replaced #0 with #0#1 and set T=0200 (20.0Ā°) and M=1 (heating)

The outcome is this:

Just for clarity, I set zone 1 with 0 offset, zone 2 with -1 offset, zone 3 with -2 offset, and zone 4 with -3 offset.

It seems dimension ā€œLocal set offsetā€ is read-only in the protocol, so cannot be fixed. Set Point temperature only works at 4ZoneCU level. You cannot set a different set point temperature on ā€œnon-standaloneā€ zones. Every zone has the same set point temperature. So we can only implement CU level setpoint and mode. Local set offset or off/antifreeze mode can only be handled moving the phisical knob.

Hi @giacob your logs and analysis is very useful!
Me and @aconte80 are reasoning on that and trying to understand how to modify the code to support all configurations including 4-zones.
Stay tuned!