Koenkk / zigbee2mqtt

Zigbee 🐝 to MQTT bridge 🌉, get rid of your proprietary Zigbee bridges 🔨
https://www.zigbee2mqtt.io
GNU General Public License v3.0
12.27k stars 1.69k forks source link

[New device support]: MOES Wall thermostat ZHT-006-GA-WH-MS #16321

Closed guny74 closed 1 year ago

guny74 commented 1 year ago

Link

https://moeshouse.com/collections/smart-thermostat/products/zigbee-smart-thermostat-gas-water-heater-room-thermostat-digital-programmable

Database entry

{"id":3,"type":"Router","ieeeAddr":"0x003c84fffef2da13","nwkAddr":35491,"manufId":4098,"manufName":"_TZE200_aoclfnxz","powerSource":"Mains (single phase)","modelId":"TS0601","epList":[1],"endpoints":{"1":{"profId":260,"epId":1,"devId":81,"inClusterList":[0,4,5,61184],"outClusterList":[25,10],"clusters":{"genBasic":{"attributes":{"modelId":"TS0601","manufacturerName":"_TZE200_aoclfnxz","powerSource":1,"zclVersion":3,"appVersion":72,"stackVersion":0,"hwVersion":1,"dateCode":""}}},"binds":[],"configuredReportings":[],"meta":{}}},"appVersion":72,"stackVersion":0,"hwVersion":1,"dateCode":"","zclVersion":3,"interviewCompleted":true,"meta":{},"lastSeen":1674498767774,"defaultSendRequestWhen":"immediate"}

Comments

After Pairing of this device it would be registered as TS0601 / _TZE200_aoclfnxz (BHT-002-GCLZB), but only a very view function will work.

Status { "current_heating_setpoint": 20, "heat": "OFF", "linkquality": 33, "local_temperature": 21, "running_state": "idle", "system_mode": "heat", "device": { "applicationVersion": 72, "dateCode": "", "friendlyName": "Thermostat AZ", "hardwareVersion": 1, "ieeeAddr": "0x003c84fffef2da13", "manufacturerID": 4098, "manufacturerName": "_TZE200_aoclfnxz", "model": "BHT-002-GCLZB", "networkAddress": 35491, "powerSource": "Mains (single phase)", "stackVersion": 0, "type": "Router", "zclVersion": 3 }, "preset": "hold", "preset_mode": "hold" }

I am sorry, I could not go the normal way with external converter, because z2m say it it a "TS0601 / _TZE200_aoclfnxz" and suported.... or it is a Issue ?

ZHT-006-GC-WH-MS it not listed as supported, so I write this request.

It would be nice to know timely if there ist a change to support it in the next time or to know if I should send it back.

thank you very much

Regards

External converter

No response

Supported color modes

No response

Color temperature range

No response

guny74 commented 1 year ago

Maybe the same as here #16290 , but little different model name !?

guny74 commented 1 year ago

After first pairing a lot of fields are empty in the UI and the MQTT/Status (Json), so the UI does not work for a lot of fields, but after setting the missing fields (corresponding to a BHT-002) via mqtt, the UI and the device seams to work like a BHT-002 including the limitations (e.g. direct setting of "current_heating_setpoint" only with integer - via program it could be 20.5)

Any Idea why the fields are first missing ?

Any idea if there are really the same limitations or is this because of the wrong(?) "recognition" ?

github-actions[bot] commented 1 year ago

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

M450NC commented 1 year ago

Any update on support for 006? Showing as 002 in Z2M and many features not working.

M0DDer commented 1 year ago

I’m also waiting for some modified converter. Same problems.

github-actions[bot] commented 1 year ago

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

alberto1705 commented 1 year ago

Any update? I'm interested to buy a zigbee thermostat, i don't find other thermostat.

github-actions[bot] commented 1 year ago

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

OleksandrChekmez commented 1 year ago

Just purchased Moes BHT-006GAZB and got this error when try to add the device: 45Received message from unsupported device with Zigbee model 'TS0601' and manufacturer name '_TZE204_aoclfnxz' What it the solution for this? I found this converter https://github.com/Koenkk/zigbee2mqtt/issues/17435 but it didn`t work, because it is for another device.

M450NC commented 1 year ago

Threw mine away in the end. Not sure why this hasn't been fixed as there are multiple tickets open since January but never a fix.

v00g100skr commented 1 year ago

