The cloud is supposed to make everything better. You can control things remotely with the help of benevolent corporations and their totally friendly servers. But if you don’t like those servers, maybe you prefer to control your hardware yourself? If so, try following this story. [ouaibe] And their quest to free fans from the crowd.
The problem was the Dreo tower fan. [ouaibe] We realized that while there were already projects out there using Home Assistant to control fans, our real goal here was purely low-level local control. Work began by dismantling the Dreo Android app to determine how it communicated with the fan, eventually discovering a web server on board, but making little progress. The next step was to fully dismantle the unit, where we found multiple PCBs inside, one apparently for wireless communications and another hosting the Sino Wealth microcontroller. A firmware dump followed, followed by reverse engineering the web server, and finally a custom ESPHome integration for full control of the fan.
[ouaibe] Dreo shared instructions on how to decouple its own fans from the cloud, but said the work won’t be extended to other Dreo products anytime soon. Either way, this is a great example of how much work it takes to fully understand and control IoT devices connected to commercial cloud servers. It’s not necessarily easy, but it can be done.