本帖最后由 tangli159 于 2022-1-2 12:11 编辑
楼主你好,按照你的帖子逐步操作我得到了一些数据,与您的大致一样,但还是有一些不同。可以麻烦您帮忙看看么?
我的体脂称是云麦mini3。
首先增加on_ble_advertise自动化,再次称重后得到的数据如下。UUID和data都没有以0x开头了,UUID之间还有个“:”。
[09:30:14][D][ble_adv:157]: New BLE device
[09:30:14][D][ble_adv:158]: address: AA:BB:CC:XX:YY:ZZ
[09:30:14][D][ble_adv:159]: name:
[09:30:14][D][ble_adv:160]: Advertised service UUIDs:
[09:30:14][D][ble_adv:162]: - 13:20
[09:30:14][D][ble_adv:164]: Advertised service data:
[09:30:14][D][ble_adv:168]: Advertised manufacturer data:
[09:30:14][D][ble_adv:170]: - YY:ZZ: (length 14)
其次,打印出广播(已经删掉部分重复数据),根据体重105.9斤,59.25kg进行解密数据,秤默认显示斤。
广播数据为 YY:ZZ:XX.CC.BB.AA.08.52.15.DD.EE.FF.GG.00.00.HH YY:ZZ:XX.CC.BB.AA为MAC地址; 08.52.15为固定数字,不知道什么意思,称重时抓包app也没有找到085215相关数字,16进制转化后也没有,估计是特定标志; DD为打开开关后的称重次数(00为第一次); EE为本次称重第几次读数,为可信度标示; FF:GG为体重kg数*100; 00.00和楼主推测的抗阻值肯定不一样,因为从头到尾多次测量没有改变,可能就是占位数的; HH下秤时和DD一致,代表本次打开开关后的称重次数;HH称重时有变化,但不知道什么意思,如果是抗阻的话,转换成10进制就是只有100-200左右?
#校准
[10:22:18][D][ble_adv:152]: Advertised manufacturer data:
[10:22:18][D][ble_adv:154]: - YY:ZZ:XX.CC.BB.AA.08.52.15.00.00.00.00.00.00.00 (14)
#第一次读数
[10:22:23][D][ble_adv:152]: Advertised manufacturer data:
[10:22:23][D][ble_adv:154]: - YY:ZZ:XX.CC.BB.AA.08.52.15.00.01.14.B4.00.00.A1 (14)
[10:22:24][D][ble_adv:152]: Advertised manufacturer data:
[10:22:24][D][ble_adv:154]: - YY:ZZ:XX.CC.BB.AA.08.52.15.00.01.14.AF.00.00.BA (14)
#第二次读数
[10:22:26][D][ble_adv:152]: Advertised manufacturer data:
[10:22:26][D][ble_adv:154]: - YY:ZZ:XX.CC.BB.AA.08.52.15.00.02.14.AF.00.00.B9 (14)
#第三次读数
[10:22:33][D][ble_adv:152]: Advertised manufacturer data:
[10:22:33][D][ble_adv:154]: - YY:ZZ:XX.CC.BB.AA.08.52.15.00.03.14.AF.00.00.B8 (14)
#下秤
[10:22:34][D][ble_adv:152]: Advertised manufacturer data:
[10:22:34][D][ble_adv:154]: - YY:ZZ:XX.CC.BB.AA.08.52.15.00.00.00.00.00.00.00 (14)
以及不知道上面的改变对您给出的压缩包里面的代码有无影响呢?纯小白,啥也不懂。如果有影响,需要怎么修改呢?
cpp文件第48行
if (!service_data.uuid.contains(0xZZ, 0xYY)) { //此处,UUID为MAC地址后两个字节,可改为自动截取,逆序
这里是否需要改为
if (!service_data.uuid.contains(YYZZ)) { //此处,UUID为MAC地址后两个字节,可改为自动截取,逆序
以及其他关于数字的代码是否要修改呢?如<uint8_t>,data[8]之类的……
外置文件夹放置路径是不是\\192.168.123.242\config\esphome\esp32s\src\esphome\components呢?
根据esphome官网信息,我是否应该在/esphome文件夹里面再新建一个my_components呢?还是就用上面的路径就可以了?
Example of local components
Given the above example of my_components, the folder structure must look like:
<CONFIG_DIR>
├── node1.yaml
├── node2.yaml
└── my_components
├── my_component1
│ ├── __init__.py
│ ├── component1.cpp
│ ├── component1.h
│ └── sensor.py
└── my_component2
├── __init__.py
├── component2.cpp
├── component2.h
└── switch.py
期待您能解答我的疑问,谢谢。
|