const legacy = require('zigbee-herdsman-converters/lib/legacy'); const fz = {...require('zigbee-herdsman-converters/converters/fromZigbee'), legacy: require('zigbee-herdsman-converters/lib/legacy').fromZigbee}; const tz = {...require('zigbee-herdsman-converters/converters/toZigbee'), legacy: require('zigbee-herdsman-converters/lib/legacy').toZigbee}; const exposes = require('zigbee-herdsman-converters/lib/exposes'); const reporting = require('zigbee-herdsman-converters/lib/reporting'); const extend = require('zigbee-herdsman-converters/lib/extend'); const ota = require('zigbee-herdsman-converters/lib/ota'); const tuya = require('zigbee-herdsman-converters/lib/tuya'); const utils = require('zigbee-herdsman-converters/lib/utils'); const globalStore = require('zigbee-herdsman-converters/lib/store'); const e = exposes.presets; const ea = exposes.access;

const exposesLocal = { hour: (name) => exposes.numeric(name, ea.STATE_SET).withUnit('h').withValueMin(0).withValueMax(23), minute: (name) => exposes.numeric(name, ea.STATE_SET).withUnit('m').withValueMin(0).withValueMax(59), program_temperature: (name) => exposes.numeric(name, ea.STATE_SET).withUnit('°C') .withValueMin(5).withValueMax(35).withValueStep(0.5), };

const definition = { zigbeeModel: ['TS0601'], model: 'BHT-006-GCLZB', vendor: 'Moes', description: 'Moes Thermostat', fromZigbee: [fz.legacy.moes_thermostat], toZigbee: [tz.legacy.moes_thermostat_child_lock, tz.legacy.moes_thermostat_current_heating_setpoint, tz.legacy.moes_thermostat_mode, tz.legacy.moes_thermostat_standby, tz.legacy.moes_thermostat_sensor, tz.legacy.moes_thermostat_calibration, tz.legacy.moes_thermostat_deadzone_temperature, tz.legacy.moes_thermostat_max_temperature_limit, tz.legacy.moes_thermostat_min_temperature_limit], exposes: [e.child_lock(), e.deadzone_temperature(), e.max_temperature_limit(), e.min_temperature_limit(), exposes.climate().withSetpoint('current_heating_setpoint', 5, 35, 1, ea.STATE_SET) .withLocalTemperature(ea.STATE).withLocalTemperatureCalibration(-30, 30, 0.1, ea.STATE_SET) .withSystemMode(['off', 'heat'], ea.STATE_SET).withRunningState(['idle', 'heat', 'cool'], ea.STATE) .withPreset(['hold', 'program']), e.temperature_sensor_select(['IN', 'AL', 'OU']), exposes.composite('program', 'program', ea.STATE_SET).withDescription('Time of day and setpoint to use when in program mode') .withFeature(exposesLocal.hour('weekdays_p1_hour')) .withFeature(exposesLocal.minute('weekdays_p1_minute')) .withFeature(exposesLocal.program_temperature('weekdays_p1_temperature')) .withFeature(exposesLocal.hour('weekdays_p2_hour')) .withFeature(exposesLocal.minute('weekdays_p2_minute')) .withFeature(exposesLocal.program_temperature('weekdays_p2_temperature')) .withFeature(exposesLocal.hour('weekdays_p3_hour')) .withFeature(exposesLocal.minute('weekdays_p3_minute')) .withFeature(exposesLocal.program_temperature('weekdays_p3_temperature')) .withFeature(exposesLocal.hour('weekdays_p4_hour')) .withFeature(exposesLocal.minute('weekdays_p4_minute')) .withFeature(exposesLocal.program_temperature('weekdays_p4_temperature')) .withFeature(exposesLocal.hour('saturday_p1_hour')) .withFeature(exposesLocal.minute('saturday_p1_minute')) .withFeature(exposesLocal.program_temperature('saturday_p1_temperature')) .withFeature(exposesLocal.hour('saturday_p2_hour')) .withFeature(exposesLocal.minute('saturday_p2_minute')) .withFeature(exposesLocal.program_temperature('saturday_p2_temperature')) .withFeature(exposesLocal.hour('saturday_p3_hour')) .withFeature(exposesLocal.minute('saturday_p3_minute')) .withFeature(exposesLocal.program_temperature('saturday_p3_temperature')) .withFeature(exposesLocal.hour('saturday_p4_hour')) .withFeature(exposesLocal.minute('saturday_p4_minute')) .withFeature(exposesLocal.program_temperature('saturday_p4_temperature')) .withFeature(exposesLocal.hour('sunday_p1_hour')) .withFeature(exposesLocal.minute('sunday_p1_minute')) .withFeature(exposesLocal.program_temperature('sunday_p1_temperature')) .withFeature(exposesLocal.hour('sunday_p2_hour')) .withFeature(exposesLocal.minute('sunday_p2_minute')) .withFeature(exposesLocal.program_temperature('sunday_p2_temperature')) .withFeature(exposesLocal.hour('sunday_p3_hour')) .withFeature(exposesLocal.minute('sunday_p3_minute')) .withFeature(exposesLocal.program_temperature('sunday_p3_temperature')) .withFeature(exposesLocal.hour('sunday_p4_hour')) .withFeature(exposesLocal.minute('sunday_p4_minute')) .withFeature(exposesLocal.program_temperature('sunday_p4_temperature')), ], onEvent: tuya.onEventSetLocalTime, };

