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

 找回密码
 立即注册
查看: 3099|回复: 2

阅读小米网关组件代码理解问题

[复制链接]

1

主题

10

帖子

69

积分

注册会员

Rank: 2

积分
69
金钱
59
HASS币
0
发表于 2019-1-8 16:06:40 | 显示全部楼层 |阅读模式
起因,自己的产品接入到ha中,开发属于自己的网关组件产品
第一步阅读参考小米网关的代码,但是阅读过程中遇到障碍求助一下大神人物
def setup(hass, config):
    """Set up the Xiaomi component."""
    gateways = []
    interface = 'any'
    discovery_retry = 3
    if DOMAIN in config:
        gateways = config[DOMAIN][CONF_GATEWAYS]
        interface = config[DOMAIN][CONF_INTERFACE]
        discovery_retry = config[DOMAIN][CONF_DISCOVERY_RETRY]

    async def xiaomi_gw_discovered(service, discovery_info):  # 问题1 这行代码是什么作用,没有看到具体的实现,
乍一看以为是一个函数??????
        """Perform action when Xiaomi Gateway device(s) has been found."""
        # We don't need to do anything here, the purpose of Home Assistant's
        # discovery service is to just trigger loading of this
        # component, and then its own discovery process kicks in.

    discovery.listen(hass, SERVICE_XIAOMI_GW, xiaomi_gw_discovered)

    from xiaomi_gateway import XiaomiGatewayDiscovery
    xiaomi = hass.data[PY_XIAOMI_GATEWAY] = XiaomiGatewayDiscovery(
        hass.add_job, gateways, interface)

    _LOGGER.debug("Expecting %s gateways", len(gateways))
    for k in range(discovery_retry):
        _LOGGER.info("Discovering Xiaomi Gateways (Try %s)", k + 1)
        xiaomi.discover_gateways()
        if len(xiaomi.gateways) >= len(gateways):
            break



回复

使用道具 举报

1

主题

10

帖子

69

积分

注册会员

Rank: 2

积分
69
金钱
59
HASS币
0
 楼主| 发表于 2019-1-8 16:07:49 | 显示全部楼层
小米网关那行代码是什么作用  实现在哪里呢 顶下
回复

使用道具 举报

5

主题

34

帖子

206

积分

论坛技术达人

积分
206
金钱
167
HASS币
20
发表于 2019-1-11 12:07:28 | 显示全部楼层
字面意思是异步函数,估计async有什么特殊的作用
这个东西就是个转接,主要靠的是pyxiaomigateway库
回复

使用道具 举报

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

本版积分规则

Archiver|手机版|小黑屋|Hassbian

GMT+8, 2024-11-21 23:48 , Processed in 1.539207 second(s), 25 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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