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

 找回密码
 立即注册
楼主: XCray

[修仙教程] 【ESPHome】ESP32 DIY通用蓝牙网关,接入米家系门锁等各种设备

  [复制链接]

0

主题

10

帖子

231

积分

中级会员

Rank: 3Rank: 3

积分
231
金钱
221
HASS币
0
发表于 2022-1-16 16:41:58 | 显示全部楼层
抄作业啦!
回复

使用道具 举报

98

主题

2866

帖子

1万

积分

超级版主

智能家居&单板滑雪痴迷爱好者

Rank: 8Rank: 8

积分
11445
金钱
8514
HASS币
460

教程狂人突出贡献

 楼主| 发表于 2022-1-17 12:01:47 | 显示全部楼层
本帖最后由 XCray 于 2022-1-17 12:12 编辑
ggjj862 发表于 2021-11-22 20:41
我的解出来了,但是不知道为什么keyid显示的是-1

这个玩法只适合有编程基础的

要自己学会思考、学会阅读官方开发文档

每条消息对应的什么操作,如果自己留意的话也就不奇怪了——锁事件0B,操作代码A4的含义人工、门内开锁,当然没有keyid了!
回复

使用道具 举报

19

主题

290

帖子

1508

积分

论坛技术达人

积分
1508
金钱
1203
HASS币
130
发表于 2022-4-6 19:48:54 | 显示全部楼层
Passive BLE Monitor integration支持小米绿米的三款锁:

  • MJZNMSQ01YD Xiaomi Door Lock Youth Edition
  • ZNMS16LM Aqara Lock N100 蓝牙版
  • ZNMS17LM Aqara Lock N200 蓝牙版


可以看看ble_monitor是如何灵活配置密钥的
回复

使用道具 举报

39

主题

2049

帖子

7697

积分

元老级技术达人

积分
7697
金钱
5633
HASS币
110
发表于 2022-4-13 15:23:43 | 显示全部楼层
为了编译自制水箱补水的小东西,esphome升级,然后发现lock项目需要跟着升级
下载了最新的代码,对比了一下,发现X大已经把米家和榉树门锁都集成了
真攒!
回复

使用道具 举报

98

主题

2866

帖子

1万

积分

超级版主

智能家居&单板滑雪痴迷爱好者

Rank: 8Rank: 8

积分
11445
金钱
8514
HASS币
460

教程狂人突出贡献

 楼主| 发表于 2022-4-13 15:47:39 | 显示全部楼层
ghostist 发表于 2022-4-13 15:23
为了编译自制水箱补水的小东西,esphome升级,然后发现lock项目需要跟着升级
下载了最新的代码,对比了一下 ...

米家的我没怎么考虑细节,更没有测试,估计还不行。真用的米家锁的话应该还得改改
回复

使用道具 举报

39

主题

2049

帖子

7697

积分

元老级技术达人

积分
7697
金钱
5633
HASS币
110
发表于 2022-4-15 11:18:29 | 显示全部楼层
xiaomi_blez.cpp里

  if ((value_type == 0x05) && (value_length == 10)) {
    const int8_t opmethod = data[1];
    const int32_t keyid = encode_uint32(data[5], data[4], data[3], data[2]);
    const int32_t opts = encode_uint32(data[9], data[8], data[7], data[6]);
    result.opmethod = opmethod;
    result.keyid = keyid;
    result.opts = opts;
  }
  //米家门锁,标准协议
  else if ((value_type == 0x0b) && (value_length == 9)) {
    const int8_t opmethod = data[0];
    const int32_t keyid = encode_uint32(data[4], data[3], data[2], data[1]);
    const int32_t opts = encode_uint32(data[8], data[7], data[6], data[5]);
  }


米家部分要加
    result.opmethod = opmethod;
    result.keyid = keyid;
    result.opts = opts;

或者把这段放在if else外面

另外提醒下米家锁用户 xiaomi_zelkova.cpp 里面是需要修改的
其他测试通过
(电池信息和上报时间从来没收到过,lock attr也没收到 不过这个没用)
回复

使用道具 举报

6

主题

95

帖子

1199

积分

金牌会员

Rank: 6Rank: 6

积分
1199
金钱
1104
HASS币
0
发表于 2022-4-15 18:58:48 | 显示全部楼层
学习备用
回复

使用道具 举报

8

主题

229

帖子

1994

积分

金牌会员

Rank: 6Rank: 6

积分
1994
金钱
1765
HASS币
0
发表于 2022-6-21 15:02:25 | 显示全部楼层
这意思是不是小米人体感应2和小米门磁2有救了?
回复

使用道具 举报

40

主题

3057

帖子

1万

积分

超级版主

Nero

Rank: 8Rank: 8

积分
11135
金钱
8028
HASS币
182
发表于 2022-6-30 17:01:47 | 显示全部楼层
一年后的今天 米家的蓝牙key 是不会刷新的,只要不重新配对。
Nero
回复

使用道具 举报

98

主题

2866

帖子

1万

积分

超级版主

智能家居&单板滑雪痴迷爱好者

Rank: 8Rank: 8

积分
11445
金钱
8514
HASS币
460

教程狂人突出贡献

 楼主| 发表于 2022-6-30 17:42:17 | 显示全部楼层
neroxps 发表于 2022-6-30 17:01
一年后的今天 米家的蓝牙key 是不会刷新的,只要不重新配对。

没错,这样这个玩法的价值就不会因为蓝牙key打折扣了。不管用什么方法,一次获取、终身受用
回复

使用道具 举报

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

本版积分规则

Archiver|手机版|小黑屋|Hassbian

GMT+8, 2024-4-28 14:46 , Processed in 0.053946 second(s), 31 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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