Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Support for Eurotronic Comet Zigbee Radiator Thermostat #6870

Open
rigibe opened this issue Jan 9, 2024 · 8 comments
Open

Support for Eurotronic Comet Zigbee Radiator Thermostat #6870

rigibe opened this issue Jan 9, 2024 · 8 comments

Comments

@rigibe
Copy link

rigibe commented Jan 9, 2024

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.

@Koenkk
Copy link
Owner

Koenkk commented Jan 9, 2024

Could you make a PR to update this?

@rigibe
Copy link
Author

rigibe commented Jan 12, 2024

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?

@Koenkk
Copy link
Owner

Koenkk commented Jan 13, 2024

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

@rigibe
Copy link
Author

rigibe commented Jan 13, 2024

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.

@Koenkk
Copy link
Owner

Koenkk commented Jan 13, 2024

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"

@rigibe
Copy link
Author

rigibe commented Jan 13, 2024

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"}}

@Koenkk
Copy link
Owner

Koenkk commented Jan 15, 2024

The dateCode is different, we can differentiate on that.

@rigibe
Copy link
Author

rigibe commented Jan 31, 2024

Here is the PR.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants