Store preferred border agent extended address for each thread dataset (#109065)
This commit is contained in:
parent
09a89cd3e9
commit
fcfacaaabd
10 changed files with 266 additions and 46 deletions
|
@ -20,7 +20,7 @@ def async_setup(hass: HomeAssistant) -> None:
|
|||
websocket_api.async_register_command(hass, ws_discover_routers)
|
||||
websocket_api.async_register_command(hass, ws_get_dataset)
|
||||
websocket_api.async_register_command(hass, ws_list_datasets)
|
||||
websocket_api.async_register_command(hass, ws_set_preferred_border_agent_id)
|
||||
websocket_api.async_register_command(hass, ws_set_preferred_border_agent)
|
||||
websocket_api.async_register_command(hass, ws_set_preferred_dataset)
|
||||
|
||||
|
||||
|
@ -54,20 +54,24 @@ async def ws_add_dataset(
|
|||
@websocket_api.require_admin
|
||||
@websocket_api.websocket_command(
|
||||
{
|
||||
vol.Required("type"): "thread/set_preferred_border_agent_id",
|
||||
vol.Required("type"): "thread/set_preferred_border_agent",
|
||||
vol.Required("dataset_id"): str,
|
||||
vol.Required("border_agent_id"): str,
|
||||
vol.Required("border_agent_id"): vol.Any(str, None),
|
||||
vol.Required("extended_address"): str,
|
||||
}
|
||||
)
|
||||
@websocket_api.async_response
|
||||
async def ws_set_preferred_border_agent_id(
|
||||
async def ws_set_preferred_border_agent(
|
||||
hass: HomeAssistant, connection: websocket_api.ActiveConnection, msg: dict[str, Any]
|
||||
) -> None:
|
||||
"""Set the preferred border agent ID."""
|
||||
"""Set the preferred border agent's border agent ID and extended address."""
|
||||
dataset_id = msg["dataset_id"]
|
||||
border_agent_id = msg["border_agent_id"]
|
||||
extended_address = msg["extended_address"]
|
||||
store = await dataset_store.async_get_store(hass)
|
||||
store.async_set_preferred_border_agent_id(dataset_id, border_agent_id)
|
||||
store.async_set_preferred_border_agent(
|
||||
dataset_id, border_agent_id, extended_address
|
||||
)
|
||||
connection.send_result(msg["id"])
|
||||
|
||||
|
||||
|
@ -174,6 +178,7 @@ async def ws_list_datasets(
|
|||
"pan_id": dataset.pan_id,
|
||||
"preferred": dataset.id == preferred_dataset,
|
||||
"preferred_border_agent_id": dataset.preferred_border_agent_id,
|
||||
"preferred_extended_address": dataset.preferred_extended_address,
|
||||
"source": dataset.source,
|
||||
}
|
||||
)
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue