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

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

[进阶教程] 米家蓝牙温湿度计2 LYWSD03MMC 無需加密密钥 Bind Key 接入 HA

[复制链接]

19

主题

269

帖子

1888

积分

金牌会员

Rank: 6Rank: 6

积分
1888
金钱
1619
HASS币
50
发表于 2020-11-26 08:47:27 | 显示全部楼层
OpenMQTTGateway v0.9.5,小米温度计2不需要刷固件,mqtt直接就进来了
回复

使用道具 举报

30

主题

493

帖子

4767

积分

论坛元老

佑桑

Rank: 8Rank: 8

积分
4767
金钱
4259
HASS币
156

教程狂人

 楼主| 发表于 2020-11-26 11:30:25 | 显示全部楼层
姚远 发表于 2020-11-26 08:47
OpenMQTTGateway v0.9.5,小米温度计2不需要刷固件,mqtt直接就进来了

不刷固件的話, 因為小米的廣播封包有加密,
OpenMQTTGateway v0.9.5 尚不支持解密, 只能定期發動藍芽配對, 並在配對過程中取得溫濕度
這個過程愈頻繁, 耗電也就愈快

實際上我也遇到這種狀況, 不知道你是如何解決的
ASRock H370 PRO4, 48GB, 8TBx3 + 2TBx3
ESXi 6.7 + Ununtu + Docker + HASS.IO -> Homeassistant OS
(Home Assistant Supervised 官方文件)
回复

使用道具 举报

19

主题

269

帖子

1888

积分

金牌会员

Rank: 6Rank: 6

积分
1888
金钱
1619
HASS币
50
发表于 2020-11-26 13:11:28 | 显示全部楼层
本帖最后由 姚远 于 2020-11-26 13:14 编辑
chinyaolin 发表于 2020-11-26 11:30
不刷固件的話, 因為小米的廣播封包有加密,
OpenMQTTGateway v0.9.5 尚不支持解密, 只能定期發動藍芽配對, ...

我没注意,我没管解密的事情,上电就看它读出来温湿度。你是说虽然可以读取温湿度,但方式不对,所以小米温度计特别费电?要是这样,还是要刷小米温度计固件了。
esp32读小米温湿度计蓝牙的距离还是可以的,隔着一堵墙,距离5米,可以读到,但就是很长时间才能读到一次。而近距离的,则是差不多10分钟一次。你是说它每次都是依靠重新链接握手之后才读到的?
才注意到你这个固件的核心,是主动广播


回复

使用道具 举报

30

主题

493

帖子

4767

积分

论坛元老

佑桑

Rank: 8Rank: 8

积分
4767
金钱
4259
HASS币
156

教程狂人

 楼主| 发表于 2020-11-26 13:29:31 | 显示全部楼层
姚远 发表于 2020-11-26 13:11
我没注意,我没管解密的事情,上电就看它读出来温湿度。你是说虽然可以读取温湿度,但方式不对,所以小米 ...

對的~ 這個固件所提供的主動廣播是不加密的, 而原廠固件的固件則是加密的
若 ESP32 刷的是 ESPHome 的話, 則可以把 bind key 寫入
而 OMG 目前不提供這個方式, 而是以我前面所說的做法
ASRock H370 PRO4, 48GB, 8TBx3 + 2TBx3
ESXi 6.7 + Ununtu + Docker + HASS.IO -> Homeassistant OS
(Home Assistant Supervised 官方文件)
回复

使用道具 举报

19

主题

269

帖子

1888

积分

金牌会员

Rank: 6Rank: 6

积分
1888
金钱
1619
HASS币
50
发表于 2020-11-26 13:42:19 | 显示全部楼层
chinyaolin 发表于 2020-11-26 13:29
對的~ 這個固件所提供的主動廣播是不加密的, 而原廠固件的固件則是加密的
若 ESP32 刷的是 ESPHome 的話, ...

我没有太明白。我理解这个固件解决两个问题,一个是解密温度计的消息,一个是主动广播节电。我现在esp32刷的是0.95版,直接就获得了温湿度、电量等消息,也就是说不需要它自己解密了。另一个是主动广播节电问题。我对蓝牙机制不是很清楚。小米没有主动广播时,esp32主动去找它链接。现在它可以广播了,esp32和它链接时不再需要主动去链接了?那esp32刷的固件配置是不是需要改变啊?毕竟它只是被动接收,不要再去找了。

另外,我的小米温湿度计2是在闲鱼买的,买了一批,看着应该不是山寨的。但,关于没有加密,也可能是我买的小米温湿度计2是早期的产品,没有加密,其他人别被我误导啊。
回复

使用道具 举报

19

主题

269

帖子

1888

积分

金牌会员

Rank: 6Rank: 6

