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

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

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

  [复制链接]

105

主题

2954

帖子

1万

积分

超级版主

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

Rank: 8Rank: 8

积分
12119
金钱
9100
HASS币
460

教程狂人突出贡献

 楼主| 发表于 2024-6-14 08:58:34 | 显示全部楼层
silang521 发表于 2024-6-14 08:32
我记得 当时是在if (res->keyid.has_value() && this->keyid_ != nullptr)
      在这输出的都是正常的ke ...

如果你记得准确,那就是还是存在无符号整数到有符号整数的转换。

另外一个办法:把keyid分成两部分,头两个字节本来也有特殊含义,值得单独拿出来。
回复

使用道具 举报

7

主题

269

帖子

1513

积分

金牌会员

Rank: 6Rank: 6

积分
1513
金钱
1244
HASS币
0
发表于 2024-6-14 09:18:37 | 显示全部楼层
XCray 发表于 2024-6-14 08:58
如果你记得准确,那就是还是存在无符号整数到有符号整数的转换。

另外一个办法:把keyid分成两部分,头 ...

我在想const uint32_t keyid = encode_uint32(data[4], data[3], data[2], data[1]); 转换后不应该直接是if (res->keyid.has_value() && this->keyid_ != nullptr)
      
      this->keyid_->publish_state(*res->keyid);
这个吗,难道中间还有转换的步骤?
回复

使用道具 举报

7

主题

269

帖子

1513

积分

金牌会员

Rank: 6Rank: 6

积分
1513
金钱
1244
HASS币
0
发表于 2024-6-14 09:20:14 | 显示全部楼层
XCray 发表于 2024-6-14 08:58
如果你记得准确,那就是还是存在无符号整数到有符号整数的转换。

另外一个办法:把keyid分成两部分,头 ...

[08:48:03][D][xiaomi_blez:113]: 接收到的所有数据 Data: 50.44.99.05.A8.41.C8.DB.13.AE.FB.0A.10.05.64.3C.93.6B.66 (19)
[08:48:03][D][xiaomi_blez:115]: sx2 Packet : 50.44.99.05.A8.41.C8.DB.13.AE.FB.0A.10.05.64.3C.93.6B.66 (19)
[08:48:03][D][xiaomi_blez:067]:  payload 10
[08:48:03][D][xiaomi_blez:084]: value_length:5;payload_length:8
[08:48:03][D][xiaomi_blez:240]: Got Xiaomi MijiaLock (FB:AE:13B:C8:41):
[08:48:03][D][xiaomi_blez:249]:   BattLevel: 100
[08:48:03][D][xiaomi_blez:261]:   BattLevelTS: 1718326076
[08:48:03][D][sensor:094]: 'BattLvl': Sending state 100.00000 % with 0 decimals of accuracy
[08:48:03][D][sensor:094]: 'BattLvlTS': Sending state 1718326016.00000  with 0 decimals of accuracy
[08:48:03][W][component:237]: Component esp32_ble_tracker took a long time for an operation (82 ms).
[08:48:03][W][component:238]: Components should block for at most 30 ms.
[08:48:03][D][xiaomi_blez:113]: 接收到的所有数据 Data: 50.44.99.05.A8.41.C8.DB.13.AE.FB.0A.10.05.64.3C.93.6B.66 (19)
[08:48:03][D][xiaomi_blez:115]: sx2 Packet : 50.44.99.05.A8.41.C8.DB.13.AE.FB.0A.10.05.64.3C.93.6B.66 (19)

