示例#1
0
async def async_setup_entry(hass: HomeAssistant, entry: ConfigEntry) -> bool:
    """Set up Smappee from a zeroconf or config entry."""
    if CONF_IP_ADDRESS in entry.data:
        if helper.is_smappee_genius(entry.data[CONF_SERIALNUMBER]):
            # next generation: local mqtt broker
            smappee_mqtt = mqtt.SmappeeLocalMqtt(
                serial_number=entry.data[CONF_SERIALNUMBER])
            await hass.async_add_executor_job(
                smappee_mqtt.start_and_wait_for_config)
            smappee = Smappee(api=smappee_mqtt,
                              serialnumber=entry.data[CONF_SERIALNUMBER])
        else:
            # legacy devices through local api
            smappee_api = api.api.SmappeeLocalApi(
                ip=entry.data[CONF_IP_ADDRESS])
            smappee = Smappee(api=smappee_api,
                              serialnumber=entry.data[CONF_SERIALNUMBER])
        await hass.async_add_executor_job(smappee.load_local_service_location)
    else:
        implementation = (
            await
            config_entry_oauth2_flow.async_get_config_entry_implementation(
                hass, entry))

        smappee_api = api.ConfigEntrySmappeeApi(hass, entry, implementation)

        smappee = Smappee(api=smappee_api)
        await hass.async_add_executor_job(smappee.load_service_locations)

    hass.data[DOMAIN][entry.entry_id] = SmappeeBase(hass, smappee)

    hass.config_entries.async_setup_platforms(entry, PLATFORMS)

    return True
示例#2
0
async def async_setup_entry(hass: HomeAssistant, entry: ConfigEntry):
    """Set up Smappee from a zeroconf or config entry."""
    if CONF_IP_ADDRESS in entry.data:
        smappee_api = api.api.SmappeeLocalApi(ip=entry.data[CONF_IP_ADDRESS])
        smappee = Smappee(api=smappee_api, serialnumber=entry.data[CONF_SERIALNUMBER])
        await hass.async_add_executor_job(smappee.load_local_service_location)
    else:
        implementation = (
            await config_entry_oauth2_flow.async_get_config_entry_implementation(
                hass, entry
            )
        )

        smappee_api = api.ConfigEntrySmappeeApi(hass, entry, implementation)

        smappee = Smappee(api=smappee_api)
        await hass.async_add_executor_job(smappee.load_service_locations)

    hass.data[DOMAIN][entry.entry_id] = SmappeeBase(hass, smappee)

    for platform in PLATFORMS:
        hass.async_create_task(
            hass.config_entries.async_forward_entry_setup(entry, platform)
        )

    return True
示例#3
0
async def async_setup_entry(hass: HomeAssistant, entry: ConfigEntry):
    """Set up Smappee from a config entry."""
    implementation = await config_entry_oauth2_flow.async_get_config_entry_implementation(
        hass, entry)

    smappee_api = api.ConfigEntrySmappeeApi(hass, entry, implementation)

    smappee = Smappee(smappee_api)
    await hass.async_add_executor_job(smappee.load_service_locations)

    hass.data[DOMAIN][BASE] = SmappeeBase(hass, smappee)

    for component in SMAPPEE_PLATFORMS:
        hass.async_create_task(
            hass.config_entries.async_forward_entry_setup(entry, component))

    return True