[ST Edge] Zigbee2MQTT-based drivers for 3,000+ Tuya, Aqara, IKEA, SONOFF and other Zigbee devices

Hi everyone,

I’ve been working on a collection of SmartThings Edge drivers that ports device support from Zigbee2MQTT.

This is an ongoing project and does not cover the full Zigbee2MQTT catalog. The channel currently includes 18 drivers with nearly 4,000 fingerprint entries, and more device families will be added over time.

Driver channel

Supported devices and source code

Support is split across multiple drivers, so please check the GitHub README for your device’s fingerprint and install the driver listed for it.

Current coverage includes selected models from Aqara, Xiaomi, IKEA, Philips, OSRAM, LEDVANCE, Innr, GLEDOPTO, SONOFF, Third Reality, HEIMAN, Schneider Electric, Legrand, Bosch, Frient, Sunricher, and other manufacturers.

It also includes many Tuya-based devices sold under different regional and white-label brands.

Device types currently represented include:

  • Lights, dimmers, switches, relays, and smart plugs
  • Motion, presence, environmental, and safety sensors
  • Covers, thermostats, TRVs, fans, and valves
  • Power and energy meters
  • Buttons, scene switches, remotes, and repeaters

Not every feature exposed by Zigbee2MQTT is available as a SmartThings capability yet. I’m focusing on the main controls and status values first. If there is a missing option or feature you need, please let me know.

Many fingerprints were added from Zigbee2MQTT definitions but have not yet been tested on real SmartThings hardware. If something does not work as expected, please report it with the relevant hub logcat output.

I tested Nedis ZBWS40WT (Manufacturer: _TZ3000_wkai4ga5 Model: TS0044) with this driver. The device worked with this driver.

More info:

During pairing two error messages to logcat log:

2026-07-20T08:48:02.129976699Z WARN ZCL Controls wonjj6768  Unexpected filesystem lookup for capability concertmirror08464.lastPowerResponseTime
2026-07-20T08:48:02.154771365Z ERROR ZCL Controls wonjj6768  ZCL Controls wonjj6768 thread encountered error: [string "st/dispatcher.lua"]:270: Error encountered while processing event for <ZigbeeDevice: --- Device ID removed  --- [0x0B8D] (ZCL Controls wonjj6768)>:
    arg1: init
"[string "zcl_common/metering.lua"]:108: Capability concertmirror08464.lastPowerResponseTime version 1 definition not found"

2026-07-20T08:48:03.058413032Z WARN ZCL Controls wonjj6768  Unexpected filesystem lookup for capability concertmirror08464.lastPowerResponseTime
2026-07-20T08:48:03.111251615Z ERROR ZCL Controls wonjj6768  ZCL Controls wonjj6768 thread encountered error: [string "st/dispatcher.lua"]:270: Error encountered while processing event for <ZigbeeDevice: a047ee12-e96f-4e24-9178-00e45b4b6846 [0x0B8D] (ZCL Controls wonjj6768)>:
    arg1: infoChanged
    arg2: {device_already_existed=true, old_st_store={_provisioning_state="TYPED", child_ids={}, data={}, device_network_id="0B8D", driver={id="e96a3498-0e62-4667-8a9a-a0e6e7cf11b5", name="ZCL Controls wonjj6768", type="FIELD_DEPRECATED"}, execution_environment="HUBCORE", fingerprinted_endpoint_id=1, id="--- Device ID removed  ---", label="ZCL Controls wonjj6768", network_type="DEVICE_ZIGBEE", parent_device_id="--- Device ID removed  ---", preferences={}, profile={components={button2={capabilities={button={id="button", version=1}}, emit_event=function: 0x1a19f50, id="button2"}, button3={capabilities={button={id="button", version=1}}, emit_event=function: 0x1a1bec0, id="button3"}, button4={capabilities={button={id="button", version=1}}, emit_event=function: 0x1a320a0, id="button4"}, main={capabilities={battery={id="battery", version=1}, button={id="button", version=1}, refresh={id="refresh", version=1}}, emit_event=function: 0x1a32100, id="main"}}, id="adb0535d-7572-361e-a9f0-d43c451c2d8e"}, zigbee_endpoints={{client_clusters={25, 10}, device_id=0, id=1, manufacturer="_TZ3000_wkai4ga5", model="TS0044", profile_id=260, server_clusters={0, 1, 6}}, {client_clusters={}, device_id=0, id=2, profile_id=260, server_clusters={1, 6}}, {client_clusters={}, device_id=0, id=3, profile_id=260, server_clusters={1, 6}}, {client_clusters={}, device_id=0, id=4, profile_id=260, server_clusters={1, 6}}}, zigbee_eui="\xF0\x62\xC0\xFF\xFE\x1B\x97\x84"}}
"[string "zcl_common/metering.lua"]:108: Capability concertmirror08464.lastPowerResponseTime version 1 definition not found"

Thank you for testing the driver and sharing the log. It helped me identify the problem, and the issue has now been fixed.

So i have a tds sensor that paired and seems to work with the ef00 sensors driver but the TDS ppm value doesnt seem to populate. I tried under tap water and under my reverse osmosis water, the value never updates and stays at default 0ppm.
I have the DTS1XM9 by excellux.