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

 找回密码
 立即注册
查看: 70981|回复: 115

[插件集成] 多模网关成功接入HA,可以用于生产环境

  [复制链接]

5

主题

47

帖子

710

积分

论坛DIY达人

积分
710
金钱
658
HASS币
20
发表于 2020-9-9 01:45:28 | 显示全部楼层 |阅读模式
本帖最后由 mantoui 于 2020-9-17 18:47 编辑

有大神搞得了 多模网关的接入
项目地址:https://github.com/AlexxIT/XiaomiGateway3

2020-09-17 V0.3.0  
  • 新增了蓝牙门锁设备 @rezmus
  • 新增AQARA开关转无线总做支持(单键)@Mantoui


       PS: AQARA开关转无线的开关接入HA,已经提交合并
       提前感受可以看:https://github.com/mantou-home/XiaomiGateway3/commit/61ba823ab3bcb731071f18656ba56affac832187


全部支持列表看下:https://github.com/AlexxIT/Xiaom ... i_gateway3/utils.py


已经升级v0.2.3版本,测试一天后,情况如下:
1.  zigbee设备正常使用,无延迟
2.  蓝牙设备可以收到上报,但电池部分都是100%



下面上图给大家:

1.png 2.png


备注:由于是开启的 TELNET入口获取的,有能力的大神,希望能研究一下如何备份固件之类等等其他的方式,避免官方的封堵


评分

参与人数 4金钱 +49 收起 理由
RDt4ZdcPpsPMfX + 1 厉害了word楼主!
佳艺造型 + 8 感谢楼主分享!
whxciotw + 20 感谢楼主分享!
XCray + 20 这才是最佳接入方法

查看全部评分

回复

使用道具 举报

2

主题

128

帖子

2352

积分

金牌会员

Rank: 6Rank: 6

积分
2352
金钱
2224
HASS币
0
发表于 2020-9-9 08:11:12 | 显示全部楼层
牛逼呀!!!!
回复

使用道具 举报

0

主题

41

帖子

3149

积分

论坛元老

Rank: 8Rank: 8

积分
3149
金钱
3108
HASS币
0
发表于 2020-9-9 09:17:52 | 显示全部楼层
太棒了,來追蹤一下,謝謝樓主
回复

使用道具 举报

0

主题

2

帖子

28

积分

新手上路

Rank: 1

积分
28
金钱
26
HASS币
0
发表于 2020-9-9 09:44:48 | 显示全部楼层
这个可以用了吗?666啊~
回复

使用道具 举报

4

主题

47

帖子

666

积分

论坛技术达人

积分
666
金钱
604
HASS币
60
发表于 2020-9-9 10:21:03 | 显示全部楼层
前进了一大步,看了下似乎需要保持和网关的telnet连接,希望不要被和谐。
回复

使用道具 举报

98

主题

2866

帖子

1万

积分

超级版主

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

Rank: 8Rank: 8

积分
11445
金钱
8514
HASS币
460

教程狂人突出贡献

发表于 2020-9-9 10:49:42 | 显示全部楼层
研究出这个方法的人是真牛!

这个方法比那种用homekit中转的高级多了。

不过这也反映出小米这款产品是多么的不靠谱,满满的山寨作风!

从软件方面来看,这个网关完全不像正规大厂家的产品!!!

如果是三两个人的初创小公司,做出这样的产品还算可以接受,小米正式发售的产品竟然如此低劣,真的刷新了我的认知!!!

评分

参与人数 1金钱 +5 收起 理由
RDt4ZdcPpsPMfX + 5 全部给你,说的太好了.

查看全部评分

回复

使用道具 举报

5

主题

47

帖子

710

积分

论坛DIY达人

积分
710
金钱
658
HASS币
20
 楼主| 发表于 2020-9-9 11:22:33 | 显示全部楼层
XCray 发表于 2020-9-9 10:49
研究出这个方法的人是真牛!

这个方法比那种用homekit中转的高级多了。

以我拙劣的代码知识看了一下代码:
try:
            telnet = Telnet(self.host, timeout=5)
            telnet.read_until(b"login: ")
            telnet.write(b"admin\r\n")
            telnet.read_until(b'\r\n# ')  # skip greeting

            telnet.write(b"cat /data/zigbee_gw/zigbee_gw.db | base64\r\n")
            telnet.read_until(b'\r\n')  # skip command
            raw = telnet.read_until(b'# ')
            raw = base64.b64decode(raw)
            db = Unqlite(raw)
            data = db.read_all()
            devices = []
问题出在,
telnet.write(b"cat /data/zigbee_gw/zigbee_gw.db | base64\r\n")
zigbee_gw.db” 文件不存在

微信图片_20200909112038.png

回复

使用道具 举报

98

主题

2866

帖子

1万

积分

超级版主

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

Rank: 8Rank: 8

积分
11445
金钱
8514
HASS币
460

教程狂人突出贡献

发表于 2020-9-9 11:29:39 | 显示全部楼层
mantoui 发表于 2020-9-9 11:22
以我拙劣的代码知识看了一下代码:
问题出在,“zigbee_gw.db” 文件不存在

我自己没有这款垃圾网关,无法测试,只能瞎猜哈~

你是不是没有绑定zigbee子设备?感觉这个文件可能是保存zigbee子设备信息的。
回复

使用道具 举报

5

主题

47

帖子

710

积分

论坛DIY达人

积分
710
金钱
658
HASS币
20
 楼主| 发表于 2020-9-9 11:38:48 | 显示全部楼层
XCray 发表于 2020-9-9 11:29
我自己没有这款垃圾网关,无法测试,只能瞎猜哈~

你是不是没有绑定zigbee子设备?感觉这个文件可能是保 ...

下面的json 文件都是绑定的子设备文件
里面看起来都是 设备信息,现在就很奇怪,这个文件文件应该是网关自己生成的,但不知为何   重启之后就不见了

这位大神的代码  有三种 方式:

v1
def _get_devices_v1(self) -> Optional[list]:
part = self.miio.send('get_device_list', retry_count=10)
v2
def _get_devices_v2(self) -> Optional[list]:
telnet.write(b"cat /data/zigbee/coordinator.info\r\n")
v3   目前失败
def _get_devices_v3(self):
telnet.write(b"cat /data/zigbee_gw/zigbee_gw.db | base64\r\n")



试试切换 V1 V2 看下
回复

使用道具 举报

4

主题

531

帖子

3912

积分

论坛元老

Rank: 8Rank: 8

积分
3912
金钱
3371
HASS币
120
发表于 2020-9-9 12:04:48 | 显示全部楼层
感觉会被小米修复啊,这都应该属于安全漏洞了
回复

使用道具 举报

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

本版积分规则

Archiver|手机版|小黑屋|Hassbian

GMT+8, 2024-4-27 04:22 , Processed in 0.066539 second(s), 42 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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