mirror of
https://github.com/home-assistant/core.git
synced 2025-12-26 14:08:21 +00:00
add device info API (#20950)
This commit is contained in:
committed by
GitHub
parent
861d58f58f
commit
868820c424
@@ -14,14 +14,13 @@ import homeassistant.helpers.config_validation as cv
|
||||
from .core.const import (
|
||||
DOMAIN, ATTR_CLUSTER_ID, ATTR_CLUSTER_TYPE, ATTR_ATTRIBUTE, ATTR_VALUE,
|
||||
ATTR_MANUFACTURER, ATTR_COMMAND, ATTR_COMMAND_TYPE, ATTR_ARGS, IN, OUT,
|
||||
CLIENT_COMMANDS, SERVER_COMMANDS, SERVER)
|
||||
CLIENT_COMMANDS, SERVER_COMMANDS, SERVER, NAME)
|
||||
|
||||
_LOGGER = logging.getLogger(__name__)
|
||||
|
||||
TYPE = 'type'
|
||||
CLIENT = 'client'
|
||||
ID = 'id'
|
||||
NAME = 'name'
|
||||
RESPONSE = 'response'
|
||||
DEVICE_INFO = 'device_info'
|
||||
|
||||
@@ -74,6 +73,11 @@ SCHEMA_WS_RECONFIGURE_NODE = websocket_api.BASE_COMMAND_MESSAGE_SCHEMA.extend({
|
||||
vol.Required(ATTR_IEEE): str
|
||||
})
|
||||
|
||||
WS_DEVICES = 'zha/devices'
|
||||
SCHEMA_WS_LIST_DEVICES = websocket_api.BASE_COMMAND_MESSAGE_SCHEMA.extend({
|
||||
vol.Required(TYPE): WS_DEVICES,
|
||||
})
|
||||
|
||||
WS_ENTITIES_BY_IEEE = 'zha/entities'
|
||||
SCHEMA_WS_LIST = websocket_api.BASE_COMMAND_MESSAGE_SCHEMA.extend({
|
||||
vol.Required(TYPE): WS_ENTITIES_BY_IEEE,
|
||||
@@ -215,6 +219,29 @@ def async_load_api(hass, application_controller, zha_gateway):
|
||||
SERVICE_ISSUE_ZIGBEE_CLUSTER_COMMAND
|
||||
])
|
||||
|
||||
@websocket_api.async_response
|
||||
async def websocket_get_devices(hass, connection, msg):
|
||||
"""Get ZHA devices."""
|
||||
devices = [
|
||||
{
|
||||
**device.device_info,
|
||||
'entities': [{
|
||||
'entity_id': entity_ref.reference_id,
|
||||
NAME: entity_ref.device_info[NAME]
|
||||
} for entity_ref in zha_gateway.device_registry[device.ieee]]
|
||||
} for device in zha_gateway.devices.values()
|
||||
]
|
||||
|
||||
connection.send_message(websocket_api.result_message(
|
||||
msg[ID],
|
||||
devices
|
||||
))
|
||||
|
||||
hass.components.websocket_api.async_register_command(
|
||||
WS_DEVICES, websocket_get_devices,
|
||||
SCHEMA_WS_LIST_DEVICES
|
||||
)
|
||||
|
||||
@websocket_api.async_response
|
||||
async def websocket_reconfigure_node(hass, connection, msg):
|
||||
"""Reconfigure a ZHA nodes entities by its ieee address."""
|
||||
|
||||
Reference in New Issue
Block a user