Homematic HM-WDS30-OT2-SM - some channels corrupt

I have a Homematic HM-WDS30-OT2-SM outdoor thermal sensor connected to Homeassistant via Homegear. I used it to automate the pump on our pool, one sensor reads the water temperature, the other reads the temperature of the solar heating (so I can activate the pump only when solar heating won’t cool down the water…).

The thermal sensor has 4 different channels which are shown in HA as individual sensors: temperature of sensor 1, temperature of sensor 2, differential temperature 1 - 2, differential temperature 2 - 1

This was working nicely last summer, but unfortunately something has changed in between. Summer is coming so I put up our pool yesterday and reenabled the pool control in HA. The first temperature value is still okay, but all other channels seem to have “peaks” which look like sensor 1 readings:

The bottom line seems to be the real water temperature, the top line seem to be peaks that equal readings of the solar heating temperature.

When I look at Homegear’s logging, the sensor readings seem to be okay, there are no peaks visible. I’m not quite sure where to look next - pyhomematic? Or the HA module?

Has anybody seen something similar and give hint?

Thanks!

I don’t have that device, but to my knowledge nothing in the code has changed that would cause this kind of regression. The only thing I can imagine would be, that all 4 sensors get updated as soon as any of the channels gets a new value. So please check if all for graphs look equal. In that case it would be a bug in the HomeMatic component in Home Assistant that slipped in unintentionally.

Thanks - I’ll try to trace the path of data coming from pyhomematic towards the HA component first.

Short question - is there a way to enable debug logging at runtime? I’d like to see the logging output of the Homematic component, for example this one:

_LOGGER.debug(“Event %s for %s channel %i”, attribute, hmdevice.NAME, channel)

You can set individual log levels in the configuration.yaml file like this:

logger:
  default: warning
  logs:
    pyhomematic: info
    homeassistant.components.homematic: debug
1 Like

That is helpful, thank you! I’ll try that out this weekend.

Okay, this looks wrong:

2019-06-14 19:35:30 DEBUG (Thread-24) [homeassistant.components.homematic] PoolTemperature 2 TEMPERATURE received event 'TEMPERATURE' value: 24.0
2019-06-14 19:35:30 DEBUG (Thread-24) [homeassistant.components.homematic] PoolTemperature 4 TEMPERATURE received event 'TEMPERATURE' value: 24.0
2019-06-14 19:35:30 DEBUG (Thread-24) [homeassistant.components.homematic] PoolTemperature 3 TEMPERATURE received event 'TEMPERATURE' value: 24.0
2019-06-14 19:35:30 DEBUG (Thread-24) [homeassistant.components.homematic] PoolTemperature 1 TEMPERATURE received event 'TEMPERATURE' value: 24.0
2019-06-14 19:35:30 DEBUG (Thread-24) [homeassistant.components.homematic] PoolTemperature 2 TEMPERATURE received event 'LOWBAT' value: False
2019-06-14 19:35:30 DEBUG (Thread-24) [homeassistant.components.homematic] PoolTemperature 4 TEMPERATURE received event 'LOWBAT' value: False
2019-06-14 19:35:30 DEBUG (Thread-24) [homeassistant.components.homematic] PoolTemperature 3 TEMPERATURE received event 'LOWBAT' value: False
2019-06-14 19:35:30 DEBUG (Thread-24) [homeassistant.components.homematic] PoolTemperature 1 TEMPERATURE received event 'LOWBAT' value: False
2019-06-14 19:35:30 DEBUG (Thread-24) [homeassistant.components.homematic] PoolTemperature 2 TEMPERATURE received event 'TEMPERATURE' value: 22.9
2019-06-14 19:35:30 DEBUG (Thread-24) [homeassistant.components.homematic] PoolTemperature 2 TEMPERATURE received event 'LOWBAT' value: False
2019-06-14 19:35:30 DEBUG (Thread-24) [homeassistant.components.homematic] PoolTemperature 3 TEMPERATURE received event 'TEMPERATURE' value: 1.1
2019-06-14 19:35:30 DEBUG (Thread-24) [homeassistant.components.homematic] PoolTemperature 3 TEMPERATURE received event 'LOWBAT' value: False
2019-06-14 19:35:30 DEBUG (Thread-24) [homeassistant.components.homematic] PoolTemperature 4 TEMPERATURE received event 'TEMPERATURE' value: -1.1
2019-06-14 19:35:30 DEBUG (Thread-24) [homeassistant.components.homematic] PoolTemperature 4 TEMPERATURE received event 'LOWBAT' value: False

Looks like the Homematic component receives an update for all channels with temperature of sensor 1. Afterwards the correct updates for the other channels are received…

Here is another one with the additional pyhomematic logging:

2019-06-14 21:10:56 INFO (Thread-24) [pyhomematic.devicetypes.generic] HMGeneric.event: address=OEQ0674126:0, interface_id=homeassistant-homegear, key=RSSI_DEVICE, value=-83
2019-06-14 21:10:56 INFO (Thread-24) [pyhomematic.devicetypes.generic] HMGeneric.event: address=OEQ0674126:0, interface_id=homeassistant-homegear, key=LOWBAT, value=False
2019-06-14 21:10:56 INFO (Thread-24) [pyhomematic.devicetypes.generic] HMGeneric.event: address=OEQ0674126:0, interface_id=homeassistant-homegear, key=LOWBAT, value=False
2019-06-14 21:10:56 INFO (Thread-24) [pyhomematic.devicetypes.generic] HMGeneric.event: address=OEQ0674126:0, interface_id=homeassistant-homegear, key=LOWBAT, value=False
2019-06-14 21:10:56 INFO (Thread-24) [pyhomematic.devicetypes.generic] HMGeneric.event: address=OEQ0674126:0, interface_id=homeassistant-homegear, key=LOWBAT, value=False
2019-06-14 21:10:56 INFO (Thread-24) [pyhomematic.devicetypes.generic] HMGeneric.event: address=OEQ0674126:0, interface_id=homeassistant-homegear, key=LOWBAT, value=False
2019-06-14 21:10:56 INFO (Thread-24) [pyhomematic.devicetypes.generic] HMGeneric.event: address=OEQ0674126:0, interface_id=homeassistant-homegear, key=LOWBAT, value=False
2019-06-14 21:10:56 INFO (Thread-24) [pyhomematic.devicetypes.generic] HMGeneric.event: address=OEQ0674126:0, interface_id=homeassistant-homegear, key=LOWBAT, value=False
2019-06-14 21:10:56 INFO (Thread-24) [pyhomematic.devicetypes.generic] HMGeneric.event: address=OEQ0674126:1, interface_id=homeassistant-homegear, key=TEMPERATURE, value=22.4
2019-06-14 21:10:56 DEBUG (Thread-24) [homeassistant.components.homematic] PoolTemperature 4 TEMPERATURE received event 'TEMPERATURE' value: 22.4
2019-06-14 21:10:56 DEBUG (Thread-24) [homeassistant.components.homematic] PoolTemperature 2 TEMPERATURE received event 'TEMPERATURE' value: 22.4
2019-06-14 21:10:56 DEBUG (Thread-24) [homeassistant.components.homematic] PoolTemperature 1 TEMPERATURE received event 'TEMPERATURE' value: 22.4
2019-06-14 21:10:56 DEBUG (Thread-24) [homeassistant.components.homematic] PoolTemperature 3 TEMPERATURE received event 'TEMPERATURE' value: 22.4
2019-06-14 21:10:56 INFO (Thread-24) [pyhomematic.devicetypes.generic] HMGeneric.event: address=OEQ0674126:1, interface_id=homeassistant-homegear, key=LOWBAT, value=False
2019-06-14 21:10:56 DEBUG (Thread-24) [homeassistant.components.homematic] PoolTemperature 4 TEMPERATURE received event 'LOWBAT' value: False
2019-06-14 21:10:56 DEBUG (Thread-24) [homeassistant.components.homematic] PoolTemperature 2 TEMPERATURE received event 'LOWBAT' value: False
2019-06-14 21:10:56 DEBUG (Thread-24) [homeassistant.components.homematic] PoolTemperature 1 TEMPERATURE received event 'LOWBAT' value: False
2019-06-14 21:10:56 DEBUG (Thread-24) [homeassistant.components.homematic] PoolTemperature 3 TEMPERATURE received event 'LOWBAT' value: False
2019-06-14 21:10:56 INFO (Thread-24) [pyhomematic.devicetypes.generic] HMGeneric.event: address=OEQ0674126:2, interface_id=homeassistant-homegear, key=TEMPERATURE, value=22.8
2019-06-14 21:10:56 DEBUG (Thread-24) [homeassistant.components.homematic] PoolTemperature 2 TEMPERATURE received event 'TEMPERATURE' value: 22.8
2019-06-14 21:10:56 INFO (Thread-24) [pyhomematic.devicetypes.generic] HMGeneric.event: address=OEQ0674126:2, interface_id=homeassistant-homegear, key=LOWBAT, value=False
2019-06-14 21:10:56 DEBUG (Thread-24) [homeassistant.components.homematic] PoolTemperature 2 TEMPERATURE received event 'LOWBAT' value: False
2019-06-14 21:10:56 INFO (Thread-24) [pyhomematic.devicetypes.generic] HMGeneric.event: address=OEQ0674126:3, interface_id=homeassistant-homegear, key=TEMPERATURE, value=-0.4
2019-06-14 21:10:56 DEBUG (Thread-24) [homeassistant.components.homematic] PoolTemperature 3 TEMPERATURE received event 'TEMPERATURE' value: -0.4
2019-06-14 21:10:56 INFO (Thread-24) [pyhomematic.devicetypes.generic] HMGeneric.event: address=OEQ0674126:3, interface_id=homeassistant-homegear, key=LOWBAT, value=False
2019-06-14 21:10:56 DEBUG (Thread-24) [homeassistant.components.homematic] PoolTemperature 3 TEMPERATURE received event 'LOWBAT' value: False
2019-06-14 21:10:56 INFO (Thread-24) [pyhomematic.devicetypes.generic] HMGeneric.event: address=OEQ0674126:4, interface_id=homeassistant-homegear, key=TEMPERATURE, value=0.4
2019-06-14 21:10:56 DEBUG (Thread-24) [homeassistant.components.homematic] PoolTemperature 4 TEMPERATURE received event 'TEMPERATURE' value: 0.4
2019-06-14 21:10:56 INFO (Thread-24) [pyhomematic.devicetypes.generic] HMGeneric.event: address=OEQ0674126:4, interface_id=homeassistant-homegear, key=LOWBAT, value=False
2019-06-14 21:10:56 DEBUG (Thread-24) [homeassistant.components.homematic] PoolTemperature 4 TEMPERATURE received event 'LOWBAT' value: False
2019-06-14 21:10:56 INFO (Thread-24) [pyhomematic.devicetypes.generic] HMGeneric.event: address=OEQ0674126:5, interface_id=homeassistant-homegear, key=LOWBAT, value=False

pyhomematic logs a single temperature event and the Homematic component reports this temperature for all channels.

Ok, that’s a bug. Please open an issue here, along with the logs you have just posted.
This issue may also be related.

Check:

I added a potential fix to the issue - maybe someone likes to take a look … :wink: