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

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

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

  [复制链接]

105

主题

2954

帖子

1万

积分

超级版主

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

Rank: 8Rank: 8

积分
12119
金钱
9100
HASS币
460

教程狂人突出贡献

 楼主| 发表于 2023-5-10 15:33:34 | 显示全部楼层
breakjia 发表于 2022-11-24 00:14
楼主你好,我用你的mible_0.4编译之后 为什么打印出这样的日志。可以指点一下吗    bindkey是破解版app ...

玩这个思路,需要起码的编程基础。

[xiaomi_blez:114]: parse_xiaomi_header(): service data has no DATA flag. 这句提示其实说的很清楚,数据标志不符。具体你看看源代码105~119行就明白了。然后根据你的锁修改。

对了,你是用的什么锁?也许早就有人改好了呢
回复

使用道具 举报

24

主题

896

帖子

5111

积分

论坛元老

Rank: 8Rank: 8

积分
5111
金钱
4210
HASS币
20
发表于 2023-5-11 22:15:34 | 显示全部楼层
netwolf 发表于 2023-5-10 11:45
是的,最近安装的新的锁也是这个问题

好像论坛里没人提到过40位字符的问题,我一直以为我操作的问题,按理说我的鹿客class 2x也是2019年那会儿的锁了,也不是新设备,你的是什么锁
回复

使用道具 举报

5

主题

110

帖子

2067

积分

金牌会员

Rank: 6Rank: 6

积分
2067
金钱
1952
HASS币
20
发表于 2023-5-12 07:28:42 | 显示全部楼层
本帖最后由 netwolf 于 2023-5-12 07:30 编辑
chenquanhao 发表于 2023-5-11 22:15
好像论坛里没人提到过40位字符的问题,我一直以为我操作的问题,按理说我的鹿客class 2x也是2019年那会儿 ...

也是老锁,MJZNMS02LM,米家霸王锁那款。
另一个房子MJZNMS03LM,这个反而是先装的,可能取bindkey早,没问题。
回复

使用道具 举报

2

主题

53

帖子

1018

积分

金牌会员

Rank: 6Rank: 6

积分
1018
金钱
965
HASS币
0
发表于 2023-5-13 18:59:45 | 显示全部楼层
XCray 发表于 2023-5-10 15:33
玩这个思路,需要起码的编程基础。

[xiaomi_blez:114]: parse_xiaomi_header(): service data has no DA ...

小米全自动智能门锁,好像这个不是蓝牙协议的
回复

使用道具 举报

2

主题

176

帖子

2383

积分

金牌会员

Rank: 6Rank: 6

积分
2383
金钱
2207
HASS币
0
发表于 2023-6-18 16:49:17 | 显示全部楼层
本帖最后由 白云纷飞 于 2023-6-23 01:11 编辑

果然不能盲目抄作业,读了3遍帖子后终于成功了,但是出现新的问题了,多个不同指纹解锁后返回的keyid都是同一个,经查看日志发现log输出的keyid和最终sending的值不一致,操作的时间戳也不一致
回复

使用道具 举报

2

主题

176

帖子

2383

积分

金牌会员

Rank: 6Rank: 6

积分
2383
金钱
2207
HASS币
0
发表于 2023-6-23 01:16:02 | 显示全部楼层
本帖最后由 白云纷飞 于 2023-6-23 01:21 编辑
白云纷飞 发表于 2023-6-18 16:49
果然不能盲目抄作业,读了3遍帖子后终于成功了,但是出现新的问题了,多个不同指纹解锁后返回的keyid都是同 ...

多个不同指纹解锁后返回的keyid都是同一个,经查看日志发现log输出的keyid和最终sending的值不一致,操作的时间戳也不一致

