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

 找回密码
 立即注册
查看: 1280|回复: 5

[技术探讨] gateway3 4.0.3的converters怎么用?

[复制链接]

22

主题

230

帖子

810

积分

高级会员

Rank: 4

积分
810
金钱
580
HASS币
0
发表于 2024-4-18 13:42:04 | 显示全部楼层 |阅读模式
本帖最后由 misLia 于 2024-4-18 13:54 编辑

更新了gateway3到4.0.3,结果一个易来的人体存在传感器用不了了。人体存在状态变成Switch了,光照数据,距离都没了。这个易来的人体存在传感器和领普的那个一模一样。3.3.6以前的gateway3,我把devices.py里领普的人体存在的那段代码找出来,改成易来的名字写在xiaomi_gateway3.py,放在config文件下,就能正常工作了。更新4.0.3后,用同样的方法却不行了。有大大神能指点指点吗?目前多模网关2固件号还是1.0.3。难道是固件的问题?该死的小米多模网关,固件升级还失败。小米客服让我恢复出厂设置,这恢复出厂设置,我HASS里那些自动化,岂不是得全部重写?这TMD得多大个坑啊?
from custom_components.xiaomi_gateway3.core.converters.devices import *

DEVICES = [{
    17160: ["yeelight", "occupancy-sensor", "0000A0BF", "yeelink.sensor_occupy.a"],
    "spec": [
        # main sensors
        BoolConv("occupancy", "binary_sensor", mi="2.p.1"),
        MathConv("distance", "sensor", mi="3.p.3"),
        BaseConv("illuminance", "sensor", mi="2.p.5"),
        MapConv("action", "sensor", mi="3.e.1.p.1", map={0: "stop", 1: "approach", 2: "away"}),
        # other sensors
        MathConv("occupancy_duration", "sensor", mi="2.p.3", entity={"category": "diagnostic", "enabled": False, "units": UNIT_MINUTES}),
        MathConv("not_occupancy_duration", "sensor", mi="2.p.4", entity={"category": "diagnostic", "enabled": False, "units": UNIT_MINUTES}),
        # occupancy settings
        MathConv("occupancy_timeout", "number", mi="2.p.2", min=3, max=10000, entity={"category": "config", "enabled": False, "units": UNIT_SECONDS}),
        InductionRange("induction_range", "text", mi="3.p.2", entity=ENTITY_CONFIG),
        MathConv("approach_distance", "number", mi="3.p.4", min=1, max=5, entity={"category": "config", "units": UNIT_METERS}),
        BaseConv("led", "switch", mi="4.p.1"),  # bool, config
    ],
}] + DEVICES



昨晚折腾了一晚上,都不行。我尝试着把下面这段代码直接写在devices.py中领普人体存在设备信息的代码前。这会产品信息,人在状态对了,但是光照和action依旧没有。
17160: ["yeelight", "occupancy-sensor", "0000A0BF, yeelink.sensor_occupy.a"],
另外再问下这个代码里类似mi=“2.p.1”是什么意思?

回复

使用道具 举报

22

主题

230

帖子

810

积分

高级会员

Rank: 4

积分
810
金钱
580
HASS币
0
 楼主| 发表于 2024-4-18 16:21:08 | 显示全部楼层
怎么都只看,不回复啊?顶下。
回复

使用道具 举报

77

主题

1391

帖子

2万

积分

元老级技术达人

积分
24331
金钱
22900
HASS币
290
发表于 2024-4-18 19:40:02 | 显示全部楼层
https://github.com/AlexxIT/XiaomiGateway3/wiki/Converters

第一句已经改为:

from custom_components.xiaomi_gateway3.core.devices import *

论坛第一时间有就大佬发了帖子提醒了这一点。

大部分基本正常,但京鱼座插座无法开关操作了,其它状态或功率电量的都正常。只能改用Z2m接入了。
回复

使用道具 举报

22

主题

230

帖子

810

积分

高级会员

Rank: 4

积分
810
金钱
580
HASS币
0
 楼主| 发表于 2024-4-18 20:30:51 | 显示全部楼层
dscao 发表于 2024-4-18 19:40
https://github.com/AlexxIT/XiaomiGateway3/wiki/Converters

第一句已经改为:

谢谢大佬。没有注意细节。搞定了。
话说大佬能解答下,另外一个问题吗?mi=“2.p.1”这段是什么意思?
回复

使用道具 举报

77

主题

1391

帖子

2万

积分

元老级技术达人

积分
24331
金钱
22900
HASS币
290
发表于 2024-4-18 21:47:11 | 显示全部楼层
misLia 发表于 2024-4-18 20:30
谢谢大佬。没有注意细节。搞定了。
话说大佬能解答下,另外一个问题吗?mi=“2.p.1”这段是什么意思? ...

这个是由小米设备协议来定的,具体看miot文档中就有。
比如:
https://home.miot-spec.com/spec/giot.switch.v54ksm

SIID和PIID

{
    # https://home.miot-spec.com/spec/giot.switch.v54ksm
    13141: ["GranwinIoT", "Four-Button Switch (Mesh) V5", "giot.switch.v54ksm"],
    "spec": [
        BaseConv("channel_1", "switch", mi="2.p.1"),
        BaseConv("channel_2", "switch", mi="3.p.1"),
        BaseConv("channel_3", "switch", mi="4.p.1"),
        BaseConv("channel_4", "switch", mi="5.p.1"),
        BaseConv("switch_status_1", "switch", mi="11.p.1"),
        BaseConv("switch_status_2", "switch", mi="12.p.1"),
        BaseConv("switch_status_3", "switch", mi="13.p.1"),
        BaseConv("switch_status_4", "switch", mi="14.p.1"),
        MapConv("mode_1", "select", mi="2.p.2", map={0: "normal_switch", 1: "wireless_switch", 2: "smart_switch", 3: "toggle_switch"}),  # config
        MapConv("mode_2", "select", mi="3.p.2", map={0: "normal_switch", 1: "wireless_switch", 2: "smart_switch", 3: "toggle_switch"}),  # config
        MapConv("mode_3", "select", mi="4.p.2", map={0: "normal_switch", 1: "wireless_switch", 2: "smart_switch", 3: "toggle_switch"}),  # config
        MapConv("mode_4", "select", mi="5.p.2", map={0: "normal_switch", 1: "wireless_switch", 2: "smart_switch", 3: "toggle_switch"}),  # config
    ]
}

好久没研究这个了,都快忘记了具体的了。
回复

使用道具 举报

22

主题

230

帖子

810

积分

高级会员

Rank: 4

积分
810
金钱
580
HASS币
0
 楼主| 发表于 2024-4-18 22:08:38 | 显示全部楼层
dscao 发表于 2024-4-18 21:47
这个是由小米设备协议来定的,具体看miot文档中就有。
比如:
https://home.miot-spec.com/spec/giot.swi ...

谢谢。大佬,知道怎么看了。
回复

使用道具 举报

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

本版积分规则

Archiver|手机版|小黑屋|Hassbian

GMT+8, 2024-11-25 07:17 , Processed in 0.328945 second(s), 27 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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