示例#1
0
async def async_setup(hass, config):
    """Set up the LCN component."""
    import pypck
    from pypck.connection import PchkConnectionManager

    hass.data[DATA_LCN] = {}

    conf_connections = config[DOMAIN][CONF_CONNECTIONS]
    connections = []
    for conf_connection in conf_connections:
        connection_name = conf_connection.get(CONF_NAME)

        settings = {
            'SK_NUM_TRIES':
            conf_connection[CONF_SK_NUM_TRIES],
            'DIM_MODE':
            pypck.lcn_defs.OutputPortDimMode[conf_connection[CONF_DIM_MODE]]
        }

        connection = PchkConnectionManager(hass.loop,
                                           conf_connection[CONF_HOST],
                                           conf_connection[CONF_PORT],
                                           conf_connection[CONF_USERNAME],
                                           conf_connection[CONF_PASSWORD],
                                           settings=settings,
                                           connection_id=connection_name)

        try:
            # establish connection to PCHK server
            await hass.async_create_task(connection.async_connect(timeout=15))
            connections.append(connection)
            _LOGGER.info('LCN connected to "%s"', connection_name)
        except TimeoutError:
            _LOGGER.error('Connection to PCHK server "%s" failed.',
                          connection_name)
            return False

    hass.data[DATA_LCN][CONF_CONNECTIONS] = connections

    # load platforms
    for component, conf_key in (('binary_sensor', CONF_BINARY_SENSORS),
                                ('cover', CONF_COVERS), ('light', CONF_LIGHTS),
                                ('sensor', CONF_SENSORS), ('switch',
                                                           CONF_SWITCHES)):
        if conf_key in config[DOMAIN]:
            hass.async_create_task(
                async_load_platform(hass, component, DOMAIN,
                                    config[DOMAIN][conf_key], config))
    return True
示例#2
0
async def async_setup(hass, config):
    """Set up the LCN component."""
    import pypck
    from pypck.connection import PchkConnectionManager

    hass.data[DATA_LCN] = {}

    conf_connections = config[DOMAIN][CONF_CONNECTIONS]
    connections = []
    for conf_connection in conf_connections:
        connection_name = conf_connection.get(CONF_NAME)

        settings = {'SK_NUM_TRIES': conf_connection[CONF_SK_NUM_TRIES],
                    'DIM_MODE': pypck.lcn_defs.OutputPortDimMode[
                        conf_connection[CONF_DIM_MODE]]}

        connection = PchkConnectionManager(hass.loop,
                                           conf_connection[CONF_HOST],
                                           conf_connection[CONF_PORT],
                                           conf_connection[CONF_USERNAME],
                                           conf_connection[CONF_PASSWORD],
                                           settings=settings,
                                           connection_id=connection_name)

        try:
            # establish connection to PCHK server
            await hass.async_create_task(connection.async_connect(timeout=15))
            connections.append(connection)
            _LOGGER.info('LCN connected to "%s"', connection_name)
        except TimeoutError:
            _LOGGER.error('Connection to PCHK server "%s" failed.',
                          connection_name)
            return False

    hass.data[DATA_LCN][CONF_CONNECTIONS] = connections

    # load platforms
    for component, conf_key in (('cover', CONF_COVERS),
                                ('light', CONF_LIGHTS),
                                ('sensor', CONF_SENSORS),
                                ('switch', CONF_SWITCHES)):
        if conf_key in config[DOMAIN]:
            hass.async_create_task(
                async_load_platform(hass, component, DOMAIN,
                                    config[DOMAIN][conf_key], config))
    return True
示例#3
0
async def module10(
    pypck_client: PchkConnectionManager,
) -> AsyncGenerator[ModuleConnection, None]:
    """Create test module with addr_id 10."""
    lcn_addr = LcnAddr(0, 10, False)
    module = pypck_client.get_module_conn(lcn_addr)
    yield module
    await module.cancel_requests()