module.exports = definition;

v00g100skr commented 1 year ago

works for me

OleksandrChekmez commented 1 year ago

@v00g100skr worked for me too. Thank you!

darkobg79 commented 1 year ago

Works. Thank you. :)

pssc commented 1 year ago

Does this unit have 6 programmable periods in a day?

M0DDer commented 1 year ago

Pls help me. I have create js file with text in comment Add name of file in external converters in z2m But my device still “_TZE200_aoclfnxz”

EstebanSteffovski commented 1 year ago

Works for me too

guny74 commented 1 year ago

for me it NOT working.... I put the code in an JS fiel an add it as external converter...but on UI all feild are Empty and no apply button is there.... It also still “_TZE200_aoclfnxz”

Nikolay-Ch commented 1 year ago

This worked for me. Thank you!

Nikolay-Ch commented 1 year ago

Pls help me. I have create js file with text in comment Add name of file in external converters in z2m But my device still “_TZE200_aoclfnxz”

Have you added this js-filename to the configuration.yaml file?

Nikolay-Ch commented 1 year ago

@v00g100skr - Thanks, but in HA something works not correct. Heating indicator show power state (not heating state), and power indicator always have off-state.

M0DDer commented 1 year ago

Pls help me too. Also create file js, add it to config. But device still “_TZE200_aoclfnxz”. I’ve also tried to delete and add device again, but without result

v00g100skr commented 1 year ago

guys, i think its not working for TZE200 only for TZE204

v00g100skr commented 1 year ago

but TZE200 is supported in last z2m version

v00g100skr commented 1 year ago

https://t.me/smarthomesell/6790 dont mind for rus lang, just see pictures in comments

EstebanSteffovski commented 1 year ago

