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

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

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

  [复制链接]

6

主题

226

帖子

1241

积分

金牌会员

Rank: 6Rank: 6

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

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

sensor:094不是一个固定的间隔,一会60,一会8,一会5,不固定
回复

使用道具 举报

6

主题

226

帖子

1241

积分

金牌会员

Rank: 6Rank: 6

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

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

X大 这是我改的就差keyid的文件,您有空能不能帮我看看,我是实在搞不定,现在就差keyid和所有的时间戳不对

mine.zip

11.57 KB, 下载次数: 1

回复

使用道具 举报

105

主题

2929

帖子

1万

积分

超级版主

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

Rank: 8Rank: 8

积分
11788
金钱
8794
HASS币
460

教程狂人突出贡献

 楼主| 发表于 4 天前 | 显示全部楼层
silang521 发表于 2024-6-14 16:14
X大 这是我改的就差keyid的文件,您有空能不能帮我看看,我是实在搞不定,现在就差keyid和所有的时间戳不 ...

实在看不出有什么问题,你试试换块esp32、换个esphome版本吧。

另外,esphome的传感器数值默认是浮点数,我没研究是多少位的。也就是说,向ha传递的过程中必然还会有一次数值转换,也许问题就出在这儿。

因为你的keyid开头是80,也就是第一个bit是1,被误识别为符号位也容易理解。所以我的建议是把这4个字节分成两部分。

时间戳没啥要紧的,因为门锁自己的时钟误差比较大。但是为啥你那儿会出现差几秒几十秒的现象,我实在无法理解。
回复

使用道具 举报

6

主题

226

帖子

1241

积分

金牌会员

Rank: 6Rank: 6

积分
1241
金钱
1015
HASS币
0
发表于 3 天前 | 显示全部楼层
XCray 发表于 2024-6-14 17:07
实在看不出有什么问题,你试试换块esp32、换个esphome版本吧。

另外,esphome的传感器数值默认是浮点数 ...

还是浮点数的问题 -2147483648 到 2147483647   
X大 我想直接传递80010005这种hex,需要怎么修改keyid,我想传递过去让nodered判断,不传递10进制,这样应该就不会有问题啦
回复

使用道具 举报

105

主题

2929

帖子

1万

积分

超级版主

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

Rank: 8Rank: 8

积分
11788
金钱
8794
HASS币
460

教程狂人突出贡献

 楼主| 发表于 3 天前 | 显示全部楼层
silang521 发表于 2024-6-15 10:20
还是浮点数的问题 -2147483648 到 2147483647   
X大 我想直接传递80010005这种hex,需要怎么修改keyid, ...

改用文本传感器。具体怎么弄以我的水平就搞不懂了,看文档吧。
分成两部分是我能想到的比较简便的方法,建议,采纳与否自己看吧。
回复

使用道具 举报

6

主题

226

帖子

1241

积分

金牌会员

Rank: 6Rank: 6

积分
1241
金钱
1015
HASS币
0
发表于 3 天前 | 显示全部楼层
XCray 发表于 2024-6-15 10:41
改用文本传感器。具体怎么弄以我的水平就搞不懂了,看文档吧。
分成两部分是我能想到的比较简便的方法, ...

