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

 找回密码
 立即注册
查看: 12012|回复: 54

[基础教程] Xiaomi Gateway 3添加不在支持列表中的设备

  [复制链接]

3

主题

22

帖子

267

积分

中级会员

Rank: 3Rank: 3

积分
267
金钱
245
HASS币
0
发表于 2022-8-21 17:23:46 | 显示全部楼层 |阅读模式
本帖最后由 zhf883680 于 2024-6-13 22:15 编辑

起因:刚入手多模网关,发现家里墙壁开关无法接入ZNSN BLE-Mesh Wall Switch ML3
然后研究了下Xiaomi Gateway 3 进行如下操作实现其接入了
Converters · AlexxIT/XiaomiGateway3 Wiki (github.com)
在hass config文件夹下面创建
xiaomi_gateway3.py

然后再小米米家产品库找到对应产品,点使用说明
下载.png
再新标签页的url找到pdid的数字 下载 (1).png
根据XiaomiGateway3/devices.py at master · AlexxIT/XiaomiGateway3 (github.com) 找到相似产品
图片3.png
将其根据convert的文档添加即可  2024.6.13更新  
from custom_components.xiaomi_gateway3.core.devices import *
# from custom_components.xiaomi_gateway3.core.converters.devices import * 旧版本代码 已弃用
DEVICES = [{
    16415: [None, "Mesh Smart Plug V6", "giot.plug.v6shsm"],
    "spec": [
        BaseConv("plug", "switch", mi="2.p.1"),
        MapConv("power_on_state", "select", mi="2.p.3", map={0: "off", 1: "on", 2: "previous"}),
        # Inching mode
        BoolConv("inching_mode", "switch", mi="2.p.2"),
        MapConv("inching_state", "select", mi="3.p.1", map={False: "off", True: "on"}),
        MathConv("inching_time", "number", mi="3.p.2", multiply=0.5, min=1, max=7200, step=1, round=1),
        MapConv("led", "select", mi="4.p.1", map={0: "follow_switch", 1: "opposite_to_switch", 2: "off", 3: "on"})
    ]
}] + DEVICES


注意:前面的pd_id一定不能错,建议详细比对找到的模板与自己的产品 大部分类似应该就能用
然后重启hass
图片5.png

此文为不支持的墙壁开关的写法,两开,一开 找到XiaomiGateway3/devices.py at master · AlexxIT/XiaomiGateway3 (github.com) 中对应产品,复制类似代码









图片4.png

评分

参与人数 3金钱 +13 收起 理由
2833 + 1
xmzlj + 2 论坛有你更精彩!
jjcs + 10 感谢楼主分享!

查看全部评分

回复

使用道具 举报

3

主题

22

帖子

267

积分

中级会员

Rank: 3Rank: 3

积分
267
金钱
245
HASS币
0
 楼主| 发表于 2022-8-21 17:25:35 | 显示全部楼层
config下面创建
xiaomi_gateway3.py
具体看官方说明即可  第一次发文吧,排版有点问题
回复

使用道具 举报

59

主题

673

帖子

4289

积分

论坛元老

Rank: 8Rank: 8

积分
4289
金钱
3611
HASS币
20
发表于 2022-8-22 09:46:00 | 显示全部楼层
你好 添加后重启ha就可以生效吗 还要其他操作吗
回复

使用道具 举报

46

主题

1654

帖子

6676

积分

论坛元老

Rank: 8Rank: 8

积分
6676
金钱
5012
HASS币
40
发表于 2022-8-22 10:22:13 | 显示全部楼层
感谢分享,太喜欢这类教程了
折腾精神永存,感恩感谢论坛每一位愿意分享和帮助过我的大佬,论坛有你更精彩
回复

使用道具 举报

59

主题

673

帖子

4289

积分

论坛元老

Rank: 8Rank: 8

积分
4289
金钱
3611
HASS币
20
发表于 2022-8-22 13:58:01 | 显示全部楼层
本帖最后由 gmshiwoge 于 2022-8-22 13:59 编辑

老哥 刚刚用了你的方法 把我2开的开关改好了 本来默认只有一个开关 有一边在ha没显示
方法是 在Xiaomi Gateway 3 查看蓝牙开关 id
复制代码你的代码修改下 重启ha修改完成
from custom_components.xiaomi_gateway3.core.converters.devices import *

DEVICES = [{
    7220: ["znsn", "Mesh Triple Wall Switch", "zm2d"],  #分别代表 公司 名称(好像无用) 型号
    "spec": [
        Converter("channel_1", "switch", mi="2.p.1"),  # 具体什么含义也不是很清楚 大概就是开关名称 功能 后面的不清楚 建议比对类似产品 或者查看 官方说明
        Converter("channel_2", "switch", mi="3.p.1"),
    ],
}] + DEVICES
回复

使用道具 举报

3

主题

22

帖子

267

积分

中级会员

Rank: 3Rank: 3

积分
267
金钱
245
HASS币
0
 楼主| 发表于 2022-8-23 09:30:01 | 显示全部楼层
gmshiwoge 发表于 2022-8-22 13:58
老哥 刚刚用了你的方法 把我2开的开关改好了 本来默认只有一个开关 有一边在ha没显示
方法是 在Xiaomi Gate ...

欸 可以直接xiaomi gateway3 查看id吗... 我没找到欸
回复

使用道具 举报

0

主题

23

帖子

195

积分

注册会员

Rank: 2

积分
195
金钱
172
HASS币
0
发表于 2022-8-23 11:38:08 | 显示全部楼层
有新设备的话直接去github里加上这个新设备吧
这个路径下 xiaomi_gateway3/core/converters/devices.py
自己本地先改好测试下, 本地就能用了
没问题了提交个PR作者看到了就会合并进去的
下次发布新版本正常升级就好了
回复

使用道具 举报

0

主题

215

帖子

2551

积分

金牌会员

Rank: 6Rank: 6

积分
2551
金钱
2336
HASS币
0
发表于 2022-8-23 12:12:40 | 显示全部楼层
如果是一个新设备,都没法接入,那到底去哪看这个pd_id?
回复

使用道具 举报

3

主题

22

帖子

267

积分

中级会员

Rank: 3Rank: 3

积分
267
金钱
245
HASS币
0
 楼主| 发表于 2022-8-23 20:43:53 | 显示全部楼层
sxrcm 发表于 2022-8-23 12:12
如果是一个新设备,都没法接入,那到底去哪看这个pd_id?

文章里面的小米产品库 我做了超链接了 里面找到产品 然后看源代码获取pd_id  
如果里面没有产品的话不行的
然后去找相似产品的模块 添加即可
回复

使用道具 举报

4

主题

15

帖子

169

积分

注册会员

Rank: 2

积分
169
金钱
154
HASS币
0
发表于 2022-8-26 08:35:19 | 显示全部楼层
你这个可以本地执行的吗,把路由器上网功能关掉然后通过ha调用能执行到吗
回复

使用道具 举报

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

本版积分规则

Archiver|手机版|小黑屋|Hassbian

GMT+8, 2024-11-23 16:35 , Processed in 0.059309 second(s), 35 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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