
APP 停服的智能插座,刷个固件救活
APP 停服的智能插座,刷个固件救活
先看看你家有没有这种设备:运营商送的智能插座,厂商 APP 停服了,插座本身好好的——继电器能吸合能断开,就是没人管它了。一块标准的"云僵尸"硬件。
中移铁通的 CMPOWER W1 就是典型:ESP8266 内核、两个继电器、四组 LED、一个实体按键。原作者干的事很干脆:官方 APP 没了?那就重写一版固件,把这块硬件救活——MQTT 协议控制,任何客户端能连,开源可刷。
死因和救法
原厂方案的死法都一样:设备 → 厂商云 → APP。厂商弃坑,云没了,设备变砖——哪怕硬件百分之百健康。
救法就是把中间那朵云换成自己可控的 MQTT Broker:
配网用乐鑫标准 EspTouch(手机把 WiFi 密码通过 UDP 广播"发"给设备),Broker 默认公共的 broker.emqx.io,也可以一行配置换成自己的。设备从此不依赖任何一家公司的服务器活命。
三个"小而正"的设计,值得偷
这个项目小,但几处设计放在商业固件里也是规范做法:
配网数据一鱼两吃。 EspTouch 配网时那段自定义字符串,格式是 "broker url":"user string"——一次传输同时告诉设备连哪个 broker、定下这个设备专属的主题前缀。为什么前缀重要?公共 broker 上所有人共处一个命名空间,都订阅 /Slaven/set 的话你的插座可能在别人控制范围里。
三个主题,方向分明。 set 管控制(进)、get 管查询(进)、status 管上报(出)——设备状态永远只从 status 出去,指令和回执分道走。APP 端只需要订一个主题就能拿到所有状态。
LED 状态机各管一摊。 蓝灯只管配网(闪烁未配网、常亮连上 WiFi、灭即就绪),红灯只管连接(亮断连、灭回连),白灯和按键灯对应继电器。排障时不用猜。
风险说在前面(别当生产设备用)
明文 MQTT-TCP 没有加密,WiFi 环境内可被嗅探;user string 是隔离不是鉴权,知道你前缀的人依然能控制设备;公共 broker 可用性听天由命(好在 broker 运行时可换,不用重刷);没有 OTA,升级要拆壳接烧录器;只支持 2.4G WiFi。
定位:学习和家庭内网玩具,不是能暴露公网的设备。 真要用,私有 broker + 用户名密码是底线。
但如果你手头也有停服的 ESP8266/ESP32 设备——整套"EspTouch 配网 + 自定义数据带配置 + 三主题协议 + LED 状态机"的模式可以整体照搬。这套复活套路本身,比这个插座值钱。
聊两句:你家抽屉里躺着几块"云僵尸"?机顶盒、摄像头、扫地机器人……厂商一停服全变电子垃圾。你救活过哪一块,用的什么方案?评论区报个到,我置顶一条我的清单(光路由器就攒了三台)。
这个系列前面写过双模型协同流水线,翻我主页能看到;后面排期是扫描 PDF 转 EPUB 的两条流水线。关注不迷路。
