Hey all,
Thanks for the patience — I know this thread has been frustrating for a lot of you.
Supporting 330+ Tuya Zigbee devices is genuinely messy. The same manufacturer names can map to completely different product IDs and variants, which means pairing duplicates and wrong drivers still happen. It’s not ideal, and I’m not hiding that.
I can’t physically own every device. I actually had to sell my Homey for personal/financial reasons, so I now rely heavily on your diagnostic codes when something breaks. That’s just the reality of it.
What I’m actively working on right now:
- Cleaning up pairing fingerprints (mfr + productId) so devices land on the right driver
- Fixing crash reports, SOS button issues, and sensor quirks from user feedback
- Keeping Test channel updates coming as often as Athom’s publish process allows
Repository: GitHub - dlnraja/com.tuya.zigbee: new updated version · GitHub
Test version: https://homey.app/a/com.dlnraja.tuya.zigbee/test/
Please always include the Homey diagnostic code + manufacturerName + modelId (TS… / _TZ…) when reporting issues. I’ll keep fixing in code first. Thanks for sticking with this.
Now, I also want to clear up a common misunderstanding about how Homey actually selects the right driver for a Zigbee device.
When you pair a Zigbee device, Homey does NOT rely on what you manually select in the pairing list. Instead, it uses the device’s fingerprint — specifically the manufacturerName and modelId (also called productId) that the device reports during the Zigbee interview process.
Here’s what happens behind the scenes:
- The device joins the network and Homey performs a “Zigbee interview”
- Homey extracts the manufacturerName and modelId from the device
- Homey checks all installed apps to find a driver whose manifest matches those two values
- If a match is found, that driver is applied automatically — regardless of which option you selected during pairing
So even if you pair a Tuya motion sensor by selecting “IKEA light bulb”, Homey will still detect its real fingerprint and pair it as a Tuya device. The user’s selection during pairing is purely for UX flow — it doesn’t override the automatic driver selection.
The REAL challenge with Tuya devices is that many different physical products share the exact same manufacturerName + modelId pair. When that happens, Homey can’t distinguish them automatically. This isn’t a bug in the app — it’s a limitation of how Zigbee device identification works, and it requires smart fallback strategies to handle gracefully.
So how can you actually help improve device support?
The developer has been upfront: with 330+ Tuya Zigbee devices supported, it’s impossible for one person to physically own and test every single variant. That’s why your diagnostic data is absolutely essential.
Here’s the fastest way to get useful data:
Use Homey’s official Zigbee Developer Tools:
Once there:
- Find your device in the Nodes Table
- Click the “Interview” button
- Wait for the interview to complete
- Copy the JSON that appears — it contains the manufacturerName, modelId, and all clusters/attributes
This JSON is exactly what developers need to create or fix a driver. Posting this along with your bug report makes it 10x easier to solve the problem.
If you can’t use the Developer Tools, you can also:
- Enable debug logging in the Universal Tuya app
- Copy the logs showing Zigbee messages (especially cluster 0xEF00 payloads for Tuya devices)
- Share the manufacturerName (e.g., _TZE200_aoclfnxz) and modelId (e.g., TS0601)
Remember: Homey’s driver selection is based ONLY on manufacturerName and modelId. If your device shares these with another product, providing detailed logs is the ONLY way to help distinguish them.
The app already uses a universal fallback approach to map unknown variants into working templates, but it can only improve with your feedback and data.
And finally, regarding the duplication issue that several people have mentioned:
The core problem is that Tuya frequently reuses the same manufacturerName + modelId pair across completely different physical devices. For example, a wall socket, a motion sensor, and a temperature sensor might all report as “_TZE200_abc123 / TS0601”.
Homey has no way to know the difference — it just sees the same fingerprint and applies the first matching driver it finds.
So what are we doing about it?
-
Smart fallback logic: The app can be improved to try multiple compatible drivers and validate actual capabilities after pairing (e.g., checking which clusters respond, which DPIDs send data). This is already being worked on.
-
Community contributions: With a proper CONTRIBUTING.md guide and clear documentation, users who own specific devices can add their device fingerprints and mapping rules directly. This turns the problem into a collaborative effort.
-
Manual override: An option to manually change the driver from the device settings would help users fix misidentified devices without waiting for an app update.
-
Diagnostic reporting: Using the Zigbee Developer Tools interview JSON, users can provide exact cluster and attribute data, making it possible to create precise mapping rules.
The goal isn’t to blame anyone — it’s to work together. With 330+ devices, this is becoming a community-driven project. Every log, every interview JSON, every GitHub issue with proper data gets us closer to a stable experience for everyone.
Thanks again for your patience and contributions. 