202362311228(1).png
附上日志
[00:50:11][D][xiaomi_blez:128]: Packet : 48.44.1A.03.91.9B.ED.95.21.F2.62.20.F6.96.6A.D8.C1.5A.D9.03.B0.C5.E1.AA (24)
[00:50:11][D][xiaomi_blez:237]: decrypt_xiaomi_payload(): authenticated decryption passed.
[00:50:11][D][xiaomi_blez:239]:   Plaintext : 0B.00.09.A4.FF.FF.FF.FF.C2.7B.94.64 (12), Packet : 145
[00:50:11][D][xiaomi_blez:093]: value_length:9;payload_length:12
[00:50:11][D][xiaomi_blez:251]: Got Xiaomi MijiaLock (CC:9C:CE:63:F2:E3):
[00:50:11][D][xiaomi_blez:254]:   OpMethod:10
[00:50:11][D][xiaomi_blez:257]:   action:4
[00:50:11][D][xiaomi_blez:269]:   OpTS:1687452610
[00:50:11][D][xiaomi_blez:272]:   KeyID:-1
[00:50:11][D][sensor:094]: 'action': Sending state 4.00000  with 0 decimals of accuracy
[00:50:11][D][sensor:094]: 'opmethod': Sending state 10.00000  with 0 decimals of accuracy
[00:50:11][D][sensor:094]: 'KeyID': Sending state 4294967296.00000  with 0 decimals of accuracy
[00:50:11][D][sensor:094]: 'opts': Sending state 1687452672.00000  with 0 decimals of accuracy
[00:50:11][D][xiaomi_blez:128]: Packet : 48.44.1A.03.91.9B.ED.95.21.F2.62.20.F6.96.6A.D8.C1.5A.D9.03.B0.C5.E1.AA (24)
[00:50:11][D][xiaomi_blez:132]: parse_xiaomi_header(): duplicate data packet received (145).
[00:50:11][D][xiaomi_blez:128]: Packet : 48.44.1A.03.91.9B.ED.95.21.F2.62.20.F6.96.6A.D8.C1.5A.D9.03.B0.C5.E1.AA (24)
[00:50:11][D][xiaomi_blez:132]: parse_xiaomi_header(): duplicate data packet received (145).
[00:50:11][D][xiaomi_blez:128]: Packet : 48.44.1A.03.91.9B.ED.95.21.F2.62.20.F6.96.6A.D8.C1.5A.D9.03.B0.C5.E1.AA (24)
[00:50:11][D][xiaomi_blez:132]: parse_xiaomi_header(): duplicate data packet received (145).
[00:50:11][D][xiaomi_blez:128]: Packet : 48.44.1A.03.91.9B.ED.95.21.F2.62.20.F6.96.6A.D8.C1.5A.D9.03.B0.C5.E1.AA (24)
[00:50:11][D][xiaomi_blez:132]: parse_xiaomi_header(): duplicate data packet received (145).
[00:50:11][D][xiaomi_blez:128]: Packet : 48.44.1A.03.91.9B.ED.95.21.F2.62.20.F6.96.6A.D8.C1.5A.D9.03.B0.C5.E1.AA (24)
[00:50:11][D][xiaomi_blez:132]: parse_xiaomi_header(): duplicate data packet received (145).
[00:50:14][D][xiaomi_blez:128]: Packet : 48.44.1A.03.93.D3.D5.89.BF.42.FF.AF.04.02.14.A3.E7.AB.F2.7E (20)
[00:50:14][D][xiaomi_blez:237]: decrypt_xiaomi_payload(): authenticated decryption passed.
[00:50:14][D][xiaomi_blez:239]:   Plaintext : 07.00.05.02.C5.7B.94.64 (8), Packet : 147
[00:50:14][D][xiaomi_blez:093]: value_length:5;payload_length:8
[00:50:14][D][xiaomi_blez:251]: Got Xiaomi MijiaLock (CC:9C:CE:63:F2:E3):
[00:50:14][D][xiaomi_blez:266]:   DoorEvt: 2
[00:50:14][D][xiaomi_blez:278]:   DoorEvtTS: 1687452613
[00:50:14][D][sensor:094]: 'doorevt': Sending state 2.00000  with 0 decimals of accuracy
[00:50:14][D][sensor:094]: 'doorevtts': Sending state 1687452672.00000  with 0 decimals of accuracy
[00:50:15][D][xiaomi_blez:128]: Packet : 48.44.1A.03.93.D3.D5.89.BF.42.FF.AF.04.02.14.A3.E7.AB.F2.7E (20)
[00:50:15][D][xiaomi_blez:132]: parse_xiaomi_header(): duplicate data packet received (147).
[00:50:15][D][xiaomi_blez:128]: Packet : 48.44.1A.03.93.D3.D5.89.BF.42.FF.AF.04.02.14.A3.E7.AB.F2.7E (20)
[00:50:15][D][xiaomi_blez:132]: parse_xiaomi_header(): duplicate data packet received (147).
[00:50:15][D][xiaomi_blez:128]: Packet : 48.44.1A.03.93.D3.D5.89.BF.42.FF.AF.04.02.14.A3.E7.AB.F2.7E (20)
[00:50:15][D][xiaomi_blez:132]: parse_xiaomi_header(): duplicate data packet received (147).
[00:50:15][D][xiaomi_blez:128]: Packet : 48.44.1A.03.93.D3.D5.89.BF.42.FF.AF.04.02.14.A3.E7.AB.F2.7E (20)
[00:50:15][D][xiaomi_blez:132]: parse_xiaomi_header(): duplicate data packet received (147).
[00:50:15][D][xiaomi_blez:128]: Packet : 48.44.1A.03.93.D3.D5.89.BF.42.FF.AF.04.02.14.A3.E7.AB.F2.7E (20)
[00:50:15][D][xiaomi_blez:132]: parse_xiaomi_header(): duplicate data packet received (147).
[00:50:15][D][xiaomi_blez:128]: Packet : 48.44.1A.03.93.D3.D5.89.BF.42.FF.AF.04.02.14.A3.E7.AB.F2.7E (20)
[00:50:15][D][xiaomi_blez:132]: parse_xiaomi_header(): duplicate data packet received (147).
[00:50:15][D][xiaomi_blez:128]: Packet : 48.44.1A.03.93.D3.D5.89.BF.42.FF.AF.04.02.14.A3.E7.AB.F2.7E (20)
[00:50:15][D][xiaomi_blez:132]: parse_xiaomi_header(): duplicate data packet received (147).
[00:50:15][D][xiaomi_blez:128]: Packet : 48.44.1A.03.93.D3.D5.89.BF.42.FF.AF.04.02.14.A3.E7.AB.F2.7E (20)
[00:50:15][D][xiaomi_blez:132]: parse_xiaomi_header(): duplicate data packet received (147).
[00:50:16][D][xiaomi_blez:128]: Packet : 48.44.1A.03.93.D3.D5.89.BF.42.FF.AF.04.02.14.A3.E7.AB.F2.7E (20)
[00:50:16][D][xiaomi_blez:132]: parse_xiaomi_header(): duplicate data packet received (147).
[00:50:16][D][xiaomi_blez:128]: Packet : 48.44.1A.03.93.D3.D5.89.BF.42.FF.AF.04.02.14.A3.E7.AB.F2.7E (20)
[00:50:16][D][xiaomi_blez:132]: parse_xiaomi_header(): duplicate data packet received (147).
[00:50:16][D][xiaomi_blez:128]: Packet : 48.44.1A.03.93.D3.D5.89.BF.42.FF.AF.04.02.14.A3.E7.AB.F2.7E (20)
[00:50:16][D][xiaomi_blez:132]: parse_xiaomi_header(): duplicate data packet received (147).
[00:50:16][D][xiaomi_blez:128]: Packet : 48.44.1A.03.93.D3.D5.89.BF.42.FF.AF.04.02.14.A3.E7.AB.F2.7E (20)
[00:50:16][D][xiaomi_blez:132]: parse_xiaomi_header(): duplicate data packet received (147).
[00:50:16][D][xiaomi_blez:128]: Packet : 48.44.1A.03.93.D3.D5.89.BF.42.FF.AF.04.02.14.A3.E7.AB.F2.7E (20)
[00:50:16][D][xiaomi_blez:132]: parse_xiaomi_header(): duplicate data packet received (147).
[00:50:16][D][xiaomi_blez:128]: Packet : 48.44.1A.03.93.D3.D5.89.BF.42.FF.AF.04.02.14.A3.E7.AB.F2.7E (20)
[00:50:16][D][xiaomi_blez:132]: parse_xiaomi_header(): duplicate data packet received (147).
[00:50:18][D][xiaomi_blez:128]: Packet : 48.44.1A.03.95.88.6A.FF.48.1A.97.69.DA.EE.04.0A.3B.EA.62.FA (20)
[00:50:18][D][xiaomi_blez:237]: decrypt_xiaomi_payload(): authenticated decryption passed.
[00:50:18][D][xiaomi_blez:239]:   Plaintext : 07.00.05.01.C8.7B.94.64 (8), Packet : 149
[00:50:18][D][xiaomi_blez:093]: value_length:5;payload_length:8
[00:50:18][D][xiaomi_blez:251]: Got Xiaomi MijiaLock (CC:9C:CE:63:F2:E3):
[00:50:18][D][xiaomi_blez:266]:   DoorEvt: 1
[00:50:18][D][xiaomi_blez:278]:   DoorEvtTS: 1687452616
[00:50:18][D][sensor:094]: 'doorevt': Sending state 1.00000  with 0 decimals of accuracy
[00:50:18][D][sensor:094]: 'doorevtts': Sending state 1687452672.00000  with 0 decimals of accuracy
[00:50:18][D][xiaomi_blez:128]: Packet : 48.44.1A.03.95.88.6A.FF.48.1A.97.69.DA.EE.04.0A.3B.EA.62.FA (20)
[00:50:18][D][xiaomi_blez:132]: parse_xiaomi_header(): duplicate data packet received (149).
[00:50:18][D][xiaomi_blez:128]: Packet : 48.44.1A.03.95.88.6A.FF.48.1A.97.69.DA.EE.04.0A.3B.EA.62.FA (20)
[00:50:18][D][xiaomi_blez:132]: parse_xiaomi_header(): duplicate data packet received (149).
[00:50:18][D][xiaomi_blez:128]: Packet : 48.44.1A.03.95.88.6A.FF.48.1A.97.69.DA.EE.04.0A.3B.EA.62.FA (20)

