技艺 | 如何让小爱同学联动小程序门禁

事情是这样的，我经常打游戏打着打着需要开楼下门禁让外卖小哥把投食放门口，但是经常需要切换出去打开小程序，点击开门。

这个时间足够我完成一次精彩的五杀了。

这能让一个懒狗程序员忍的下？不能的！于是闲暇时间写了个开门服务部署在我的 k8s 上。

至今已安全运行超过两个月了。

抓包

破坏计算机信息系统罪预警

最简单的方式是在电脑端打开小程序获取小程序的请求参数和地址。

小程序门禁为了不频繁登录开门的用户 token 是不变的...

具体怎么抓包，本文不进行展开。

米家第三方平台

经过本人主观调研 巴法云 是目前最适合的云平台。

大致流程图如下:

具体的巴法云服务调用流程可以去官网查询详细的文档。

这里以开门为例。

新建一个 MQTT 设备云 名称叫 FBIOPENTHERDOOR001 , 这里的设备名称尾号的数值代表设备的类型，001 则代表着开关类型。

然后去米家 APP -> 我的 -> 其他平台设备 -> 添加 -> 输入你的巴法云平台账号并且同步一下设备。

这个时候当你和小爱同学说开门时，订阅端会收到一个 on 的字符串，这个时候去调用你的门禁 API 就可以实现语音开门的效果了。

注意事项

请注意 MQTT 重连的时候需要你重新订阅主题。

可以加入 API 的重试机制防止某些特殊情况导致门禁 API 调用失败。

加入服务重启机制，如果有 k8s 当我没说，某些情况下 MQTT 连接不稳定会断开，需要重启。

可以制作一个自己的门禁 API，通过 SmsForwarder 转发未接来电实现开门，防止点夜宵睡过头。（ 🤡是谁睡过头了我不说

参考链接

miai-actions

巴法云平台