2026 年 6 月 24 日,开启云控吊扇射频破解探索
我们搬进现在的住所后,决定更换卧室那台占据四分之一天花板面积、晃动厉害且拉绳功能不明的吊扇。经搜索,Dreo 的 CLF513S 风扇价格合理、外观美且尺寸正常,是不错选择。过去几年我热衷以 Home Assistant 为核心打造智能家居,想将新风扇接入,但 Dreo 的智能家居集成仅支持云控制,虽有官方 Home Assistant 集成,但因网络中断影响、专有应用广告及外部服务器控制问题,我仍希望找到本地控制方法。
选择本地控制方案
探索本地控制时,发现 `ouaibe` 在 GitHub 的项目,通过固件逆向工程让 ESPHome 在另一款 Dreo 风扇运行。因担心弄坏天花板上的设备,没效仿其方法。风扇本地控制靠遥控器,我决定尝试“万能遥控器”方法,即解码并重新发送指令。该遥控器是射频发射器,为通过 Home Assistant 本地控制,需完成解码指令、构建重发设备、触发重发这三个步骤。
解码指令
解码射频控制方案要搞清载波频率、调制方法和有效负载。我在制造商 FCC 文档中找到载波频率为 433.92 MHz,文档虽提及遥控器用 FSK,但我用 RTL - SDR 搭配 gqrx 捕获频谱数据,验证其使用 ASK(具体是 OOK)。信号类似摩尔斯电码,特定模式重复五次。每个指令结构为单个数据包重复五次,间隔 8.8 毫秒,含 8 个逻辑 0 的前导码、20 位共享同步短语和 13 位唯一有效负载。如风扇开/关按钮有效负载为 `0111110010000`,逻辑位编码为短 OOK 脉冲模式,传输时间有规定。所有解码指令可在项目仓库找到。
重新发送指令
为重发指令,我将 Xiao ESP32 - C6 开发板连接到 RFM69HCW 433 MHz 射频收发器。因解码的数据包结构专有,现有库不支持,我用收发器原始传输模式手动切换数据引脚。重发指令时,微控制器需配置无线电、设为传输模式、按脉冲时间切换引脚、设为睡眠模式。RTL - SDR 有助于调试,解决时间控制和 Wi - Fi 断开问题后,ESP32 能可靠重发指令。
连接到 Home Assistant
用 MQTT 协议从 Home Assistant 触发指令,ESP32 订阅对应主题,用户在 Home Assistant 仪表盘操作时,它会重发指令。因风扇无反馈,ESP32 首次通电设默认状态,发送指令时更新并保存状态。状态不同步时,用遥控器恢复。
总结
为发射器打印小外壳后投入使用,该发射器已在办公室架子放近一年,我和伴侣用 Siri 控制风扇。对复制方法感兴趣可查看项目仓库。