eclipse-archived / smarthome

Eclipse SmartHome™ project
https://www.eclipse.org/smarthome/
Eclipse Public License 2.0
863 stars 783 forks source link

[homematic] HM-CC-RT-DN Temperature Offset not working #5788

Open mdicke2s opened 6 years ago

mdicke2s commented 6 years ago

From @Nugman on December 24, 2017 23:49

Expected Behavior

When saving the Thing configuration of a HM-CC-RT-DN heating valve, I expect that the values are saved to the device.

Current Behavior

When trying to configure the Temperature Offset, the configuration shows -3.5K, no matter what value I have selected.

Steps to Reproduce (for Bugs)

  1. Edit HM-CC-RT-DN Thing in PaperUI
  2. Set "Temperature Offset" to e.g. 1.0K
  3. Save the Thing configuration
  4. Check the configuration by entering the Thing Editor again
  5. "Temperature Offset" reads "-3,5K"

When I use the Homegear RPC server with the HomeMatic Configuration Software provided by EQ3, I'm able to configure the Temperature Offset properly. So I assume the error is in the OpenHab Binding and not in Homegear.

Context

I tried to configure my heating valves, so that the temperatures it measures match the real temperature of the room. Usually the temperatures directly at the radiator are a little warmer than the rest of the room, so in order to reach the desired temperature an offset is necessary.

Your Environment

Copied from original issue: openhab/openhab2-addons#3026

mdicke2s commented 6 years ago

From @MHerbst on December 25, 2017 9:5

I have tried to reproduce it but I have got a CCU and in this case I don't see this property in the thing configuration.

Can you enable Debug mode for the Homematic binding and attach the output? Mabe the problem has to do with "," and ".". In the CCU all decimal values are shown with decimal points. "-3.5" is the smallest allowed value.

mdicke2s commented 6 years ago

From @Nugman on December 25, 2017 13:33

Thanks for the quick response. I activated the DEBUG log for org.openhab.binding.homematic, but the log shows nothing suspicious:

`2017-12-25 14:15:36.723 [DEBUG] [ommunicator.AbstractHomematicGateway] - Sending datapoint 'OEQ0240018:M_0#TEMPERATURE_OFFSET' with value '1.5K' to gateway with id 'f85 68d2b' 2017-12-25 14:15:36.733 [DEBUG] [ommunicator.AbstractHomematicGateway] - Received new (Boolean) value 'true' for 'OEQ0240018:0#CONFIG_PENDING' from gateway with id 'f85 68d2b'

[...]

2017-12-25 14:22:33.704 [DEBUG] [ommunicator.AbstractHomematicGateway] - Sending datapoint 'OEQ0240018:M_0#TEMPERATURE_OFFSET' with value '0.0K' to gateway with id 'f8568d2b' 2017-12-25 14:22:33.715 [DEBUG] [ommunicator.AbstractHomematicGateway] - Received new (Boolean) value 'true' for 'OEQ0240018:0#CONFIG_PENDING' from gateway with id 'f8568d2b'`

After each try the offset was set to -3.5K in the Thing configuration. Anything special I should look for in the logs?

mdicke2s commented 6 years ago

From @Nugman on December 25, 2017 13:48

Since changing the settings works using the Homematic Configuration Software from EQ3 via Homegear, I activated the DEBUG logs für Homegear and found something:

This is the log output when I try to set the TEMPERATURE_OFFSET to 1.0K using OpenHAB: 12/25/17 14:40:39.683 Module HomeMatic BidCoS: Info: Parameter TEMPERATURE_OFFSET of peer 5 and channel 0 was set to 0x00. 12/25/17 14:40:39.684 Module HomeMatic BidCoS: HM-MOD-RPI-PCB "My-HM-MOD-RPI-PCB": Info: Sending (My-HM-MOD-RPI-PCB): 10C9A001FDC24656844600050000000000 12/25/17 14:40:40.674 Module HomeMatic BidCoS: HM-MOD-RPI-PCB "My-HM-MOD-RPI-PCB": Info: No answer to packet 10C9A001FDC24656844600050000000000

This is the log output when I do the same in the EQ3 software: 12/25/17 14:41:07.203 Module HomeMatic BidCoS: Info: Parameter TEMPERATURE_OFFSET of peer 5 and channel 0 was set to 0x09.

So it seems, that OpenHAB is sending a 0x00 when the Homematic Configurator sends a 0x09. Is that something you can work with?

mdicke2s commented 6 years ago

From @MHerbst on December 26, 2017 15:23

It seems that the OFFSET sent to Homegeara a special encoding. If an offset of +1 K is sent as 0x09 then 0K is probably encoded 0x08 and 0x00 means -3.5 K (which is the smallest possible value).

@gerrieg can you look at it?

mdicke2s commented 6 years ago

From @Nugman on December 26, 2017 20:41

I checked the different settings in the logfile of homegear and found that the mappings for TEMPERATURE_OFFSET are as follows: -3,5K = 0x00 -3,0K = 0x01 -2,5K = 0x02 -2,0K = 0x03 -1,5K = 0x04 -1,0K = 0x05 -0,5K = 0x06 0,0K = 0x07 0,5K = 0x08 1,0K = 0x09 1,5K = 0x0A 2,0K = 0x0B 2,5K = 0x0C 3,0K = 0x0D 3,5K = 0x0E

mdicke2s commented 6 years ago

From @gerrieg on June 11, 2018 14:3

This is a very special case. Thank you @Nugman for providing the mapping table. This is very useful, we can implement it in one of the 2.4 snapshots.