1 """The Mikrotik component."""
9 from .const
import ATTR_MANUFACTURER, DOMAIN
10 from .coordinator
import MikrotikDataUpdateCoordinator, get_api
11 from .errors
import CannotConnect, LoginError
13 PLATFORMS = [Platform.DEVICE_TRACKER]
15 type MikrotikConfigEntry = ConfigEntry[MikrotikDataUpdateCoordinator]
19 hass: HomeAssistant, config_entry: MikrotikConfigEntry
21 """Set up the Mikrotik component."""
23 api = await hass.async_add_executor_job(get_api,
dict(config_entry.data))
24 except CannotConnect
as api_error:
25 raise ConfigEntryNotReady
from api_error
26 except LoginError
as err:
27 raise ConfigEntryAuthFailed
from err
30 await hass.async_add_executor_job(coordinator.api.get_hub_details)
31 await coordinator.async_config_entry_first_refresh()
33 config_entry.runtime_data = coordinator
35 await hass.config_entries.async_forward_entry_setups(config_entry, PLATFORMS)
37 device_registry = dr.async_get(hass)
38 device_registry.async_get_or_create(
39 config_entry_id=config_entry.entry_id,
40 connections={(DOMAIN, coordinator.serial_num)},
41 manufacturer=ATTR_MANUFACTURER,
42 model=coordinator.model,
43 name=coordinator.hostname,
44 sw_version=coordinator.firmware,
51 """Unload a config entry."""
52 return await hass.config_entries.async_unload_platforms(config_entry, PLATFORMS)
bool async_setup_entry(HomeAssistant hass, MikrotikConfigEntry config_entry)
bool async_unload_entry(HomeAssistant hass, ConfigEntry config_entry)