Store preferred border agent ID for each thread dataset (#98384)
This commit is contained in:
parent
b0f68f1ef3
commit
e0fd83daab
8 changed files with 92 additions and 100 deletions
|
@ -20,7 +20,6 @@ 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_get_preferred_border_agent_id)
|
||||
websocket_api.async_register_command(hass, ws_set_preferred_border_agent_id)
|
||||
websocket_api.async_register_command(hass, ws_set_preferred_dataset)
|
||||
|
||||
|
@ -52,25 +51,11 @@ async def ws_add_dataset(
|
|||
connection.send_result(msg["id"])
|
||||
|
||||
|
||||
@websocket_api.require_admin
|
||||
@websocket_api.websocket_command(
|
||||
{
|
||||
vol.Required("type"): "thread/get_preferred_border_agent_id",
|
||||
}
|
||||
)
|
||||
@websocket_api.async_response
|
||||
async def ws_get_preferred_border_agent_id(
|
||||
hass: HomeAssistant, connection: websocket_api.ActiveConnection, msg: dict[str, Any]
|
||||
) -> None:
|
||||
"""Get the preferred border agent ID."""
|
||||
border_agent_id = await dataset_store.async_get_preferred_border_agent_id(hass)
|
||||
connection.send_result(msg["id"], {"border_agent_id": border_agent_id})
|
||||
|
||||
|
||||
@websocket_api.require_admin
|
||||
@websocket_api.websocket_command(
|
||||
{
|
||||
vol.Required("type"): "thread/set_preferred_border_agent_id",
|
||||
vol.Required("dataset_id"): str,
|
||||
vol.Required("border_agent_id"): str,
|
||||
}
|
||||
)
|
||||
|
@ -79,8 +64,10 @@ async def ws_set_preferred_border_agent_id(
|
|||
hass: HomeAssistant, connection: websocket_api.ActiveConnection, msg: dict[str, Any]
|
||||
) -> None:
|
||||
"""Set the preferred border agent ID."""
|
||||
dataset_id = msg["dataset_id"]
|
||||
border_agent_id = msg["border_agent_id"]
|
||||
await dataset_store.async_set_preferred_border_agent_id(hass, border_agent_id)
|
||||
store = await dataset_store.async_get_store(hass)
|
||||
store.async_set_preferred_border_agent_id(dataset_id, border_agent_id)
|
||||
connection.send_result(msg["id"])
|
||||
|
||||
|
||||
|
@ -186,6 +173,7 @@ async def ws_list_datasets(
|
|||
"network_name": dataset.network_name,
|
||||
"pan_id": dataset.pan_id,
|
||||
"preferred": dataset.id == preferred_dataset,
|
||||
"preferred_border_agent_id": dataset.preferred_border_agent_id,
|
||||
"source": dataset.source,
|
||||
}
|
||||
)
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue