Using ESPHome with the Treatlife DS03
Fixing Home Assistant discovery with Tasmota on the Treatlife DS03post.
A few months ago, I started to notice some bizarre behavior with the DS03 ceiling fan controllers that I had previously flashed with Tasmota. Very regularly, the devices would crash and reboot! I almost never noticed unless I was explicitly looking at the uptime / boot count graphs for the devices but every once in a while, the device would reboot right as I was trying to control it remotely.
I was able to confirm that the rules I was using to ‘augment’ the Home Assistant auto-discovery payload were the culprit. Odd since nothing had changed; only the version of tasmota has been changing.
While it’s not clear what the issue is, it probably has something to do with RAM exhaustion. The details are in Tasmota issue #15636 if your curious.
The Tasmota rules were a workaround to a broader problem: tasmota offers very little to customize how the entity is advertised to Home Assistant. Since the workaround was no longer working, the next logical step is to re-evaluate if Tasmota is the appropriate firmware for the device.
Using ESPHome with the DS03
I strongly prefer MQTT for my Home Automation interoperability.
The MQTT <-> Home Assistant mechanism in ESPHome has been playing second fiddle to the native ESPHome <-> Home Assistant API as of late so there are more bugs and usability issues. As such, the YAML below depends on a fix for
mqtt.fan component that exists in the 2022.06.b2 or later release.
Specifically, this commit.
If you do not use MQTT for your ESPHome <-> Home Assistant linking, you should be fine using the latest ‘stable’ release of ESPHome.
After migrating the tasmota install to ESPHome, I am happy to report that ESPHome is running on the DS03 and that the full/proper MQTT auto-discovery payload is published. 🥳
Here is a ‘reference’ YAML file that is similar to the ones I use in ‘production’. You will need to add your own MQTT/WiFi… etc configuration.