it is important to tab correctly `const legacy = require('zigbee-herdsman-converters/lib/legacy'); const fz = {...require('zigbee-herdsman-converters/converters/fromZigbee'), legacy: require('zigbee-herdsman-converters/lib/legacy').fromZigbee}; const tz = {...require('zigbee-herdsman-converters/converters/toZigbee'), legacy: require('zigbee-herdsman-converters/lib/legacy').toZigbee}; const exposes = require('zigbee-herdsman-converters/lib/exposes'); const reporting = require('zigbee-herdsman-converters/lib/reporting'); const extend = require('zigbee-herdsman-converters/lib/extend'); const ota = require('zigbee-herdsman-converters/lib/ota'); const tuya = require('zigbee-herdsman-converters/lib/tuya'); const utils = require('zigbee-herdsman-converters/lib/utils'); const globalStore = require('zigbee-herdsman-converters/lib/store'); const e = exposes.presets; const ea = exposes.access;

const exposesLocal = { hour: (name) => exposes.numeric(name, ea.STATE_SET).withUnit('h').withValueMin(0).withValueMax(23), minute: (name) => exposes.numeric(name, ea.STATE_SET).withUnit('m').withValueMin(0).withValueMax(59), program_temperature: (name) => exposes.numeric(name, ea.STATE_SET).withUnit('°C') .withValueMin(5).withValueMax(35).withValueStep(0.5), };

const definition = { fingerprint: [{modelID: 'TS0601', manufacturerName: '_TZE204_aoclfnxz'}, {modelID: 'TS0601', manufacturerName: '_TZE200_ztvwu4nk'}, {modelID: 'TS0601', manufacturerName: '_TZE204_5toc8efa'}, {modelID: 'TS0601', manufacturerName: '_TZE200_5toc8efa'}, {modelID: 'TS0601', manufacturerName: '_TZE200_ye5jkfsb'}, {modelID: 'TS0601', manufacturerName: '_TZE200_u9bfwha0'}], model: 'BHT-002-GCLZB', vendor: 'Moes', description: 'Moes BHT series Thermostat', fromZigbee: [fz.legacy.moes_thermostat], toZigbee: [tz.legacy.moes_thermostat_child_lock, tz.legacy.moes_thermostat_current_heating_setpoint, tz.legacy.moes_thermostat_mode, tz.legacy.moes_thermostat_standby, tz.legacy.moes_thermostat_sensor, tz.legacy.moes_thermostat_calibration, tz.legacy.moes_thermostat_deadzone_temperature, tz.legacy.moes_thermostat_max_temperature_limit, tz.legacy.moes_thermostat_min_temperature_limit], exposes: [e.child_lock(), e.deadzone_temperature(), e.max_temperature_limit(), e.min_temperature_limit(), exposes.climate().withSetpoint('current_heating_setpoint', 5, 35, 1, ea.STATE_SET) .withLocalTemperature(ea.STATE).withLocalTemperatureCalibration(-30, 30, 0.1, ea.STATE_SET) .withSystemMode(['off', 'heat'], ea.STATE_SET).withRunningState(['idle', 'heat', 'cool'], ea.STATE) .withPreset(['hold', 'program']), e.temperature_sensor_select(['IN', 'AL', 'OU']), exposes.composite('program', 'program', ea.STATE_SET).withDescription('Time of day and setpoint to use when in program mode') .withFeature(exposesLocal.hour('weekdays_p1_hour')) .withFeature(exposesLocal.minute('weekdays_p1_minute')) .withFeature(exposesLocal.program_temperature('weekdays_p1_temperature')) .withFeature(exposesLocal.hour('weekdays_p2_hour')) .withFeature(exposesLocal.minute('weekdays_p2_minute')) .withFeature(exposesLocal.program_temperature('weekdays_p2_temperature')) .withFeature(exposesLocal.hour('weekdays_p3_hour')) .withFeature(exposesLocal.minute('weekdays_p3_minute')) .withFeature(exposesLocal.program_temperature('weekdays_p3_temperature')) .withFeature(exposesLocal.hour('weekdays_p4_hour')) .withFeature(exposesLocal.minute('weekdays_p4_minute')) .withFeature(exposesLocal.program_temperature('weekdays_p4_temperature')) .withFeature(exposesLocal.hour('saturday_p1_hour')) .withFeature(exposesLocal.minute('saturday_p1_minute')) .withFeature(exposesLocal.program_temperature('saturday_p1_temperature')) .withFeature(exposesLocal.hour('saturday_p2_hour')) .withFeature(exposesLocal.minute('saturday_p2_minute')) .withFeature(exposesLocal.program_temperature('saturday_p2_temperature')) .withFeature(exposesLocal.hour('saturday_p3_hour')) .withFeature(exposesLocal.minute('saturday_p3_minute')) .withFeature(exposesLocal.program_temperature('saturday_p3_temperature')) .withFeature(exposesLocal.hour('saturday_p4_hour')) .withFeature(exposesLocal.minute('saturday_p4_minute')) .withFeature(exposesLocal.program_temperature('saturday_p4_temperature')) .withFeature(exposesLocal.hour('sunday_p1_hour')) .withFeature(exposesLocal.minute('sunday_p1_minute')) .withFeature(exposesLocal.program_temperature('sunday_p1_temperature')) .withFeature(exposesLocal.hour('sunday_p2_hour')) .withFeature(exposesLocal.minute('sunday_p2_minute')) .withFeature(exposesLocal.program_temperature('sunday_p2_temperature')) .withFeature(exposesLocal.hour('sunday_p3_hour')) .withFeature(exposesLocal.minute('sunday_p3_minute')) .withFeature(exposesLocal.program_temperature('sunday_p3_temperature')) .withFeature(exposesLocal.hour('sunday_p4_hour')) .withFeature(exposesLocal.minute('sunday_p4_minute')) .withFeature(exposesLocal.program_temperature('sunday_p4_temperature')), ], onEvent: tuya.onEventSetLocalTime, };

module.exports = definition;`

