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

Cloud Even Thermostatic Radiator Valve #4844

Merged
merged 10 commits into from
Nov 13, 2022
Merged

Cloud Even Thermostatic Radiator Valve #4844

merged 10 commits into from
Nov 13, 2022

Conversation

kovvik
Copy link
Contributor

@kovvik kovvik commented Oct 28, 2022

add support for Cloud Even TRV

@Koenkk
Copy link
Owner

Koenkk commented Oct 29, 2022

Can this be merged with one of the already supported TuYa thermostats? (e.g.

model: 'TS0601_thermostat',
)

@kovvik
Copy link
Contributor Author

kovvik commented Nov 1, 2022

The closest match would be this:

fingerprint: [{modelID: 'dpplnsn\u0000', manufacturerName: '_TYST11_2dpplnsn'},

Even the actual hardware looks like the same as the HT-10 but some data points are different (localTemp, heatingSetpoint, errorStatus) and some of them are not implemented in etop_thermostat (ex: temp calibration):

I would like to implement all of the features the TRV has. There are some datapoints that I still have to reverse engineer.

@Koenkk
Copy link
Owner

Koenkk commented Nov 1, 2022

Then lets keep it separate, can you refactor the code to use the new format? This reduces code size and makes it better maintainable. You can use this TuYa thermostat as an example:

model: 'TV02-Zigbee',

@kovvik
Copy link
Contributor Author

kovvik commented Nov 9, 2022

I've done the refactoring. Is the scheduling setup ok for you?

@Koenkk
Copy link
Owner

Koenkk commented Nov 10, 2022

@kovvik could we use the same schedule expose as

exposes.composite('schedule', 'schedule').withFeature(exposes.enum('week_day', ea.SET, ['monday', 'tuesday',
?

The way it works is the in the frontend -> device -> exposes there is one schedule field where you can set the schedule for all the days.

Would be even greater if we could also re-use

[106, 'schedule', tuya.valueConverter.thermostatScheduleDay],
but I'm not sure if the format for this thermostat is the same.

@kovvik
Copy link
Contributor Author

kovvik commented Nov 11, 2022

Yes, I checked that. That assumes that there is a dedicated dp that I can send a schedule for any day (dp 100 for the TV02). But this TRV has no such dp, all schedules should be sent to its own data point (101-107).
The thermostatScheduleDay cannot be used either because this TRV uses different format.

@Koenkk
Copy link
Owner

Koenkk commented Nov 12, 2022

I've merged this into tuya.js and shared some code with the TV02.

  • Can you do a final check?
  • Especially check the description of the frost_protection expose.

lib/tuya.js Outdated
@@ -1244,6 +1249,7 @@ const valueConverterBasic = {
const valueConverter = {
trueFalse: valueConverterBasic.lookup({1: true, 0: false}),
onOff: valueConverterBasic.lookup({'ON': true, 'OFF': false}),
systemMode: valueConverterBasic.lookup({'heat': false, 'off': true}),
Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The values are the opposite here, sorry it was my mistake in the original file

Suggested change
systemMode: valueConverterBasic.lookup({'heat': false, 'off': true}),
systemMode: valueConverterBasic.lookup({'heat': true, 'off': false}),

lib/tuya.js Outdated
@@ -1165,6 +1165,11 @@ const tuyaExposes = {
.withDescription('Result of the self-test'),
faultAlarm: () => exposes.binary('fault_alarm', ea.STATE, true, false).withDescription('Indicates whether a fault was detected'),
silence: () => exposes.binary('silence', ea.STATE_SET, true, false).withDescription('Silence the alarm'),
frostProtection: () => exposes.binary('frost_protection', ea.STATE_SET, 'ON', 'OFF').withDescription('When Anti-Freezing function'+
' is activated, the temperature in the house is kept at 8 °C, the device display "AF". Press the pair button to cancel.'),
Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The CloudEven TRV has no frost protection indication on its display. It can be checked and set in the service menu of the device.

Suggested change
' is activated, the temperature in the house is kept at 8 °C, the device display "AF". Press the pair button to cancel.'),
' is activated, the temperature in the house is kept at 8 °C.'),

@Koenkk Koenkk merged commit 5bfa7b0 into Koenkk:master Nov 13, 2022
@Koenkk
Copy link
Owner

Koenkk commented Nov 13, 2022

Fixed the issues, thanks!

Mephistofeles pushed a commit to Mephistofeles/zigbee-herdsman-converters that referenced this pull request Dec 13, 2022
* Cloud Even Thermostatic Radiator Valve

* CloudEven _TZE200_0hg58wyk trv

* Update tuya.js

* Update tuya.js

* Update tuya.js

* Delete cloudeven.js

* Update index.test.js

* Update tuya.js

* Update tuya.js

Co-authored-by: Koen Kanters <koenkanters94@gmail.com>
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

Successfully merging this pull request may close these issues.

None yet

2 participants