mirror of
https://github.com/home-assistant/core.git
synced 2025-11-12 20:40:18 +00:00
UniFi - Improve signalling and handling of adding new entities (#34925)
* Change signalling and handling of adding devices * Bump aiounifi to v19 Use the proper variable for roamradio
This commit is contained in:
@@ -25,10 +25,12 @@ async def async_setup_entry(hass, config_entry, async_add_entities):
|
||||
controller.entities[DOMAIN] = {RX_SENSOR: set(), TX_SENSOR: set()}
|
||||
|
||||
@callback
|
||||
def items_added():
|
||||
def items_added(
|
||||
clients: set = controller.api.clients, devices: set = controller.api.devices
|
||||
) -> None:
|
||||
"""Update the values of the controller."""
|
||||
if controller.option_allow_bandwidth_sensors:
|
||||
add_entities(controller, async_add_entities)
|
||||
add_entities(controller, async_add_entities, clients)
|
||||
|
||||
for signal in (controller.signal_update, controller.signal_options_update):
|
||||
controller.listeners.append(async_dispatcher_connect(hass, signal, items_added))
|
||||
@@ -37,14 +39,17 @@ async def async_setup_entry(hass, config_entry, async_add_entities):
|
||||
|
||||
|
||||
@callback
|
||||
def add_entities(controller, async_add_entities):
|
||||
def add_entities(controller, async_add_entities, clients):
|
||||
"""Add new sensor entities from the controller."""
|
||||
sensors = []
|
||||
|
||||
for mac in controller.api.clients:
|
||||
for mac in clients:
|
||||
for sensor_class in (UniFiRxBandwidthSensor, UniFiTxBandwidthSensor):
|
||||
if mac not in controller.entities[DOMAIN][sensor_class.TYPE]:
|
||||
sensors.append(sensor_class(controller.api.clients[mac], controller))
|
||||
if mac in controller.entities[DOMAIN][sensor_class.TYPE]:
|
||||
continue
|
||||
|
||||
client = controller.api.clients[mac]
|
||||
sensors.append(sensor_class(client, controller))
|
||||
|
||||
if sensors:
|
||||
async_add_entities(sensors)
|
||||
|
||||
Reference in New Issue
Block a user