当前位置:
AIGC文章详情

张大妈

我把某东销量第一的智能马桶接入了HomeAssistant

源自公众号:瀚思彼岸

02-23 10:32

面对市面上昂贵的生态联动智能马桶,通过逆向工程破解一款畅销非标产品的蓝牙协议,并利用廉价硬件搭建网关,成功将其接入Home Assistant,实现了座温加热等功能的自动化,为低成本全屋智能提供了新思路。

我把某东销量第一的智能马桶接入了HomeAssistant智能速览

  • 通过逆向分析微信小程序蓝牙协议,成功破解非标智能马桶。

  • 利用零刻ME-mini作为蓝牙网关,替代树莓派等方案。

  • 通过MQTT协议在Home Assistant中实现全功能自动化控制。

  • 详细解析了蓝牙指令的16进制格式及校验和计算方法。

  • 解决了设备蓝牙单点连接冲突,采用按需连接策略提升稳定性。

我把某东销量第一的智能马桶接入了HomeAssistant精华内容

要让一款孤立的智能设备融入全屋智能生态,关键在于打通其通信壁垒。以下将详述如何从零开始,一步步破解蓝牙协议,构建稳定可靠的接入方案。

破局思路:逆向小程序

改造的起点是获取通信协议。直接从设备入手难度大,于是转向与其配套的微信小程序。通过平台花费5元购得了小程序的压缩混淆源码。虽然人工阅读困难,但借助当前的大语言模型,可以高效地解析出核心逻辑。分析发现,小程序通过蓝牙BLE与设备通信,扫描并连接设备名称为“VCX-Knob”的马桶,所有控制指令均以固定的16进制字符串格式,通过微信API的writeBLECharacteristicValue函数发送。这证明了通过蓝牙直接控制设备的可行性。

硬件桥梁:零刻担当网关

确定蓝牙协议后,需要一个稳定的指令发射端。最初考虑使用米家极客版或小爱同学,但它们原生不支持自定义BLE指令发送,需要拆机刷机,操作复杂且风险高,因此放弃。恰好手头有一台零刻ME-mini迷你主机,其刷了飞牛OS并板载蓝牙模块。这台设备性能足够,且闲置时可作他用,是理想的网关选择。只需更新蓝牙驱动,它便能扫描局域网内的蓝牙设备并作为指令发送端,无需额外购置树莓派等专用硬件。

协议核心:指令解析

深入分析后,所有控制指令的格式被完整破解。指令为16进制,固定结构为AA0802{指令码}{d1}{d2}{d3}{校验和}。校验和的计算方式为将前面所有字节相加后取低8位。例如,执行大冲的指令为AA08020700000018,末尾的18即为校验和。同时,设备会主动上报状态,数据包格式为AA0888{类型}{数据1}{数据2}{数据3},共6种类型,分别对应基础状态、温度信息、百分比、强度、冲水参数和传感器数据,为反馈控制提供了完整的数据支持。

系统架构:MQTT集成

为确保通信稳定性和扩展性,整套系统采用MQTT作为中间件。在NAS上用Docker部署了EMQX服务,Home Assistant与零刻网关通过MQTT通信。利用HA的MQTT Discovery功能,网关首次连接时会自动发布设备配置,HA便能自动生成开关、传感器、选择器等实体,如座温等级、冲水模式、水温等。所有状态上报到统一主题,指令则发送到对应功能的子主题,架构清晰,配置便捷。

实战调试:解决连接冲突

调试中遇到了一个关键问题:该蓝牙设备不支持多连接。当手机小程序连接时,服务端网关无法连接,反之亦然。为解决此冲突,最终采用了“按需连接”策略。服务端平时只保持蓝牙扫描状态,仅在收到HA的控制指令或需要主动查询状态时,才建立与马桶的蓝牙连接,执行完操作后立即断开。这一机制有效避免了通道占用,保证了控制的实时性和可靠性。

这次的实践证明,通过逆向工程和通用硬件,完全有能力将大量非标蓝牙智能设备纳入Home Assistant生态。这种低成本的改造方案,不仅实现了个性化智能联动,也为智能家居爱好者提供了将“信息孤岛”设备变为“智能一员”的可行路径。你是否也想尝试改造家中那些不听话的设备呢?

内容由AI生成
1
扫一下,分享更方便,购买更轻松
0评论

当前文章无评论,是时候发表评论了
提示信息

取消
确认
评论举报

最新文章 热门文章