A community-driven Homey app that brings local control to Tuya Zigbee devices — no cloud, no internet needed. Covers switches, sensors, lights, thermostats, covers, locks, and more across 412 drivers and 12,694+ device fingerprints.
Key features:
- Local-only — everything runs on your Homey, nothing goes to the cloud
- Hybrid mode — auto-detects whether a device speaks Tuya DP or standard ZCL
- Smart battery — voltage-based fallback when devices don't report percentage
- 4,037+ flow cards — triggers, conditions & actions in EN, FR, NL, DE
- SDK3 — built on the latest Homey platform
| Method | Link |
|---|---|
| Homey App Store | Install from Homey App Store |
| Test Version | Install Test Version |
| GitHub Releases | View Releases |
| Metric | Value |
|---|---|
| App Version | v8.1.17 |
| Device Fingerprints | 12,694+ |
| Unique Product IDs | 566 |
| Drivers | 412 (362 Zigbee + 50 WiFi) |
| Flow Cards | 4,037 |
| Unique Capabilities | 155 |
| SVG Icons | 705 |
| Languages | EN, FR, NL, DE |
| SDK Version | 3 |
| Homey Compatibility | >=12.2.0 |
| Last Updated | 2026-05-30 |
| # | Driver | Fingerprints |
|---|---|---|
| 1 | climate_sensor |
2,121 |
| 2 | switch_1gang |
1,232 |
| 3 | bulb_dimmable |
628 |
| 4 | radiator_valve |
401 |
| 5 | wall_dimmer_tuya |
399 |
| 6 | presence_sensor_radar |
395 |
| 7 | generic_tuya |
356 |
| 8 | curtain_motor |
319 |
| 9 | motion_sensor |
261 |
| 10 | sensor_contact_zigbee |
258 |
| 11 | bulb_rgbw |
235 |
| 12 | dimmer_ts110e |
207 |
| 13 | diy_custom_zigbee |
206 |
| 14 | switch_4gang |
197 |
| 15 | generic_diy |
195 |
| 16 | thermostat_tuya_dp |
195 |
| 17 | switch_2gang |
189 |
| 18 | switch_1_gang |
183 |
| 19 | usb_dongle_triple |
176 |
| 20 | plug_energy_monitor |
160 |
| Class | Count |
|---|---|
| sensor | 122 |
| socket | 113 |
| other | 44 |
| light | 42 |
| thermostat | 25 |
| remote | 18 |
| fan | 16 |
| windowcoverings | 9 |
| lock | 5 |
| doorbell | 4 |
| heater | 4 |
| garagedoor | 3 |
| button | 2 |
| curtain | 2 |
| camera | 1 |
| vacuumcleaner | 1 |
| speaker | 1 |
| Version | Changes |
|---|---|
| vv8_5_30 | [object Object] |
| v9.0.1 | v9.0.0: |
| v9.0.0 | v8.5.54: |
| v8.5.54 | v8.5.53: |
| v8.5.53 | v8.5.52: |
| v8.5.52 | v8.5.51: |
| v8.5.51 | v8.5.50: |
| v8.5.50 | v8.5.49: |
| v8.5.49 | v8.5.48: |
| v8.5.48 | v8.5.47: |
| v8.5.47 | v8.5.46: Fixed 88 empty manufacturerName arrays in driver.compose.json files (DEFINITIVE cleanup), Resolved persisten... |
| v8.5.46 | v8.5.46: . Cleaned 88 empty manufacturer arrays from driver configs. New fingerprints from community sync. Stability ... |
| v8.5.45 | v8.5.45: . Bug fixes: empty manufacturerName arrays removed, button_wireless_4 + illuminance_sensor MFs restored. New... |
| v8.5.44 | v8.5.44: Fixed critical app crash (AggregateError) caused by empty manufacturerName arrays in 75 drivers. Restored 36... |
| v8.5.43 | v8.5.43: . Fixed button_wireless_4 and illuminance_sensor manufacturer fingerprints. Added 114 new fingerprints from ... |
- Tuya DP Protocol (Cluster 0xEF00) - For Tuya-specific devices
- Standard ZCL - For native Zigbee 3.0 devices
- Auto-Detection - Observes device for 15 min, then picks the best protocol
- 8 battery chemistries supported
- 4 calculation algorithms
- Voltage-based fallback when percentage unavailable
- Full kWh, W, V, A support
- Configurable ZCL energy divisors
- Auto-removal of unused energy capabilities after 15 min
- 2000ms timeout-based detection
- Flow triggers for physical button presses per gang
- Deduplication to prevent duplicate triggers
| Category | Examples | Protocol |
|---|---|---|
| Switches (1-8 gang) | Wall switches, smart relays, BSEED, Zemismart | ZCL + Tuya DP |
| Dimmers | Wall dimmers, LED dimmers, rotary knobs | ZCL + Tuya DP |
| Lights | RGB, RGBW, CCT bulbs, LED strips | ZCL |
| Plugs & Sockets | Smart plugs, energy monitors, power strips | ZCL + Tuya DP |
| Sensors | Temp/humidity, motion, contact, water leak, smoke, air quality | ZCL + Tuya DP |
| Presence Radars | mmWave, PIR+radar hybrid, HOBEIAN ZG-204ZM | ZCL + Tuya DP |
| Thermostats & TRVs | Radiator valves, floor heating, AVATTO, Moes | Tuya DP |
| Covers | Curtain motors, roller blinds, garage doors | Tuya DP + ZCL |
| Buttons & Remotes | Scene switches (1-4 button), SOS buttons, rotary | ZCL |
| Locks | Smart door locks, fingerprint locks | Tuya DP |
| Climate | Air purifiers, fans, IR blasters, humidifiers | Tuya DP |
| Water | Valves, tank monitors, garden timers | Tuya DP |
| WiFi Devices | Tuya WiFi switches, plugs, sensors (via cloud API) | WiFi/Cloud |
BSEED, Zemismart, Moes, AVATTO, Lonsonho, HOBEIAN, Lidl/Silvercrest, eWeLink/SONOFF, Girier, Benexmart, Owon, and hundreds more via Tuya OEM fingerprints.
Homey Pro
└─ Tuya Unified Zigbee App (SDK3)
├─ Hybrid Protocol Engine
│ ├─ Tuya DP (Cluster 0xEF00) ─ DP1-DP255 data points
│ └─ Standard ZCL ─ onOff, levelControl, colorControl, etc.
├─ DeviceProfileRegistry (149 profiles)
│ └─ Per-fingerprint: DP mappings, quirks, timing
├─ BatteryManager (8 chemistries, voltage fallback)
├─ PhysicalButtonMixin (2000ms detection)
└─ 412 Drivers ─ 12,694+ fingerprints
| Source | Usage |
|---|---|
| Zigbee2MQTT | Device discovery, DP mappings, manufacturer names |
| Blakadder | Cross-checking rebranded Tuya devices |
| ZHA / zigpy | Device signatures, custom quirks |
| deCONZ | REST plugin device data |
| CSA | Zigbee 3.0 certified products |
| Homey Community Forum | User reports, device interviews |
| JohanBendz Fork | Community contributions |
| Workflow | Schedule | Description |
|---|---|---|
| Daily Everything | Daily 2 AM UTC | Forum + GitHub auto-response with AI |
| Forum Responder | Every 6h | Monitors topics 140352, 26439 |
| GitHub Scanner | Mon/Thu | Issues, PRs, forks analysis |
| Enrichment Scanner | Mon/Thu | Z2M, ZHA, deCONZ, Blakadder sync |
| Sunday Master | Sunday 7 AM | Full triage, fork scan, forum scan |
| Monthly Comprehensive | 1st of month | Deep scan all sources |
| Issue | Affected Devices | Status |
|---|---|---|
| TS0601 Time Sync | LCD climate sensors (TZE284*) | Some firmwares ignore Zigbee time responses |
| Battery 0% | TS0044 buttons (_TZ3000_wkai4ga5) | Reports 0% always - firmware bug |
| Cloud-only devices | Some TS0601 variants | MCU ignores local Zigbee commands |
Re-pairing required after driver updates to apply new mappings.
- Node.js 18+
- Homey CLI:
npm install -g homey
git clone https://github.com/dlnraja/com.tuya.zigbee.git
cd com.tuya.zigbee
npm install
homey app runhomey app build
homey app validate --level publish
homey app run| App Store | Tuya Unified Zigbee |
| Test Version | Install Test |
| Forum | Community Thread |
| Device Finder | Smart Device Finder |
| GitHub | github.com/dlnraja/com.tuya.zigbee |
| Issues | Report a Bug |
My device shows as "unknown Zigbee device"
Your device's fingerprint (manufacturerName + productId) is not yet in the app. Open a GitHub issue with your device interview from Homey Developer Tools.
Device paired but doesn't respond to commands
- Try re-pairing the device (remove and add again)
- Check if it's a Tuya DP device (TS0601) — these need specific DP mappings
- For BSEED/Zemismart: these are ZCL-only, ensure explicit binding is working
Battery always shows 0%
Some devices (e.g., TS0044 _TZ3000_wkai4ga5) have a firmware bug that always reports 0%. The app uses voltage-based fallback when available, but some devices don't report voltage either.
Temperature/humidity values are wrong (divided by 10 or 100)
This is usually a double-division bug. The app auto-detects divisors from Tuya DP values. If values are still wrong after re-pairing, open an issue with your exact manufacturerName.
How to get the test version?
Install from: Test Version — this is auto-promoted from draft builds daily.
- Fork the repository
- Create a feature branch (
git checkout -b feat/my-device) - Validate:
homey app validate --level publish - Submit a pull request with description
- Get a device interview from Homey Developer Tools
- Check Zigbee2MQTT for DP mappings
- Check Blakadder for cross-references
- Open an issue with: manufacturerName, modelId, and interview data
- Go to Settings > Apps > Tuya Unified Zigbee > Send Diagnostics
- Open a bug report with: device model, error messages, and diagnostics code
This app is developed in my free time, powered by passion and coffee!
| Method | Link |
|---|---|
| PayPal | @dlnraja |
| Revolut | Revolut.Me |
100% optional - Your feedback and bug reports are equally valuable!
A massive thank you to the maintainers and contributors of:
- Koenkk and all contributors to Zigbee2MQTT
- blakadder and the Zigbee Device Compatibility Repository
- The zigpy / ZHA / zha-device-handlers maintainers
- The CSA (Connectivity Standards Alliance) for the Zigbee specifications
- All developers and testers who share device logs, diagnostics, and fingerprints
GPL-3.0 - See LICENSE file
| Project | License |
|---|---|
| Zigbee2MQTT | GPL-3.0 |
| ZHA | Apache-2.0 |
| Blakadder | MIT |
| deCONZ | BSD-3-Clause |
Made with love by Dylan Rajasekaram & the Zigbee community
Last updated: 2026-05-30