{
"title": "技艺 | 如何让小爱同学联动小程序门禁",
"tags": [
"post",
"小米",
"智能家居"
],
"summary": "程序员提高幸福感的小Tips。",
"sources": [
"xlog"
],
"external_urls": [
"https://blog.flyneko.com/fbi-open-the-door"
],
"date_published": "2023-04-03T06:20:09.986Z",
"content": "事情是这样的,我经常打游戏打着打着需要开楼下门禁让外卖小哥把投食放门口,但是经常需要切换出去打开小程序,点击开门。\n\n这个时间足够我完成一次精彩的五杀了。\n\n这能让一个懒狗程序员忍的下?不能的!于是闲暇时间写了个开门服务部署在我的 k8s 上。\n\n至今已安全运行超过两个月了。\n\n### 抓包\n> 破坏计算机信息系统罪预警\n\n最简单的方式是在电脑端打开小程序获取小程序的请求参数和地址。\n\n小程序门禁为了不频繁登录开门的用户 token 是不变的...\n\n具体怎么抓包,本文不进行展开。\n\n### 米家第三方平台\n> 经过本人主观调研 **巴法云** 是目前最适合的云平台。\n\n大致流程图如下: \n\n\n具体的巴法云服务调用流程可以去官网查询详细的文档。\n\n这里以开门为例。\n\n新建一个 MQTT设备云 名称叫 FBIOPENTHERDOOR001 , 这里的设备名称尾号的数值代表设备的类型,001 则代表着开关类型。\n\n然后去米家APP -> 我的 -> 其他平台设备 -> 添加 -> 输入你的巴法云平台账号并且同步一下设备。 \n\n这个时候当你和小爱同学说开门时,订阅端会收到一个 on 的字符串,这个时候去调用你的门禁 API 就可以实现语音开门的效果了。\n\n### 注意事项\n\n* 请注意 MQTT 重连的时候需要你重新订阅主题。\n* 可以加入 API 的重试机制防止某些特殊情况导致门禁 API 调用失败。\n* 加入服务重启机制,如果有 k8s 当我没说,某些情况下 MQTT 连接不稳定会断开,需要重启。\n* 可以制作一个自己的门禁 API,通过 [SmsForwarder](https://github.com/pppscn/SmsForwarder) 转发未接来电实现开门,防止点夜宵睡过头。( 🤡是谁睡过头了我不说\n\n### 参考链接\n* [miai-actions](https://github.com/unliar/miai-actions)\n* [巴法云平台](https://cloud.bemfa.com/)",
"attributes": [
{
"value": "fbi-open-the-door",
"trait_type": "xlog_slug"
}
]
}