1 """The Open Thread Border Router integration."""
3 from __future__
import annotations
18 from .
import websocket_api
19 from .const
import DOMAIN
21 GetBorderAgentIdNotSupported,
27 _LOGGER = logging.getLogger(__name__)
29 CONFIG_SCHEMA = cv.empty_config_schema(DOMAIN)
31 type OTBRConfigEntry = ConfigEntry[OTBRData]
34 async
def async_setup(hass: HomeAssistant, config: ConfigType) -> bool:
35 """Set up the Open Thread Border Router component."""
36 websocket_api.async_setup(hass)
41 """Set up an Open Thread Border Router config entry."""
44 otbrdata =
OTBRData(entry.data[
"url"], api, entry.entry_id)
46 border_agent_id = await otbrdata.get_border_agent_id()
47 dataset_tlvs = await otbrdata.get_active_dataset_tlvs()
48 extended_address = await otbrdata.get_extended_address()
49 except GetBorderAgentIdNotSupported:
50 ir.async_create_issue(
53 f
"get_get_border_agent_id_unsupported_{otbrdata.entry_id}",
56 severity=ir.IssueSeverity.WARNING,
57 translation_key=
"get_get_border_agent_id_unsupported",
73 preferred_border_agent_id=border_agent_id.hex(),
74 preferred_extended_address=extended_address.hex(),
77 entry.async_on_unload(entry.add_update_listener(async_reload_entry))
78 entry.runtime_data = otbrdata
84 """Unload a config entry."""
89 """Handle an options update."""
90 await hass.config_entries.async_reload(entry.entry_id)
dict[str, str]|None update_unique_id(er.RegistryEntry entity_entry, str unique_id)
None update_issues(HomeAssistant hass, OTBRData otbrdata, bytes dataset_tlvs)
bool async_setup(HomeAssistant hass, ConfigType config)
None async_reload_entry(HomeAssistant hass, OTBRConfigEntry entry)
bool async_unload_entry(HomeAssistant hass, OTBRConfigEntry entry)
bool async_setup_entry(HomeAssistant hass, OTBRConfigEntry entry)
None async_add_dataset(HomeAssistant hass, str source, str tlv, *str|None preferred_border_agent_id=None, str|None preferred_extended_address=None)
aiohttp.ClientSession async_get_clientsession(HomeAssistant hass, bool verify_ssl=True, socket.AddressFamily family=socket.AF_UNSPEC, ssl_util.SSLCipherList ssl_cipher=ssl_util.SSLCipherList.PYTHON_DEFAULT)