回复

使用道具 举报

9

主题

70

帖子

690

积分

高级会员

Rank: 4

积分
690
金钱
620
HASS币
0
发表于 2023-9-1 18:55:48 | 显示全部楼层
chenquanhao 发表于 2023-5-11 22:15
好像论坛里没人提到过40位字符的问题,我一直以为我操作的问题,按理说我的鹿客class 2x也是2019年那会儿 ...

你好,请教一下,40位字符的问题解决了么?可以使用么?
回复

使用道具 举报

24

主题

896

帖子

5111

积分

论坛元老

Rank: 8Rank: 8

积分
5111
金钱
4210
HASS币
20
发表于 2023-9-4 18:38:45 | 显示全部楼层
jy940006145 发表于 2023-9-1 18:55
你好,请教一下,40位字符的问题解决了么?可以使用么?

没,好像没人关注了,继续用XiaomiGateway3,其实也没有很大问题,只是想能彻底离线最好
回复

使用道具 举报

9

主题

70

帖子

690

积分

高级会员

Rank: 4

积分
690
金钱
620
HASS币
0
发表于 2023-9-4 20:19:18 | 显示全部楼层
chenquanhao 发表于 2023-9-4 18:38
没,好像没人关注了,继续用XiaomiGateway3,其实也没有很大问题,只是想能彻底离线最好 ...

