『瀚思彼岸』» 智能家居技术论坛

 找回密码
 立即注册
查看: 1785|回复: 18

[经验分享] 1块钱接入小米智能门锁的较完美方案

[复制链接]

39

主题

2066

帖子

7747

积分

元老级技术达人

积分
7747
金钱
5666
HASS币
110
发表于 2023-11-12 23:54:29 | 显示全部楼层 |阅读模式
首先我承认这次标题党了,不过确实是1块多钱搞定的
首先说主机这边,目前在用的是上次活动的Green,没有蓝牙
查询得知支持最好的芯片是CSR8510A10
官方给出的那些型号没一个便宜的
垃圾佬么,能省则省
淘宝找到一家标注是CSR芯片的,包邮,标准版7.8,信号加强款9.8,看评论说各拍了一个到货一模一样,问客服哪个是信号加强的,客服说你自己试 哪个信号好哪个就是 哈哈哈
那肯定是一样的东西哎
赶上双11,7.8-首单优惠1-淘金币0.39,下单前提示关注店铺再-3,最后3.41下单
到货后好评返现2!!
于是1.41到手,四舍五入=1块钱

插上顺利免驱

接下来是重头戏——接入门锁:
先说说到目前为止,我这个门锁(MJZNMS01LM)尝试过多少方案:
1、X大的ttl-mqtt方案
此方案需要一个小米的网关,拆开从TTL引线到8266上,获取网关的日志,提取有用信息发送至mqtt,实现接入
优点:第一代接入方案,0的突破!我用了相当长的一个方案
缺点:据说网关需要联网正常,小米服务器接收到信息后才会在TTL打印,稍有延迟,网关、mqtt服务端都不能有问题,断外网凉凉

2、X大的魔改esphome蓝牙网关方案
此方案我愿称之为“完美”方案,也是我用的最久的方案,当初跟着X大及其他几位大佬一点点摸索出来,特别有成就感
优点:可以脱离网关,直接蓝牙获取门锁信息,通过esphome给到ha,几乎没有延迟
缺点:获取beaconkey比较困难(我还是通过网关TTL获取的),在2022.12.1之后的esphome对此方案兼容不好,为了使用要保持esphome的版本不能升级

3、HA官方的xiaomi-ble方案
在花1块钱之前,我的esphome升级了,方案2就不好用了。早就听说HA原生支持了很多蓝牙设备,且支持esphome作为蓝牙代理,还是参考了X大的帖子
优点:接入简单
缺点:需获取beaconkey(我早就拿到了所以无所谓),需要esphome(但不限制版本了,可以最新),我这款锁原生不支持,需要修改下插件代码(方案4也需要),最重要的缺点是这货接入的信息太少了!!!
只有门是开是关、门是否忘了关、门卡住、敲门(门铃?)、撬门这几个binary_sensor,丢包很严重,都无法区分是什么方式开门、室内还是室外开门、没有时间戳....

4、ble_monirot方案
目前最新在用的方案,不依赖网关,不依赖esphome
优点:接入信息全,协议里有的基本都有了,接入简单,延迟小,不丢包(目前没发现)
缺点:需获取beaconkey、需要修改下插件代码(就一行)

说下几个关键点:
1、HA宿主机要有蓝牙,在换Green之前我是蜗牛星际+PVE+archlinux+docker方式部署,尝试过直通蓝牙,非常困难,有条件的还是用物理机不要用虚拟机
2、beaconkey获取比较麻烦,老毛子魔改app不一定能成功(我就没成),用网关TTL打印信息也是重复绑定了多次门锁才抓到一次,不过只要不重置门锁,理论上是不需要重新获取的,属于一劳永逸
3、ble_monitor和xiaomi_ble都需要自己改一下代码,前者在\custom_components\ble_monitor\ble_parser\xiaomi.py 16~75行,加入自己的门锁pdid及型号,后者在进入容器后,/usr/local/lib/python3.11/site-packages/xiaomi_ble/devices.py里
这里还有个坑点:haos以root身份登录ssh比较麻烦,我是参考这篇帖子实现的

微信截图_20231112232959.png 微信截图_20231112232926.png 微信截图_20231112232945.png

至于怎么用实体的属性去实现室外开门开灯,我是用NR实现的,event.states节点虽然只报告实体状态,但其payload是包含属性信息的,加个function节点判断下即可

最后一点感想:
想把HA玩好,HA是个动态升级的过程(我从收到GREEN之后 HA版本、OS版本、加载项、集成等更新了好多好多,有的甚至一天俩版本)
玩HA需要去经常维护

另外方案永远没有完美的,只有适合自己的,比如我这个门锁就经历了4个方案,我的DC1在刷了3种固件之后自己魔改了一个出来适合自己用的,代码看了多少不说,X大@XCray 的帖子我是没少看
玩HA要有耐心

大家可能也发现了,不管是门锁还是DC1,我都是跟着大佬在走,每一个你遇到的坑几乎前人都踩过,并且都发在论坛上供大家参考(这也是我为什么不在微信QQ群里聊天,而是天天泡论坛的原因,在论坛留下痕迹,对自己对别人都是种帮助)
玩HA要善于搜索