EstebanSteffovski commented 1 year ago

11.pdf

Nikolay-Ch commented 1 year ago

guys, i think its not working for TZE200 only for TZE204

I have 204, but the power indicator is always "off" and the heating indicator shows the power state, not the heating state... The heating status is displayed correctly in the text box

dankarization commented 1 year ago

+1 to the issue because the easiest modification to the list is waiting approval for half a year now :)

Koenkk commented 1 year ago

_TZE204_aoclfnxz should be supported in the dev branch

Changes will be available in the dev branch in a few hours from now. (https://www.zigbee2mqtt.io/advanced/more/switch-to-dev-branch.html)

M0DDer commented 1 year ago

What about _TZE200_aoclfnxz It is model of first message and I’m waiting for something. Just update edge z2m without any result

pssc commented 1 year ago

@v00g100skr I notice this has 4 programmable periods but it billed as having 6 is that a limit of this definition? or the Unit?

v00g100skr commented 1 year ago

i dont need this functional, so i have no idea how it works all this code - just copypaste from different sources in one converter

pssc commented 1 year ago

Can anyone with the unt confirm if the unit does have 6 programmable day periods? if so I will probably get one and look at adding the missing code to make it work...

github-actions[bot] commented 1 year ago

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

guny74 commented 1 year ago

it is important to tab correctly `const legacy = require('zigbee-herdsman-converters/lib/legacy'); const fz = {...require('zigbee-herdsman-converters/converters/fromZigbee'), legacy: require('zigbee-herdsman-converters/lib/legacy').fromZigbee}; const tz = {...require('zigbee-herdsman-converters/converters/toZigbee'), legacy: require('zigbee-herdsman-converters/lib/legacy').toZigbee}; const exposes = require('zigbee-herdsman-converters/lib/exposes'); const reporting = require('zigbee-herdsman-converters/lib/reporting'); const extend = require('zigbee-herdsman-converters/lib/extend'); const ota = require('zigbee-herdsman-converters/lib/ota'); const tuya = require('zigbee-herdsman-converters/lib/tuya'); const utils = require('zigbee-herdsman-converters/lib/utils'); const globalStore = require('zigbee-herdsman-converters/lib/store'); const e = exposes.presets; const ea = exposes.access;

const exposesLocal = { hour: (name) => exposes.numeric(name, ea.STATE_SET).withUnit('h').withValueMin(0).withValueMax(23), minute: (name) => exposes.numeric(name, ea.STATE_SET).withUnit('m').withValueMin(0).withValueMax(59), program_temperature: (name) => exposes.numeric(name, ea.STATE_SET).withUnit('°C') .withValueMin(5).withValueMax(35).withValueStep(0.5), };

const definition = { fingerprint: [{modelID: 'TS0601', manufacturerName: '_TZE204_aoclfnxz'}, {modelID: 'TS0601', manufacturerName: '_TZE200_ztvwu4nk'}, {modelID: 'TS0601', manufacturerName: '_TZE204_5toc8efa'}, {modelID: 'TS0601', manufacturerName: '_TZE200_5toc8efa'}, {modelID: 'TS0601', manufacturerName: '_TZE200_ye5jkfsb'}, {modelID: 'TS0601', manufacturerName: '_TZE200_u9bfwha0'}], model: 'BHT-002-GCLZB', vendor: 'Moes', description: 'Moes BHT series Thermostat', fromZigbee: [fz.legacy.moes_thermostat], toZigbee: [tz.legacy.moes_thermostat_child_lock, tz.legacy.moes_thermostat_current_heating_setpoint, tz.legacy.moes_thermostat_mode, tz.legacy.moes_thermostat_standby, tz.legacy.moes_thermostat_sensor, tz.legacy.moes_thermostat_calibration, tz.legacy.moes_thermostat_deadzone_temperature, tz.legacy.moes_thermostat_max_temperature_limit, tz.legacy.moes_thermostat_min_temperature_limit], exposes: [e.child_lock(), e.deadzone_temperature(), e.max_temperature_limit(), e.min_temperature_limit(), exposes.climate().withSetpoint('current_heating_setpoint', 5, 35, 1, ea.STATE_SET) .withLocalTemperature(ea.STATE).withLocalTemperatureCalibration(-30, 30, 0.1, ea.STATE_SET) .withSystemMode(['off', 'heat'], ea.STATE_SET).withRunningState(['idle', 'heat', 'cool'], ea.STATE) .withPreset(['hold', 'program']), e.temperature_sensor_select(['IN', 'AL', 'OU']), exposes.composite('program', 'program', ea.STATE_SET).withDescription('Time of day and setpoint to use when in program mode') .withFeature(exposesLocal.hour('weekdays_p1_hour')) .withFeature(exposesLocal.minute('weekdays_p1_minute')) .withFeature(exposesLocal.program_temperature('weekdays_p1_temperature')) .withFeature(exposesLocal.hour('weekdays_p2_hour')) .withFeature(exposesLocal.minute('weekdays_p2_minute')) .withFeature(exposesLocal.program_temperature('weekdays_p2_temperature')) .withFeature(exposesLocal.hour('weekdays_p3_hour')) .withFeature(exposesLocal.minute('weekdays_p3_minute')) .withFeature(exposesLocal.program_temperature('weekdays_p3_temperature')) .withFeature(exposesLocal.hour('weekdays_p4_hour')) .withFeature(exposesLocal.minute('weekdays_p4_minute')) .withFeature(exposesLocal.program_temperature('weekdays_p4_temperature')) .withFeature(exposesLocal.hour('saturday_p1_hour')) .withFeature(exposesLocal.minute('saturday_p1_minute')) .withFeature(exposesLocal.program_temperature('saturday_p1_temperature')) .withFeature(exposesLocal.hour('saturday_p2_hour')) .withFeature(exposesLocal.minute('saturday_p2_minute')) .withFeature(exposesLocal.program_temperature('saturday_p2_temperature')) .withFeature(exposesLocal.hour('saturday_p3_hour')) .withFeature(exposesLocal.minute('saturday_p3_minute')) .withFeature(exposesLocal.program_temperature('saturday_p3_temperature')) .withFeature(exposesLocal.hour('saturday_p4_hour')) .withFeature(exposesLocal.minute('saturday_p4_minute')) .withFeature(exposesLocal.program_temperature('saturday_p4_temperature')) .withFeature(exposesLocal.hour('sunday_p1_hour')) .withFeature(exposesLocal.minute('sunday_p1_minute')) .withFeature(exposesLocal.program_temperature('sunday_p1_temperature')) .withFeature(exposesLocal.hour('sunday_p2_hour')) .withFeature(exposesLocal.minute('sunday_p2_minute')) .withFeature(exposesLocal.program_temperature('sunday_p2_temperature')) .withFeature(exposesLocal.hour('sunday_p3_hour')) .withFeature(exposesLocal.minute('sunday_p3_minute')) .withFeature(exposesLocal.program_temperature('sunday_p3_temperature')) .withFeature(exposesLocal.hour('sunday_p4_hour')) .withFeature(exposesLocal.minute('sunday_p4_minute')) .withFeature(exposesLocal.program_temperature('sunday_p4_temperature')), ], onEvent: tuya.onEventSetLocalTime, };

module.exports = definition;`

Using this "i got an error when setting Values over the UI: "No converter available for 'program'....."

How can I fix it ?

image
PulsarFX commented 12 months ago

maybe check #19991 to get this sorted out?

Procsiab commented 6 months ago

@pssc

Can anyone with the unt confirm if the unit does have 6 programmable day periods? if so I will probably get one and look at adding the missing code to make it work...

I got this unit from Moes, they sell it with SKU ZHT-006-GC-WH-MS (it's the variant for gas water boilers)

If I try to navigate the interface I can set 6 different time and setpoint triggers for each of the 7 days of the week.

Using the latest 1.39.0 version of Zigbee2MQTT this device was discovered as

I tried to load the external converter provided here by @v00g100skr (for the latest Z2M version it is required to delete the const extend apparently, as noted here), however I am pretty sure that it is being ignored in favor of the builtin convernter since my custom description is not showing up (I left the rest the same just to test that I could in fact use an external converter with it).

Do you have any advice on how to proceed with the converter? After managing to let Z2M use it I will try to figure out how to expose the remaining controls for the other programs - at this stage Z2M shows only 4 time and setpoints for mon to fri and then other 4 for each weekend day, also I will have to test where are actually mapped on the device those times and setpoints since I don't think they will be applied automagically if the converter is not correct.

Picture of the installed unit