我也是这个问题,试了几个版本的多模了,都是40位,看来是没啥希望本地获取了。
回复

使用道具 举报

7

主题

269

帖子

1513

积分

金牌会员

Rank: 6Rank: 6

积分
1513
金钱
1244
HASS币
0
发表于 2024-5-26 20:11:03 | 显示全部楼层
XCray 发表于 2023-5-10 15:33
玩这个思路,需要起码的编程基础。

[xiaomi_blez:114]: parse_xiaomi_header(): service data has no DA ...

X大 我的门锁型号是MJZNMS03LM   开门关门传感器也有数据 ble.png 但是esphome log里面还是会显示  parse_xiaomi_header(): service data has no DATA flag.

以下是我的log log.png


我的105-119行数据是下面的内容
optional<XiaomiParseResult> parse_xiaomi_header(const esp32_ble_tracker::ServiceData &service_data) {
  XiaomiParseResult result;
  if (!service_data.uuid.contains(0x8F, 0x03) and !service_data.uuid.contains(0x95, 0xFE)) {
    ESP_LOGD(TAG, "parse_xiaomi_header(): no service data UUID magic bytes.");
    return {};
  }
  auto raw = service_data.data;
  result.has_data = (raw[0] & 0x40) ? true : false;
  result.has_capability = (raw[0] & 0x20) ? true : false;
  result.has_encryption = (raw[0] & 0x08) ? true : false;
  ESP_LOGD(TAG, "Packet : %s", hexencode(raw.data(), raw.size()).c_str());

请教X大 我这种情况需要怎么修改?
回复

使用道具 举报

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

本版积分规则

Archiver|手机版|小黑屋|Hassbian

GMT+8, 2024-12-28 01:45 , Processed in 0.544627 second(s), 33 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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