[ST Edge] Personal Tuya Devices - Generic EF00 Device

Here are the DP in use:

tuyaDatapoints: [
[36,“running_state”, tuya.valueConverterBasic.lookup({cool: tuya.enum(2),heat: tuya.enum(1),idle: tuya.enum(0),}),],
[1, “system_mode”, tuya.valueConverterBasic.lookup({heat: true, off: false})],
[2, “preset”, tuya.valueConverterBasic.lookup({schedule: tuya.enum(0),manual: tuya.enum(1),}),],
[10, “frost_protection”, tuya.valueConverter.onOff],
[16, “current_heating_setpoint”, tuya.valueConverter.divideBy10],
[24, “local_temperature”, tuya.valueConverter.divideBy10],
[40, “child_lock”, tuya.valueConverter.lockUnlock],
[109, “local_temperature_calibration”, tuya.valueConverter.localTempCalibration3],
[112, “temperature_delta”, tuya.valueConverter.divideBy10],
[31, “working_day”, tuya.valueConverterBasic.lookup({mon_fri: tuya.enum(0),mon_sat: tuya.enum(1),mon_sun: tuya.enum(2),}),],
[67, null, tuya.valueConverter.ZWT198_schedule],
[67, “schedule_weekday”, tuya.valueConverter.ZWT198_schedule],
[68, “schedule_holiday”, tuya.valueConverter.ZWT198_schedule],

​Hi @w35l3y,

​I would like to request a new fingerprint for a Tuya Smoke/CO Detector. It is currently detected as a “Thing” on my hub. Could you please add it to your Personal Tuya Devices driver?

​Here are the technical details from the console:

  • Manufacturer: _TZE284_6ycgarab

  • Model: TS0601

  • Hub: Aeotec Smart Home Hub V3

​Thank you very much for your help!

This driver is generic, you need to go to settings (in you mobile app) and change the profile to smoke sensor.

If needed here are the DP in use:

[1,null,{from: (v: number) => {const lookup = {alarm: tuya.enum(0), none: tuya.enum(1), detecting: tuya.enum(2), unknown: tuya.enum(3)};
const smokeState = Object.entries(lookup).find((i) => i[1].valueOf() === v)[0];
return {smoke: smokeState === “alarm”,smoke_state: smokeState,};},},],
[5, “alarm_volume”, tuya.valueConverterBasic.lookup({low: tuya.enum(0),medium: tuya.enum(1),high: tuya.enum(2),mute: tuya.enum(3),}),],
[15, “battery”, tuya.valueConverter.raw],
[16, “silence”, tuya.valueConverter.raw],
[17, “alarm_switch”, tuya.valueConverter.raw],
[18, “carbon_monoxide”, tuya.valueConverter.trueFalseEnum0],

Hi @dotan_shai,

​I wanted to update you on my progress. Following your advice, I switched the driver to ‘Personal Tuya Devices’ and I’m using the ‘Normal’ profile.

​Here are the steps I’ve completed:

​Set DP 1 for Smoke Detector.

​Set DP 15 for Battery.

​Set DP 16 for Test Mode.

​I noticed that in the ‘Normal’ profile settings, I don’t see a specific field for Carbon Monoxide (DP 18).

​I am currently managing the device remotely, so I’m waiting for the next automatic check-in for the data to fully populate, but the icon has successfully changed and it’s showing as ‘Device tested’ (see attached screenshot).

​Do you have any further advice on how to enable the Carbon Monoxide field or on the configuration in general?

​Thank you again for your essential help!

Hi,
Can you please add the new capability statelessSwitchLevelStep in dimmers profile?
Please :folded_hands:
Thanks…

This is my first post here and I’m already looking for help.

I’m trying to set up a luminance sensor with its driver.

Unfortunately, I can’t find a way to use it purely as a luminance sensor — only in combination with the presence profile.

And unfortunately I haven’t managed to get any lux value displayed at all.

A screenshot of the device will fol

low.

@wonjj6768 has the fingerprint _TZ3000_7y90pany of the device listed in a README in his repository, but I can’t find the driver in his channel.


Edit: here is his other channel. Try the ZCL Sensors wonjj6768 from this channel, @sheysula . And as always: you must delete the device from SmartThings and re-add it, after installing the driver.

Thanks!

Looks really promising at first glance. I’ll give it a try later.And sorry for asking again — I’m still pretty new to all this and some things are still kinda confusing :sweat_smile:Do I need to restart the device after choosing the driver once, or when exactly?

Or should I restart the hub after installing the drivers on it?Thanks for the help!

As I said in my previous comment:

Hi everyone,

I’m currently using the “Personal Tuya Devices - main” Edge driver by w35l3y for my Zemismart 30A heater Zigbee switch and am looking for some help uncovering potential hidden features or settings.

  • Device Details:

    • Model: TS0601

    • Manufacturer Code: _TZE28C1000000_rzdkn5rx

  • Current Driver: Personal Tuya Devices - main

  • Developer: w35l3y

1. Standby Indicator Light: I am looking for a way to disable or change the behavior of the standby indicator light (the small LED that remains lit when the switch is off). Does anyone know if this is a configurable Data Point (DP) for this specific manufacturer code, or if there is a setting I might be missing in the driver?

2. Hidden Features: Is there a way to verify if this switch supports other hidden features, such as electricity/power monitoring? I am curious if there are specific Data Points I should look out for to see if the device is reporting energy data that isn’t currently surfaced in the SmartThings UI.

If there is a “Data Point” table for this specific manufacturer code, or if you can point me to how I can check for unmapped data points, I’d be very grateful for the guidance.

Thanks in advance for any help!

Already answered here:

Why? According to the other integrations, it should work as a simple on/off device with a standard cluster.

It should actually work out of the box with the stock SmartThings Zigbee Switch driver:


Zemismart ZN-LRL1E Zigbee Technical Details

The Zemismart ZN-LRL1E (also marketed as a high-power 20A/30A boiler/water heater switch) is a Tuya-based device that presents itself on the Zigbee network as:

  • Model ID: TS0001
  • Manufacturer: _TZ3000_ubrvwoxv

It is fully supported in Zigbee2MQTT under the standard TS0001 definition (no external converter or custom quirk is required). It is treated identically to other TS0001 1-gang switches.

Endpoints and Clusters (Typical for this device class)

These devices use a very standard, minimal Zigbee implementation:

  • Primary (and usually only) Endpoint: 1
  • Profile ID: 0x0104 (Home Automation)
  • Device Type: Typically 0x0000 (On/Off Output) or 0x0051 (Smart Plug) depending on exact firmware

Key clusters on Endpoint 1:

Cluster ID Name Type Purpose
0x0000 Basic Input Device identification, manufacturer info
0x0003 Identify Input Identification/locating
0x0004 Groups Input Group membership
0x0005 Scenes Input Scene support
0x0006 On/Off Input Main control — state, on/off/toggle, power-on behavior
0x000A Time Input/Output Time synchronization (common on Tuya devices)
0x0019 OTA Output Over-the-air firmware updates (if supported)

No energy monitoring / Metering cluster (0x0702) on this variant (unlike some _TZ3000_... TS0001_power models).

Hi Andrea,

Thanks for laying out the technical details. Looking at the endpoint and cluster info, I completely agree that it should work out of the box.

However, when I paired it using the normal Zigbee Switch driver, that wasn’t my experience at all. It didn’t give me any actual on/off control—it just showed up as a static icon in the app with absolutely no functionality.

That is why I enrolled in the “Personal Tuya Devices - Main” driver by w35l3y. While using that custom driver finally made the on/off button appear in the app, it still didn’t give me any actual control to toggle the switch.

Since I’m still quite new here, is there a specific step, pairing quirk, or a different Edge driver I might be missing to get the On/Off cluster (0x0006) to actually register and work?

Any guidance would be really appreciated!

{
  "deviceId": "f8b1a535-a997-47d7-9d93-ee2b98db2ccf",
  "ownerId": "8e774751-18c5-864d-54de-e146ba0eb0d2",
  "name": "generic-ef00-v1",
  "label": "Water Heater Switch",
  "deviceManufacturerCode": "_TZE28C1000000_rzdkn5rx",
  "manufacturerName": "SmartThingsCommunity",
  "deviceModel": "TS0601",
  "presentationId": "4c74434d-a471-3603-98d8-bdafd41d725d",
  "locationId": "59cb229b-1aab-46d9-afef-e93df24cbdac",
  "roomId": "d70747f1-2084-4d2c-b300-0d4592a1a9fa",
  "components": [
    {
      "id": "main",
      "label": "Switch 1",
      "capabilities": [
        {
          "id": "switch",
          "version": 1,
          "optional": false,
          "status": {
            "switch": {
              "value": "off",
              "timestamp": "2026-06-14T14:12:25.391Z"
            }
          }
        },
        {
          "id": "signalStrength",
          "version": 1,
          "optional": false,
          "status": {
            "rssi": {
              "value": -78,
              "unit": "dBm",
              "timestamp": "2026-06-14T19:58:45.959Z"
            },
            "lqi": {
              "value": 212,
              "timestamp": "2026-06-14T19:58:46.039Z"
            }
          }
        },
        {
          "id": "refresh",
          "version": 1,
          "optional": false,
          "status": {}
        },
        {
          "id": "valleyboard16460.debug",
          "version": 1,
          "optional": false,
          "status": {
            "value": {
              "value": "<table style=\"font-size:0.6em;min-width:100%\"><tbody>\n        <tr><th align=\"left\" style=\"width:35%\">Actual</th><td style=\"width:65%\">_TZE28C1000000_rzdkn5rx</td></tr>\n        <tr><th align=\"left\">Expected</th><td>_TZE200_amp6tsvy</td></tr>\n        <tr><th align=\"left\">Profile</th><td>normal-switch-v1</td></tr>\n        <tr><th align=\"left\">Mode</th><td>Similarity</td></tr>\n        <tr><th align=\"left\">Preferences</th><td>Modified</td></tr>\n        <tr><th align=\"left\">Exposes EF00</th><td>Yes</td></tr>\n        <tr><th align=\"left\">Default DP</th><td>Yes</td></tr>\n        </tbody></table>",
              "timestamp": "2026-06-14T15:37:47.184Z"
            }
          }
        }
      ],
      "categories": [
        {
          "name": "SmartPlug",
          "categoryType": "manufacturer"
        },
        {
          "name": "SmartPlug",
          "categoryType": "user"
        }
      ],
      "optional": false,
      "icon": "oneui/x.com.st.d.dehumidifier"
    }
  ],
  "createTime": "2026-06-14T12:53:42.513Z",
  "healthState": {
    "state": "OFFLINE",
    "lastUpdatedDate": "2026-06-14T20:24:54.375Z"
  },
  "parentDeviceId": "fc012dcd-a824-4dfa-8ad3-b29c25b09aa9",
  "childDevices": [],
  "profile": {
    "id": "d734fbd2-5a59-388e-8786-02ba02c613f5"
  },
  "zigbee": {
    "eui": "A4C138EA2E04B11A",
    "networkId": "C104",
    "driverId": "bc7fd1bc-eb00-4b7f-8977-172acf823508",
    "executingLocally": true,
    "hubId": "fc012dcd-a824-4dfa-8ad3-b29c25b09aa9",
    "provisioningState": "PROVISIONED",
    "fingerprintType": "ZIGBEE_GENERIC",
    "fingerprintId": "GenericEF00"
  },
  "type": "ZIGBEE",
  "vid": "4c74434d-a471-3603-98d8-bdafd41d725d",
  "mnmn": "SmartThingsCommunity",
  "ocfDeviceType": "oic.d.smartplug",
  "restrictionTier": 0,
  "allowed": [
    "w:devices",
    "w:devices:locationId",
    "w:devices:roomId",
    "d:devices",
    "x:devices",
    "r:devices:visible"
  ],
  "executionContext": "LOCAL",
  "relationships": []
}

Does this help?

{
  "deviceId": "f8b1a535-a997-47d7-9d93-ee2b98db2ccf",
  "ownerId": "8e774751-18c5-864d-54de-e146ba0eb0d2",
  "name": "generic-ef00-v1",
  "label": "Water Heater Switch",
  "deviceManufacturerCode": "_TZE28C1000000_rzdkn5rx",
  "manufacturerName": "SmartThingsCommunity",
  "deviceModel": "TS0601",
  "presentationId": "4c74434d-a471-3603-98d8-bdafd41d725d",
  "locationId": "59cb229b-1aab-46d9-afef-e93df24cbdac",
  "roomId": "d70747f1-2084-4d2c-b300-0d4592a1a9fa",
  "components": [
    {
      "id": "main",
      "label": "Switch 1",
      "capabilities": [
        {
          "id": "switch",
          "version": 1,
          "optional": false,
          "status": {
            "switch": {
              "value": "off",
              "timestamp": "2026-06-14T14:12:25.391Z"
            }
          }
        },
        {
          "id": "signalStrength",
          "version": 1,
          "optional": false,
          "status": {
            "rssi": {
              "value": -78,
              "unit": "dBm",
              "timestamp": "2026-06-14T19:58:45.959Z"
            },
            "lqi": {
              "value": 212,
              "timestamp": "2026-06-14T19:58:46.039Z"
            }
          }
        },
        {
          "id": "refresh",
          "version": 1,
          "optional": false,
          "status": {}
        },
        {
          "id": "valleyboard16460.debug",
          "version": 1,
          "optional": false,
          "status": {
            "value": {
              "value": "<table style=\"font-size:0.6em;min-width:100%\"><tbody>\n        <tr><th align=\"left\" style=\"width:35%\">Actual</th><td style=\"width:65%\">_TZE28C1000000_rzdkn5rx</td></tr>\n        <tr><th align=\"left\">Expected</th><td>_TZE200_amp6tsvy</td></tr>\n        <tr><th align=\"left\">Profile</th><td>normal-switch-v1</td></tr>\n        <tr><th align=\"left\">Mode</th><td>Similarity</td></tr>\n        <tr><th align=\"left\">Preferences</th><td>Modified</td></tr>\n        <tr><th align=\"left\">Exposes EF00</th><td>Yes</td></tr>\n        <tr><th align=\"left\">Default DP</th><td>Yes</td></tr>\n        </tbody></table>",
              "timestamp": "2026-06-14T15:37:47.184Z"
            }
          }
        }
      ],
      "categories": [
        {
          "name": "SmartPlug",
          "categoryType": "manufacturer"
        },
        {
          "name": "SmartPlug",
          "categoryType": "user"
        }
      ],
      "optional": false,
      "icon": "oneui/x.com.st.d.dehumidifier"
    }
  ],
  "createTime": "2026-06-14T12:53:42.513Z",
  "healthState": {
    "state": "OFFLINE",
    "lastUpdatedDate": "2026-06-14T20:24:54.375Z"
  },
  "parentDeviceId": "fc012dcd-a824-4dfa-8ad3-b29c25b09aa9",
  "childDevices": [],
  "profile": {
    "id": "d734fbd2-5a59-388e-8786-02ba02c613f5"
  },
  "zigbee": {
    "eui": "A4C138EA2E04B11A",
    "networkId": "C104",
    "driverId": "bc7fd1bc-eb00-4b7f-8977-172acf823508",
    "executingLocally": true,
    "hubId": "fc012dcd-a824-4dfa-8ad3-b29c25b09aa9",
    "provisioningState": "PROVISIONED",
    "fingerprintType": "ZIGBEE_GENERIC",
    "fingerprintId": "GenericEF00"
  },
  "type": "ZIGBEE",
  "vid": "4c74434d-a471-3603-98d8-bdafd41d725d",
  "mnmn": "SmartThingsCommunity",
  "ocfDeviceType": "oic.d.smartplug",
  "restrictionTier": 0,
  "allowed": [
    "w:devices",
    "w:devices:locationId",
    "w:devices:roomId",
    "d:devices",
    "x:devices",
    "r:devices:visible"
  ],
  "executionContext": "LOCAL",
  "relationships": []
}

So… Finally had the time to look into it…

If your device uses the EF00, then the driver is correct, but this might be an issue:

  "healthState": {
    "state": "OFFLINE",
    "lastUpdatedDate": "2026-06-14T20:24:54.375Z"
  },

Why is it offline?

Have you read the whole post (on top of this thread)? This driver has some settings…

On a different note: if you paste different outputs in different threads, it can get a bit confusing. I think I saw a TS0001 (standard cluster) in one of your pastes, but it’s actually a TS0601 (EF00).

Install the Zemismart ZN-LRL1E High-Power Switch driver from this channel.

This is what I found out, but there are so many different models, firmwares that it is still uncertain:

  1. DP 1 = switch
  2. DP 14 = restore / relay status
  3. DP 103 = indicator/on-colour

Preferences:

  - name: relayStatus
    title: Power-on behaviour / relay status
    description: Writes Tuya DP 14 if changed. Use this to test whether the device supports restore behaviour.
    required: false
    preferenceType: enumeration
    definition:
      options:
        noChange: Do not change
        restoreOff: Off after power restore
        restoreOn: On after power restore
        restoreMemory: Restore previous state
      default: noChange
  - name: indicatorOnColor
    title: Indicator colour when on
    description: Writes Tuya DP 103 if changed. Only useful if the device has a visible configurable indicator.
    required: false
    preferenceType: enumeration
    definition:
      options:
        noChange: Do not change
        red: Red
        blue: Blue
        green: Green
        white: White
        yellow: Yellow
        magenta: Magenta
        cyan: Cyan
        option8: Option 8
        option9: Option 9
      default: noChange

Hi Andreas,

Many thanks for this. It seems to work well without having to look for extra settings or adding generic switches.

I was wondering if it is possible to configure the standby LED to be off when the switch is off and red when it is on? With the previous driver, it was white when off and blue when on.

Best regards,

Michael Hadjicosta

(attachments)


Hi Andreas,

I am not sure if this information helps, but I am sending it over anyway.

{
  "deviceId": "2fec90f0-fcf2-47c7-af39-ffce49127b84",
  "ownerId": "8e774751-18c5-864d-54de-e146ba0eb0d2",
  "name": "generic-ef00-v1",
  "label": "Heater Switch",
  "deviceManufacturerCode": "_TZE28C1000000_rzdkn5rx",
  "manufacturerName": "SmartThingsCommunity",
  "deviceModel": "TS0601",
  "presentationId": "2588ea8a-b130-3945-9707-89bd3d348730",
  "locationId": "59cb229b-1aab-46d9-afef-e93df24cbdac",
  "roomId": "a3697c5a-a280-4f41-9561-c964f662f8a3",
  "components": [
    {
      "id": "main",
      "label": "main",
      "capabilities": [
        {
          "id": "switch",
          "version": 1,
          "optional": false,
          "status": {
            "switch": {
              "value": "off",
              "timestamp": "2026-06-17T09:43:41.233Z"
            }
          }
        },
        {
          "id": "refresh",
          "version": 1,
          "optional": false,
          "status": {}
        },
        {
          "id": "healthCheck",
          "version": 1,
          "optional": false,
          "status": {
            "checkInterval": {
              "value": null
            },
            "healthStatus": {
              "value": null
            },
            "DeviceWatch-Enroll": {
              "value": null
            },
            "DeviceWatch-DeviceStatus": {
              "value": null
            }
          }
        }
      ],
      "categories": [
        {
          "name": "Switch",
          "categoryType": "manufacturer"
        },
        {
          "name": "SmartPlug",
          "categoryType": "user"
        }
      ],
      "optional": false,
      "icon": "oneui/oic.d.networking"
    }
  ],
  "createTime": "2026-06-16T17:20:35.907619507Z",
  "healthState": {
    "state": "ONLINE",
    "lastUpdatedDate": "2026-06-17T02:43:52.777Z"
  },
  "parentDeviceId": "fc012dcd-a824-4dfa-8ad3-b29c25b09aa9",
  "childDevices": [],
  "profile": {
    "id": "37111925-d147-335f-89ac-60e1b549f939"
  },
  "zigbee": {
    "eui": "A4C138EA2E04B11A",
    "networkId": "C104",
    "driverId": "dc4c9d46-f921-42c1-9a13-de84792bbcc8",
    "executingLocally": true,
    "hubId": "fc012dcd-a824-4dfa-8ad3-b29c25b09aa9",
    "provisioningState": "DRIVER_SWITCH",
    "fingerprintType": "ZIGBEE_MANUFACTURER",
    "fingerprintId": "ZN-LRL1E TS0601 TZE28C"
  },
  "type": "ZIGBEE",
  "vid": "2588ea8a-b130-3945-9707-89bd3d348730",
  "mnmn": "SmartThingsCommunity",
  "ocfDeviceType": "oic.d.switch",
  "restrictionTier": 0,
  "allowed": [
    "w:devices",
    "w:devices:locationId",
    "w:devices:roomId",
    "d:devices",
    "x:devices",
    "r:devices:visible"
  ],
  "executionContext": "LOCAL",
  "relationships": []
}

Best regards,

Michael Hadjicosta

We are completely off-topic here, because this thread is about a different driver. That’s why it’s always a good idea to start one dedicated thread for one device.

It was white when off and blue when on. But how is it with my driver? I can’t check it because I don’t have the device.


New version: 2026-06-17T10:22:12

  1. DP 15 = indicator / light mode
  2. DP 102 = experimental LED colour datapoint
  3. DP 103 = LED colour datapoint, retained from the known rzdkn5rx converter

Zigbee2MQTT maps DP 103 to on_color, but a related TS0601 switch/OLED converter uses DP 15 for light mode and DP 102/103 for LED colours. So who knows…

Just to explain why this device is a little tricky:

With many Tuya-based Zigbee devices, the model name printed on the box is not always enough to identify the actual hardware. Companies like Zemismart often sell white-label Tuya devices, and the same commercial model can exist in several internal hardware or firmware variants.

So even if two devices are both sold as something like “ZN-LRL1E”, they may not behave identically inside. One batch might use a fairly standard Zigbee switch implementation, while another batch might use a Tuya MCU-based implementation. Both can look the same from the outside, but they speak quite differently to the hub.

That is why the Zigbee identifiers matter so much. In this case, the important parts are not only the marketing name, but values like:

TS0601
_TZE28C1000000_rzdkn5rx

The especially annoying part is that TS0601 is not really a proper model in the normal sense. Tuya uses it for many completely different devices. The real behaviour is hidden behind Tuya “datapoints” - small numbered functions such as “relay on/off”, “power-on behaviour”, or “LED colour”. Those datapoints are not standardized across all Tuya devices.

So we often have to infer things from related devices (TZE284, not your TZE28C), public Zigbee2MQTT converters, logs, and careful testing. For example, we know that one related variant uses datapoint 103 for the “on” indicator colour. That makes it a good candidate here, but we still need to test whether this exact hardware/firmware version uses it in the same way.

In short: this is not like writing a driver for a well-documented Aqara or IKEA Zigbee device. Tuya white-label Zigbee devices are more like the Wild West. Same-looking devices can behave differently depending on the manufacturer string, firmware, MCU, and sometimes apparently whatever parts were available when that production batch was made.

Hi w35l3y, could you please add support for my presence sensor? I’ve been struggling to get it working properly.

​Model: CK-BL702-MWS-01

​Fingerprint: _TZE200_crq3r3la

​Currently, it is detected as a ‘Generic EF00 Device’ and only shows signal strength. It would be a huge help if you could add the fingerprint so I can use the presence detection features. If you could prioritize this, I would be incredibly grateful. Thank you!

Hi Andreas,

I’ve toggled the settings as suggested. I was able to get the “when on” indicator working, but the standby light is always on.

Thanks,

Michael Hadjicosta