找回密码
 立即注册

微信扫码登录

搜索
楼主: qjrxsoft

[经验分享] XiaomiGateway3(2025年6月27日)修改版

 火... [复制链接]

1

主题

3

回帖

42

积分

新手上路

积分
42
金钱
38
HASS币
0
发表于 2025-7-6 01:49:09 | 显示全部楼层
感谢大佬分享
回复

使用道具 举报

0

主题

20

回帖

550

积分

高级会员

积分
550
金钱
530
HASS币
0
发表于 2025-7-6 10:33:56 | 显示全部楼层
看下看下看下看下看下看下
回复

使用道具 举报

6

主题

262

回帖

1225

积分

金牌会员

积分
1225
金钱
957
HASS币
10
发表于 2025-7-6 17:29:28 | 显示全部楼层
感谢分享
回复

使用道具 举报

6

主题

262

回帖

1225

积分

金牌会员

积分
1225
金钱
957
HASS币
10
发表于 2025-7-6 17:59:51 | 显示全部楼层
覆盖-重启-重新添加账号后, 日志提示获取设备列表失败

2025-07-06 09:51:50.145 ERROR (MainThread) [custom_components.xiaomi_gateway3.core.cloud] Can't request MIoT API /v2/home/device_list_page

Traceback (most recent call last):

  File "/config/custom_components/xiaomi_gateway3/core/xiaomi_cloud.py", line 194, in request

    resp = json.loads(decrypt_rc4(signed_nonce, resp))

                      ~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^

  File "/config/custom_components/xiaomi_gateway3/core/xiaomi_cloud.py", line 283, in decrypt_rc4

    return RC4(base64.b64decode(pwd.encode())).init1024().crypt(base64.b64decode(data))

                                                                ~~~~~~~~~~~~~~~~^^^^^^

  File "/usr/local/lib/python3.13/base64.py", line 88, in b64decode

    return binascii.a2b_base64(s, strict_mode=validate)

           ~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^

binascii.Error: Invalid base64-encoded string: number of data characters (21) cannot be 1 more than a multiple of 4

回复

使用道具 举报

4

主题

273

回帖

2614

积分

金牌会员

积分
2614
金钱
2337
HASS币
0
 楼主| 发表于 2025-7-6 19:03:37 | 显示全部楼层
NiaoBlush 发表于 2025-7-6 17:59
覆盖-重启-重新添加账号后, 日志提示获取设备列表失败

2025-07-06 09:51:50.145 ERROR (MainThread) [cust ...

不科学啊,不应该会报这样的错啊?没有遇到过。你可以试着打开config/custom_components/xiaomi_gateway3/core/xiaomi_cloud.py,在xiaomi_cloud.py里最后一行找到:

return RC4(base64.b64decode(pwd.encode())).init1024().crypt(base64.b64decode(data))
替换成
return RC4(base64.b64decode(pwd.encode())).init1024().crypt(base64.b64decode(data, validate=False))
然后保存过,重启ha,看看正常吗?
回复

使用道具 举报

0

主题

1

回帖

31

积分

新手上路

积分
31
金钱
30
HASS币
0
发表于 2025-7-6 19:21:32 | 显示全部楼层
感谢大佬
回复

使用道具 举报

0

主题

6

回帖

65

积分

注册会员

积分
65
金钱
59
HASS币
0
发表于 2025-7-7 11:19:41 | 显示全部楼层
感谢分享
回复

使用道具 举报

6

主题

262

回帖

1225

积分

金牌会员

积分
1225
金钱
957
HASS币
10
发表于 2025-7-7 16:18:57 | 显示全部楼层
qjrxsoft 发表于 2025-7-6 19:03
不科学啊,不应该会报这样的错啊?没有遇到过。你可以试着打开config/custom_components/xiaomi_gateway3 ...

加上了validate=False,还是报一样的错(从日志中可以看到改动是生效的)。
我把 decrypt_rc4 函数中的data打到日志里, 发现输出的是 {"code":2,"message":"auth error"}
怀疑是密码输入错了,于是去 account.xiaomi.com 用同样的账号和密码是可以登录的。(都是中国区)
怀疑是用了手机号的问题,于是换了邮箱和小米id,但是也报同样的错。

回复

使用道具 举报

3

主题

294

回帖

2726

积分

金牌会员

积分
2726
金钱
2429
HASS币
10
发表于 2025-7-7 16:48:33 | 显示全部楼层
        感谢楼主分享!
回复

使用道具 举报

0

主题

2

回帖

49

积分

新手上路

积分
49
金钱
47
HASS币
0
发表于 2025-7-7 16:50:16 | 显示全部楼层
感谢分享!
回复

使用道具 举报

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

本版积分规则

Archiver|手机版|小黑屋|Hassbian ( 晋ICP备17001384号-1 )

GMT+8, 2025-9-5 21:12 , Processed in 0.148707 second(s), 11 queries , MemCached On.

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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