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

[Device Support Request] TS0601_TZE204_edl8pz1k smart heating thermostat #3420

Open
rrmt23 opened this issue Oct 12, 2024 · 3 comments
Open

Comments

@rrmt23
Copy link

rrmt23 commented Oct 12, 2024

Problem description

Please provide support for the device TS0601_TZE204_edl8pz1k
I found something similar zhaquirks/tuya/ts0601_electric_heating.py

Solution description

I found support for this device in z2m, maybe this will make things easier. ( https://www.zigbee2mqtt.io/devices/TS0601_floor_thermostat.html and Koenkk/zigbee2mqtt#22079 )

const exposes = require('zigbee-herdsman-converters/lib/exposes');
const tuya = require('zigbee-herdsman-converters/lib/tuya');
const e = exposes.presets;
const ea = exposes.access;

const definition = {
    fingerprint: tuya.fingerprint('TS0601', ['_TZE200_edl8pz1k', '_TZE204_edl8pz1k']),
    model: 'TS0601_floor_thermostat',
    vendor: 'TuYa',
    description: 'Zigbee thermostat for electric floors',
    fromZigbee: [tuya.fz.datapoints],
    toZigbee: [tuya.tz.datapoints],
    onEvent: tuya.onEventSetTime, // Add this if you are getting no converter for 'commandMcuSyncTime'
    configure: tuya.configureMagicPacket,
    exposes: [
        e.climate()
            .withSystemMode(['off', 'heat'], ea.STATE_SET)
            .withPreset(['manual', 'auto'])
            .withRunningState(['idle', 'heat'], ea.STATE)
            .withSetpoint('current_heating_setpoint', 5, 35, 0.5, ea.STATE_SET)
            .withLocalTemperature(ea.STATE).withDescription('Floor temperature')
            .withLocalTemperatureCalibration(-9, 9, 0.1, ea.STATE_SET).withDescription('Calibration floor temperature sensor'),
        e.deadzone_temperature().withValueMin(0).withValueMax(5).withValueStep(1).withDescription('Floor temperature'),
        e.child_lock(),
        ...tuya.exposes.scheduleAllDays(ea.STATE_SET, 'HH:MM/C HH:MM/C HH:MM/C HH:MM/C'),
    ],
    meta: {
        tuyaDatapoints: [
            [1, 'system_mode', tuya.valueConverterBasic.lookup({'heat': true, 'off': false})],
            [2, 'preset', tuya.valueConverter.tv02Preset()],
            [16, 'current_heating_setpoint', tuya.valueConverter.divideBy10],
            [24, 'device_temperature', tuya.valueConverter.divideBy10],
            [27, 'local_temperature_calibration', tuya.valueConverter.localTempCalibration2],
            [36, 'running_state', tuya.valueConverterBasic.lookup({'heat': tuya.enum(0), 'idle': tuya.enum(1)})],
            [40, 'child_lock', tuya.valueConverter.lockUnlock],
            [102, 'local_temperature', tuya.valueConverter.divideBy10],
            [103, 'deadzone_temperature', tuya.valueConverter.raw],
            [110, 'schedule_monday', tuya.valueConverter.thermostatScheduleDayMultiDP],
            [109, 'schedule_tuesday', tuya.valueConverter.thermostatScheduleDayMultiDP],
            [108, 'schedule_wednesday', tuya.valueConverter.thermostatScheduleDayMultiDP],
            [107, 'schedule_thursday', tuya.valueConverter.thermostatScheduleDayMultiDP],
            [106, 'schedule_friday', tuya.valueConverter.thermostatScheduleDayMultiDP],
            [105, 'schedule_saturday', tuya.valueConverter.thermostatScheduleDayMultiDP],
            [101, 'schedule_sunday', tuya.valueConverter.thermostatScheduleDayMultiDP],
        ],
    },
    whiteLabel: [{vendor: 'ELECTSMART', model: 'EST-120Z'}],
};
module.exports = definition;

Thank you for your respectful and useful work!

Screenshots/Video

Screenshots/Video

[Paste/upload your media here]

Device signature

Device signature
{
  "node_descriptor": {
    "logical_type": 1,
    "complex_descriptor_available": 0,
    "user_descriptor_available": 0,
    "reserved": 0,
    "aps_flags": 0,
    "frequency_band": 8,
    "mac_capability_flags": 142,
    "manufacturer_code": 4417,
    "maximum_buffer_size": 66,
    "maximum_incoming_transfer_size": 66,
    "server_mask": 10752,
    "maximum_outgoing_transfer_size": 66,
    "descriptor_capability_field": 0
  },
  "endpoints": {
    "1": {
      "profile_id": "0x0104",
      "device_type": "0x0051",
      "input_clusters": [
        "0x0000",
        "0x0004",
        "0x0005",
        "0xef00"
      ],
      "output_clusters": [
        "0x000a",
        "0x0019"
      ]
    },
    "242": {
      "profile_id": "0xa1e0",
      "device_type": "0x0061",
      "input_clusters": [],
      "output_clusters": [
        "0x0021"
      ]
    }
  },
  "manufacturer": "_TZE204_edl8pz1k",
  "model": "TS0601",
  "class": "zigpy.device.Device"
}

Diagnostic information

Diagnostic information
[Paste the diagnostic information here]

Logs

Logs
[Paste the logs here]

Custom quirk

Custom quirk
[Paste your custom quirk here]

Additional information

No response

@rrmt23
Copy link
Author

rrmt23 commented Oct 12, 2024

@Kastorsky
May be you can help please?

@rrmt23 rrmt23 changed the title [Device Support Request] TS0601_TZE204_edl8pz1k electroc heater [Device Support Request] TS0601_TZE204_edl8pz1k smart heating thermostat Oct 12, 2024
@Kastorsky
Copy link

hi, what happened?

@rrmt23
Copy link
Author

rrmt23 commented Oct 14, 2024

hi, what happened?

Hi @Kastorsky I saw in the thread Koenkk/zigbee2mqtt#22079 (comment)
you made a converter for z2m. Can I ask you to adapt your code for ZHA?
The device is absolutely the same.

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