Koenkk/zigbee-herdsman-converters

Support for Eurotronic Comet Zigbee Radiator Thermostat

rigibe opened this issue · 9 comments

I have installed a couple of Eurotronic Comet Zigbee Radiator Thermostats.
This model should have replaced the older Eurotronic Spirit Thermostat.
Z2M recognises the new Comet as Spirit and almost everything works except:

  1. The min temperature is 8° C
  2. The max temperature is 28° C
  3. The open window flag is reported at position 5 instead of position 4.

According to the manual the model ID should be COZBXXX, but it is still recognised as SPZB0001 (Older Spirit Model).
Therefore, how can I differenciate it from the older model in the eurotronic.ts file?

image

Moreover, the converter should be changed as follows:
result.window_open = (msg.data[0x4008] & (1 << 5) || msg.data[0x4008] & (1 << 4)) != 0;
This should work for both models.

Could you make a PR to update this?

Yes, I could change the code and make a PR as soon as I have a moment.

Regarding the min and max temps, as the zigbeeModel is identical to the old valve (as well as other attributes) I would set it dinamically by checking the minHeatSetpointLimit and maxHeatSetpointLimit.

exposes: (device, options) => {
min_occupied_heating_setpoint = (device?.getEndpoint(1).getClusterAttributeValue('hvacThermostat', 'minHeatSetpointLimit'));
// if min is 750 use 8 otherwise use the value for the old model
min_occupied_heating_setpoint = (min_occupied_heating_setpoint === 750) ? 8 : 5;
max_occupied_heating_setpoint = (device?.getEndpoint(1).getClusterAttributeValue('hvacThermostat', 'maxHeatSetpointLimit'));
// if max is 2850 use 28 otherwise use the value for the old model
max_occupied_heating_setpoint = (max_occupied_heating_setpoint === 2850) ? 28 : 30;
return [e.battery(), e.climate().withSetpoint('occupied_heating_setpoint', min_occupied_heating_setpoint, max_occupied_heating_setpoint, 0.5).withLocalTemperature()              
...

What do you think?

is the firmware build date/firmware version also the same?

That's a good question. I don't have the old model to check. According to this post the Spirit has different build dates. But what about SW updates? It is subject to change.

Could you provide the data/database.db entry of your device? Maybe the hwVersion differs?

Grabbed this from Koenkk/zigbee2mqtt#4571 (old model)

"appVersion":18,"stackVersion":5,"hwVersion":34,"dateCode":"20190408","swBuildId":"18181120",
"appVersion":22,"stackVersion":5,"hwVersion":35,"dateCode":"20191014","swBuildId":"22190930",
"appVersion":18,"stackVersion":5,"hwVersion":34,"dateCode":"20190408","swBuildId":"18181120"

This is what I have:

"modelId":"SPZB0001",
"manufacturerName":"Eurotronic",
"powerSource":3,
"zclVersion":8,
"appVersion":1,
"stackVersion":4,
"hwVersion":34,
"dateCode":"20221110",
"swBuildId":"001f0140\u0000\u0004\u0000�\u0002\u0000�\u0000\u0000�\u0003\u0002\u0000s\u0015�\u0000\u0000\u0000\u0000\u0000�\u0006\u0001\u0000��\u001d+6���\u0002\u0000\u0005"}}

The dateCode is different, we can differentiate on that.

Here is the PR.

This issue is stale because it has been open 180 days with no activity. Remove stale label or comment or this will be closed in 30 days