Tasmota Treatlife Fan+Light Controller Wifi Switch DS03 Setup Help?

Some context
I have a metric #$%@ton of these brand of switches around the house, including dimmers and 3-ways that I've managed to get set up through the Tasmota for HE app/driver and have directly (in the case of the single-pole switches) or indirectly (via a virtual switch that interacts to the "relays" in the 3-way via rule machine). Dimmers were a bit of a struggle because they include a separate CPU that controls the device above and beyond just the wifi SoC, like the single-pole switch. Despite that, I managed to find the was to configure those so even those work.

The main point
Which brings me to the main point. These damn fan+light dimmer switches. It is the Treatlife DS03, and I can't for the life of me figure out how to get it to sync up like everything else. The Tasmota app/driver creates two "child" devices, one for the light+dimmer which works perfectly, and another that is seen only as a switch, which turns the fan on and off. But apparently Tasmota, or the driver, or something isn't communicating speed changes.

What I've tried
I've "sort of" managed to get it to work through HTTP GET links and rules. For example, Virtual fan switch is switched to low, send GET to "http://192.168.2.76/cm?cmnd=Power1+On and Send GET to: http://192.168.2.76/cm?cmnd=TuyaSend4+3,1" (I can go into more detail about these if need be; suffice it to say those are the commands to "turn it on" and "set the speed"). That works just fine, the virtual fan switch is updated, the actual fan is running, happy day. But changes at the switch won't update the virtual switch, obviously. But when changes are made to the fan status, the CPU sends serial codes to the Wifi module, which Tasmota can then intercept and operate rules accordingly. So, when the Tasmota gets a serial code for "fan at low", I have a rule send a HTTP link to a "local endpoint" in Hubitat that then processes a rule to update the virtual switch with the new status. Nevermind the issue I'm having where I now have conflicting rules because the Tasmota command updates the virtual switch, which triggers the other rule to change the physical switch condition based on the virtual switch and... yeah. That can be alleviated with boolean variables or rule pause timers or something, so that's relatively negligable.

The Issue
This setup is horrendously unreliable. I've had issues where I turn the fan on at the switch and it immediately turns off again. Remote operation doesn't update the switch at all. Alexa will operate the virtual switch, but never receives a response so after about 30 seconds she says there was no response. Google assistant won't even bother with the virtual fan switch (it keeps dropping the virtual switch when I update the device list, implying it's not compatible anyway), so I haven't even begun to figure that out.

The Question
Has anybody gotten these to work "natively" with the Tasmota driver? I understand that as a wifi device it is going to be a pain to get it to talk to Hubitat anyway, but the other Tasmota devices seem to be doing just fine, so I was wondering if anybody else has one of these and has figured out a configuration combination that has done the trick.

Side Note
I know there was some "falling out" or something with the developer of the Tasmota driver and that he would likely be the most appropriate person to ask about this, but I figured I'd reach out to the community first to see if anybody else has figured this out.

The End
THANK YOU for taking the time to read through my antics. Any help, info, or even comments are appreciated! :slight_smile:

UPDATE
I'm at work now so I can't investigate this, but I'm doing some more reading on the wiki and found a "universal fan control" child driver that I may need to install manually to get this functionality. The HTTPHook Tasmota version seems to be running an older version that doesn't support the enum operators used by the switch to determine fan speeds (Tasmota 9 appears to be implementing this support, but the 8.5 version doesn't; I need to play with this more). Despite this, I think I can finagle something up that uses webhooks like I had before, but instead of relying so heavily on a virtual switch and rule machine, this fan control child driver can now be the device that triggers rule machine commands to the switch for fan speeds.

TL;DR - Did some reading (of the instructions, no less) and found some stuff I'll try when I get off work today. I'll update again in hopes that future-searchers may find this and solve their own issues.

Hey, if you are still looking for a way to get the Treatlife DS03 working with Hubitat, I have created a driver for it here:
https://community.hubitat.com/t/treatlife-fan-and-dimmer-tasmota-httphook-driver/

To get it working, I had to port Markus' HttpHook to Tasmota 9.3.1.1. So you would have to install a firmware I provide.

1 Like

Nice! I got everything working through a Node-Red setup and MQTT stuff, then operating virtual devices on HE.
That's pretty awesome that you went through the process of porting and writing a whole driver. I'll check it out just for the sake of doing so. Thanks for the heads up!

Your driver worked great for me with no issues to date

1 Like

To anyone finding this, I have a chronicled adventure of getting this to sync with hubitat without the use of node-red or mqtt messages. More info here: