本帖最后由 XCray 于 2023-8-10 18:45 编辑
前几天忽然感觉有个吸顶灯应该智能化改造一下,手里有多余的sonoff basic模块,但没有多余的无线开关了,加之装修时没有预留零线,于是借机尝试了esphome提供的类似“凌动”的功能。实际用下来,效果还算不错。
- 把sonoff模块接到灯的前面,然后在原有开关上加装弹簧实现自回弹。这没啥好说的。
- esphome关键配置如下:
- esphome部分, esp8266_restore_from_flash: true #必须
- wifi部分,fast_connect: true #加快连接,强烈建议
- light/switch部分,restore_mode: RESTORE_INVERTED_DEFAULT_OFF #必须
论坛代码存在严重bug,重新编辑帖子会造成嵌入的代码部分丢失!
除了必须的 esp8266_restore_from_flash: true 和 restore_mode: RESTORE_INVERTED_DEFAULT_OFF(这里官方文档有个小错误),其他考虑如下:
因为按动开关时sonoff模块要断电,所以要尽量缩短启动和wifi连接时间,所以:
- 去除了所有非必要组件!
- wifi增加fast_connect: true
- 使用静态IP进一步加速连接过程
- logger禁用串口且提高日志级别
- 禁用reboot_timeout,避免因HA升级时间较长造成误操作。其实每次操作都是重启,已经可以很好的规避堆栈错误,故而可以禁用这个。
- 实际使用效果
开关灯的时候开关要稍微多按一会儿,大概0.5~1秒的时间;按的时间太短的话由于模块电路中电容的影响可能没有掉电从而不会动作;
基本消除了断电造成的HA中模块失联的告警;
- 结论
可能效果上不如所谓的“凌动”专利产品,但基本上达到了实用的程度。推荐单火且没有专用无线开关、又想利用原有开关的情况下使用。
- 原理就是每次动作在flash存储状态、每次上电开机根据上次存储的状态做个反转
|