这是最新的电量日志
else if ((value_type == 0x0A) && (value_length == 5)) {
    const uint32_t battlvlts = encode_uint32(data[4], data[3], data[2], data[1]);
    result.battlvl = data[0];
    result.battlvlts = battlvlts;
已经改过uint32_t   ,BattLvlTS还是不一致 这个解决了 我感觉keyid也就解决啦
回复

使用道具 举报

105

主题

2954

帖子

1万

积分

超级版主

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

Rank: 8Rank: 8

积分
12119
金钱
9100
HASS币
460

教程狂人突出贡献

 楼主| 发表于 2024-6-14 09:43:30 | 显示全部楼层
silang521 发表于 2024-6-14 09:20
[08:48:03][D][xiaomi_blez:113]: 接收到的所有数据 Data: 50.44.99.05.A8.41.C8.DB.13.AE.FB.0A.10.05.6 ...

你咋总能碰到奇怪现象呢

时间戳前面都没问题,到了sensor:094这一行莫名其妙少了整整60秒,肯定有啥原因。
而且后面两行很值得注意:
[08:48:03][W][component:237]: Component esp32_ble_tracker took a long time for an operation (82 ms).
[08:48:03][W][component:238]: Components should block for at most 30 ms.


我感觉时间戳和keyid的前后不一致不是一个问题。
回复

使用道具 举报

7

主题

269

帖子

1513

积分

金牌会员

Rank: 6Rank: 6

积分
1513
金钱
1244
HASS币
0
发表于 2024-6-14 10:58:28 | 显示全部楼层
XCray 发表于 2024-6-14 09:43
你咋总能碰到奇怪现象呢

时间戳前面都没问题,到了sensor:094这一行莫名其妙少了整整60秒,肯定 ...

我也不清楚
回复

使用道具 举报

7

主题

269

帖子

1513

积分

金牌会员

Rank: 6Rank: 6

积分
1513
金钱
1244
HASS币
0
发表于 2024-6-14 10:59:35 | 显示全部楼层
XCray 发表于 2024-6-14 09:43
你咋总能碰到奇怪现象呢

时间戳前面都没问题,到了sensor:094这一行莫名其妙少了整整60秒,肯定 ...

我就一直在考虑sensor:094前面还有哪一部分代码在处理?
回复

使用道具 举报

7

主题

269

帖子

1513

积分

金牌会员

Rank: 6Rank: 6

积分
1513
金钱
1244
HASS币
0
发表于 2024-6-14 11:00:43 | 显示全部楼层
XCray 发表于 2024-6-14 09:43
你咋总能碰到奇怪现象呢

时间戳前面都没问题,到了sensor:094这一行莫名其妙少了整整60秒,肯定 ...

我就一直在考虑sensor:094前面还有哪一部分代码在处理?
回复

使用道具 举报

7

主题

269

帖子

1513

积分

金牌会员

Rank: 6Rank: 6

积分
1513
金钱
1244
HASS币
0
发表于 2024-6-14 11:01:58 | 显示全部楼层
XCray 发表于 2024-6-14 09:43
你咋总能碰到奇怪现象呢

时间戳前面都没问题,到了sensor:094这一行莫名其妙少了整整60秒,肯定 ...

我就一直在考虑sensor:094前面还有哪一部分代码在处理?
回复

使用道具 举报

7

主题

269

帖子

1513

积分

金牌会员

Rank: 6Rank: 6

积分
1513
金钱
1244
HASS币
0
发表于 2024-6-14 11:03:49 | 显示全部楼层
XCray 发表于 2024-6-14 09:43
你咋总能碰到奇怪现象呢

时间戳前面都没问题,到了sensor:094这一行莫名其妙少了整整60秒,肯定 ...

esp32_ble_tracker:
  scan_parameters:
   interval: 180ms
   window: 120ms

和这个有没有关系?
回复

使用道具 举报

7

主题

269

帖子

1513

积分

金牌会员

Rank: 6Rank: 6

积分
1513
金钱
1244
HASS币
0
发表于 2024-6-14 11:08:40 | 显示全部楼层
XCray 发表于 2024-6-14 09:43
你咋总能碰到奇怪现象呢

时间戳前面都没问题,到了sensor:094这一行莫名其妙少了整整60秒,肯定 ...

还有 我用的是esp32c3合宙的
回复

使用道具 举报

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

本版积分规则

Archiver|手机版|小黑屋|Hassbian

GMT+8, 2024-12-28 01:37 , Processed in 0.131077 second(s), 31 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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