好的 X大
我更换了一个esp-wroom-32还是一样
[10:43:27][D][xiaomi_blez:124]: 接收到的所有数据 Data: 50.44.99.05.4C.41.C8.DB.13.AE.FB.0B.00.09.20.05.00.01.80.C6.FF.6C.66 (23)
[10:43:27][D][xiaomi_blez:126]: sx2 Packet : 50.44.99.05.4C.41.C8.DB.13.AE.FB.0B.00.09.20.05.00.01.80.C6.FF.6C.66 (23)
[10:43:27][D][xiaomi_blez:078]:  payload 11
[10:43:27][D][xiaomi_blez:095]: value_length:9;payload_length:12
[10:43:27][D][xiaomi_blez:021]: key16hex 80010005
[10:43:27][D][xiaomi_blez:251]: Got Xiaomi MijiaLock (FB:AE:13B:C8:41):
[10:43:27][D][xiaomi_blez:254]:   OpMethod:32
[10:43:27][D][xiaomi_blez:266]:   OpTS:1718419398
[10:43:27][D][xiaomi_blez:269]:   KeyID:-2147418107
[10:43:27][D][sensor:094]: 'OpMethod': Sending state 32.00000  with 0 decimals of accuracy
[10:43:27][D][sensor:094]: 'KeyID': Sending state 2147549184.00000  with 0 decimals of accuracy
[10:43:27][D][sensor:094]: 'OpTS': Sending state 1718419456.00000  with 0 decimals of accuracy
[10:43:27][D][sensor:094]: 'BattLvl': Sending state 63.00000 % with 0 decimals of accuracy
[10:43:27][D][sensor:094]: 'BattLvlTS': Sending state 1073534912.00000  with 0 decimals of accuracy
[10:43:27][D][xiaomi_zelkova:067]: battlvlts 47 1073465564
[10:43:28][W][component:237]: Component esp32_ble_tracker took a long time for an operation (100 ms).
[10:43:28][W][component:238]: Components should block for at most 30 ms.
[10:43:28][D][xiaomi_blez:124]: 接收到的所有数据 Data: 50.44.99.05.4D.41.C8.DB.13.AE.FB.07.00.05.00.C6.FF.6C.66 (19)
[10:43:28][D][xiaomi_blez:126]: sx2 Packet : 50.44.99.05.4D.41.C8.DB.13.AE.FB.07.00.05.00.C6.FF.6C.66 (19)
说明是esphome或者代码的问题 和esp32问题不大,


主要是分成两个是不是要添加一个keyid1,这个需要怎么添加,我是不明白
回复

使用道具 举报

6

主题

226

帖子

1241

积分

金牌会员

Rank: 6Rank: 6

积分
1241
金钱
1015
HASS币
0
发表于 昨天 12:49 | 显示全部楼层
XCray 发表于 2024-6-15 10:41
改用文本传感器。具体怎么弄以我的水平就搞不懂了,看文档吧。
分成两部分是我能想到的比较简便的方法, ...

X大 貌似我已经解决啦
[12:20:38][D][xiaomi_blez:260]:   BattLevel: 50
[12:20:38][D][xiaomi_blez:272]:   BattLevelTS: 1718598025
[12:20:38][D][xiaomi_zelkova:080]: battlvlts62
[12:20:38][D][sensor:094]: 'BattLvl': Sending state 50.00000 % with 0 decimals of accuracy
[12:20:38][D][xiaomi_zelkova:084]: battlvlts 47 1718598025
[12:20:38][D][sensor:094]: 'BattLvlTS': Sending state 1718598025.00000  with 0 decimals of accuracy
[12:20:38][D][xiaomi_zelkova:086]: battlvlts 47 1718598025

我直接修改的esphome系统文件 是float和double的问题 单精度浮点数值和双精度浮点数值  float不能上传超过7位数的数值,超过精度会有误差
回复

使用道具 举报

105

主题

2929

帖子

1万

积分

超级版主

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

Rank: 8Rank: 8

积分
11788
金钱
8794
HASS币
460

教程狂人突出贡献

 楼主| 发表于 9 小时前 | 显示全部楼层
silang521 发表于 2024-6-17 12:49
X大 貌似我已经解决啦
[12:20:38][D][xiaomi_blez:260]:   BattLevel: 50
[12:20:38][D][xiaomi_blez:272 ...

也是一个办法。

溢出的问题,我等新手常见的错误
回复

使用道具 举报

6

主题

226

帖子

1241

积分

金牌会员

Rank: 6Rank: 6

积分
1241
金钱
1015
HASS币
0
发表于 7 小时前 | 显示全部楼层
XCray 发表于 2024-6-18 10:43
也是一个办法。

溢出的问题,我等新手常见的错误

X大  调试日志里面是正常啦,但是ha里面并不正常还是原来的,说明还是esphome的问题  float都要改成double,这个工作量太大,搞不了啦,暂时只能这样啦
回复

使用道具 举报

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

本版积分规则

Archiver|手机版|小黑屋|Hassbian

GMT+8, 2024-6-18 20:42 , Processed in 0.055697 second(s), 32 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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