Exemple #1
0
async def fetch_mac_and_title(hass: core.HomeAssistant, host):
    """Validate the user input allows us to connect."""
    session = aiohttp_client.async_get_clientsession(hass)
    emonitor = Emonitor(host, session)
    status = await emonitor.async_get_status()
    mac_address = status.network.mac_address
    return {"title": name_short_mac(mac_address[-6:]), "mac_address": mac_address}
Exemple #2
0
async def test_async_get_status():
    session = ClientSession()
    emonitor = Emonitor("1.2.3.4", session)
    with aioresponses() as m:
        m.get(f"http://1.2.3.4{STATUS_ENDPOINT}", body=load_fixture("status.xml"))
        status = await emonitor.async_get_status()
        assert status.hardware.serial_number == "1234"
        assert status.hardware.firmware_version == "16513"
        assert status.network.mac_address == "1190C2111111"
        assert status.network.ip_address == "192.168.1.2"
        channel_one = status.channels[1]
        assert channel_one.number == 1
        assert channel_one.active is True
        assert channel_one.label == "Main"
        assert channel_one.ct_size == 150
        assert channel_one.paired_with_channel == 2
        assert channel_one.input == 1
        assert channel_one.max_power == 69.0
        assert channel_one.avg_power == 29.0
        assert channel_one.inst_power == 25.0
        channel_forty_eight = status.channels[48]
        assert channel_forty_eight.number == 48
        assert channel_forty_eight.active is False

    await session.close()
Exemple #3
0
async def async_setup_entry(hass: HomeAssistant, entry: ConfigEntry) -> bool:
    """Set up SiteSage Emonitor from a config entry."""

    session = aiohttp_client.async_get_clientsession(hass)
    emonitor = Emonitor(entry.data[CONF_HOST], session)

    coordinator: DataUpdateCoordinator = DataUpdateCoordinator(
        hass,
        _LOGGER,
        name=entry.title,
        update_method=emonitor.async_get_status,
        update_interval=timedelta(seconds=DEFAULT_UPDATE_RATE),
    )

    await coordinator.async_config_entry_first_refresh()

    hass.data.setdefault(DOMAIN, {})[entry.entry_id] = coordinator

    hass.config_entries.async_setup_platforms(entry, PLATFORMS)

    return True