I have a couple of no-name LED strip controllers bought from Amazon (link). They identify themselves as TS0501B which I believe is a Tuya device.
These controllers work fine using the default “Zigbee Dimmer” DTH except they only respond to every other dimming command. So…if I want to dim the light I have to send the command twice - device always ignores the first one and dims on the second. I’ve no idea why, but have got round it up to now by having a WebCoRE piston which fires on a dimming level change, and resends the same dim level a second time. While a bit of a fudge, this has worked perfectly up to now…but WebCoRE’s days are numbered, so I’m looking for a replacement. I can’t find any equivalent functionality in Routines or SharpTools since they don’t allow you to use a variable within a command (i.e. I can’t say “set dimming level to lamp.level()” like I do in WebCoRE), so any rule would be very clunky.
The obvious answer would seem to be to take the “Zigbee Dimmer” Edge driver and modify it to send every dimming command twice. Is this even possible, and is the driver source available anywhere? Or is there a much simpler answer that I’m missing (other than buy dimmers than work properly!)?
Try one with the edge equivalent and see if the problem still exists? If so see if someone can write a custom Driver with a refire? (also there may be a few places you can look to see what the quirk is with these bulbs to find the exact fix, maybe a timing issue etc. If you have to go the driver route…
You can do this in SharpTools. When setting up a device command in a rule, tap the </> icon to the right of the argument and it lets you pick a variable to insert.
You can even use a Context Variable to pass the value from the device that triggered your rule as a parameter if you’d like.
I would strongly encourage you to test this with your device. If you are triggering based on the level for the device changing and then setting the level of that same device, you run the risk of an infinite loop. If the device only reports the level upon change, you’re fine. But if the device reports a level event every time the setLevel() command is called, it will repeatedly trigger the rule in an infinite loop.
As others have mentioned, it seems like the device could use some love in the form of a special Edge Driver that takes care of this quirky behavior natively.
If one of Mariano’s zigbee drivers works with the device, I wonder if he would be willing to entertain adding an option/preference to send the command twice.
I’ve tried my TS0501B dimmer with the Zigbee Light Multifunction Mc driver and get the same behaviour - they only respond to every other dimming command. Is it possible to change the driver to send dimming commands twice to this device?