积分
1888
金钱
1619
HASS币
50
发表于 2020-11-26 17:38:09 | 显示全部楼层
姚远 发表于 2020-11-26 13:42
我没有太明白。我理解这个固件解决两个问题,一个是解密温度计的消息,一个是主动广播节电。我现在esp32 ...

我今天观察了一下,确实电量变化挺快的。

给小米刷固件。原以为很复杂,其实很简单,电脑:
1 连接网站:https://atc1441.github.io/TelinkFlasher.html
2 下载小米温湿度计固件,并解压缩,获得固件
3 搜索小米温湿度计,并配对链接
4 激活
5 刷机
6 等待
7 mqtt看结果
回复

使用道具 举报

30

主题

493

帖子

4767

积分

论坛元老

佑桑

Rank: 8Rank: 8

积分
4767
金钱
4259
HASS币
156

教程狂人

 楼主| 发表于 2020-11-27 10:58:06 | 显示全部楼层
本帖最后由 chinyaolin 于 2020-11-27 11:07 编辑
姚远 发表于 2020-11-26 13:42
我没有太明白。我理解这个固件解决两个问题,一个是解密温度计的消息,一个是主动广播节电。我现在esp32 ...

我用我的理解說說看
1.不管是官方固件或是我帖子所說的自製固件, 都是會廣播溫濕度資訊的, 只是前者有加密而後者沒有加密
2.這個 LYWSD03MMC 在藍芽配對的過程中, 可以取得解密的 bind key 以及未加密的溫濕度
3.使用 bind key 可以拿來解密官方固件的廣播加密資訊, 但需要接受端支持
4.使用自製固件後, 廣播的溫濕度資訊則不再加密, 但無法與米家APP配對了, 一樣的接受端也需要支持

所以
1.OpenMQTT Gateway 0.9.5 並不支持解密功能, 對於官方固件是採用上述 (2) 的方法取得溫濕度資料, 而且因為是由 OMG 主動發起配對, 所以更新頻率長, 也造成耗電
2.同上, 若使用了自製固件, 因為 OpenMQTT Gateway 0.9.5 支持而可以採用上述 (4) 的方法, 大大減低了 LYWSD03MMC 的耗電(因為是被動的接收廣播資訊而不需要主動發起配對)
3.ESPHome 則有點不同, 對於官方固件可以在 YAML 檔案中指定 bin key, 從而採方法 (3) 被動接受廣播封包並解密出溫濕度資訊
4.但同時, 刷完自製固件後, 你可以回到刷固件的網頁中, 重新指定廣播封包格式為 "Mi Like", 這也受 ESPHome 支持, 可在 YAML 中隨便設定一組 key, 使用方法(4)讀取溫濕度
5.另外像是論壇中幾篇使用自定义插件, 應該都是類似的處理方式


我的建議
已經使用了 OpenMQTTGateway 並接入多個藍芽設備, 推薦「自製固件」
使用了論壇上推薦的插件或是 ESPHome, 並且以 bind key 接入成功, 沒必要刷固件, 推薦「官方固件」
若為了保證與米家APP相容, 推薦「官方固件」是唯一選擇

ASRock H370 PRO4, 48GB, 8TBx3 + 2TBx3
ESXi 6.7 + Ununtu + Docker + HASS.IO -> Homeassistant OS
(Home Assistant Supervised 官方文件)
回复

使用道具 举报

3

主题

91

帖子

1275

积分

金牌会员

Rank: 6Rank: 6

积分
1275
金钱
1184
HASS币
10
发表于 2021-1-31 06:25:17 来自手机 | 显示全部楼层
谢谢分享
回复

使用道具 举报

7

主题

87

帖子

733

积分

高级会员

Rank: 4

积分
733
金钱
646
HASS币
0
发表于 2021-6-11 09:19:30 | 显示全部楼层
5. 開啟手機藍芽、使用手機連線至 TelinkFlasher
6. 依照附圖
  (1)Connectt 選擇你的蓝牙温湿度计2

我用ios和华为点击Connectt没有反应啊?是要root吗?
回复

使用道具 举报

30

主题

493

帖子

4767

积分

论坛元老

佑桑

Rank: 8Rank: 8

积分
4767
金钱
4259
HASS币
156

教程狂人

 楼主| 发表于 2021-6-11 09:20:48 | 显示全部楼层
zgp0126 发表于 2021-6-11 09:19
我用ios和华为点击Connectt没有反应啊?是要root吗?

沒有使用過 iOS
我在安卓上使用 Chrome 瀏覽器可以正常操作
你試試?
ASRock H370 PRO4, 48GB, 8TBx3 + 2TBx3
ESXi 6.7 + Ununtu + Docker + HASS.IO -> Homeassistant OS
(Home Assistant Supervised 官方文件)
回复

使用道具 举报

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

本版积分规则

Archiver|手机版|小黑屋|Hassbian

GMT+8, 2024-4-20 15:49 , Processed in 0.087497 second(s), 31 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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