现在各种大模型很方便,善于运用,GPT不方便有很多国内的大模型也够用,比如讯飞星火,如何用NR实现根据实体属性而不是实体状态进行判断,我就是用的这个,大概2分钟就解决了
玩HA要善于运用工具

至于怎么知道修改插件的哪里?大模型解读代码+耐心+多尝试,我是个代码小白,只会抄抄改改,改xiaomi_ble我找了大概3天才找到在哪改
我不会开发任何插件,但是不妨碍我能实现我的目标
魔改蚊子大佬的DC1也是如此

最后留个地址小米/米家产品库 - Xiaomi Miot Spec (miot-spec.com),这个网址找到自己的产品,点击规格-使用说明打开说明书,url里就包含了门锁(不是所有产品都有)的pdid
这个链接在论坛里也出现过,但是抱歉我实在找不到出处了,但是从链接里发现pdid是我自己留意到的
玩HA也要善于观察

好了,这次接入门锁的故事就讲到这
主要是提供一些思路,分享一些感想
近期不知道是不是因为新品试用的活动,感觉论坛里分享的帖子变多了
仔细看其实还有不少大佬有好东西没放出来(比如n大@neroxps ,用ble_monitor方案应该很久了 哈哈)

收工,睡觉~

回复

使用道具 举报

19

主题

479

帖子

2668

积分

金牌会员

Rank: 6Rank: 6

积分
2668
金钱
2189
HASS币
30
发表于 2023-11-13 01:03:46 | 显示全部楼层
众所周知,199是一百元级,1999也是一千元级
1.41确实是1元没错
回复

使用道具 举报

17

主题

116

帖子

1318

积分

金牌会员

Rank: 6Rank: 6

积分
1318
金钱
1202
HASS币
0
发表于 2023-11-13 09:33:28 | 显示全部楼层
这款USB蓝牙在CM311上也能免驱
图片.jpg
插上蓝牙homekit直接发现门锁,输入配对码就行,还能远程开锁
截图.png
回复

使用道具 举报

39

主题

2066

帖子

7747

积分

元老级技术达人

积分
7747
金钱
5666
HASS币
110
 楼主| 发表于 2023-11-13 09:47:13 | 显示全部楼层
qiaofei828 发表于 2023-11-13 09:33
这款USB蓝牙在CM311上也能免驱

插上蓝牙homekit直接发现门锁,输入配对码就行,还能远程开锁

厉害了 我那个门锁不支持HomeKit,以后有机会试试1S
回复

使用道具 举报

5

主题

79

帖子

902

积分

高级会员

Rank: 4

积分
902
金钱
823
HASS币
0
发表于 2023-11-13 10:00:14 | 显示全部楼层
本帖最后由 yingkkk 于 2023-11-13 10:07 编辑


                               
登录/注册后可看大图
https://home.miot-spec.com/spec?type=urn:miot-spec-v2:device:lock:0000A038:loock-cc2xpro:1
请问这个门锁的pdid是0000A038这一串吗,ble-monitor里加设备信息的话后面的设备型号那一串应该填什么呀



回复

使用道具 举报

39

主题

2066

帖子

7747

积分

元老级技术达人

积分
7747
金钱
5666
HASS币
110
 楼主| 发表于 2023-11-13 10:09:41 | 显示全部楼层
yingkkk 发表于 2023-11-13 10:00
https://home.miot-spec.com/spec?type=urn:miot-spec-v2:device:lock:0000A038:loock-cc2xpro:1
请问这个 ...

你都没自己看帖子啊,规格-使用说明
pdid=3343
代码里要写16进制 0x0d0f
回复

使用道具 举报

5

主题

79

帖子

902

积分

高级会员

Rank: 4

积分
902
金钱
823
HASS币
0
发表于 2023-11-13 10:12:07 | 显示全部楼层
ghostist 发表于 2023-11-13 10:09
你都没自己看帖子啊,规格-使用说明
pdid=3343
代码里要写16进制 0x0d0f

明白了,感谢!
回复

使用道具 举报

7

主题

1081

帖子

3393

积分

论坛元老

Rank: 8Rank: 8

积分
3393
金钱
2312
HASS币
0
发表于 2023-11-16 15:30:03 | 显示全部楼层
大佬,门锁型号怎么找到的,我看我那锁直接是Loock.s30,但感觉这么写不对。
回复

使用道具 举报

4

主题

104

帖子

1705

积分

金牌会员

Rank: 6Rank: 6

积分
1705
金钱
1596
HASS币
20
发表于 2023-11-18 09:05:58 | 显示全部楼层
还有个方案是通过多模网关接入,速度也很快,不用改什么东西
回复

使用道具 举报

7

主题

1081

帖子

3393

积分

论坛元老

Rank: 8Rank: 8

积分
3393
金钱
2312
HASS币
0
发表于 2023-11-20 08:41:20 | 显示全部楼层

你搞定了么?
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|Hassbian

GMT+8, 2024-5-9 22:18 , Processed in 0.382483 second(s), 34 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表