diff --git a/homeassistant/components/unifi/device_tracker.py b/homeassistant/components/unifi/device_tracker.py index 2ef5161a94e..df93916e45b 100644 --- a/homeassistant/components/unifi/device_tracker.py +++ b/homeassistant/components/unifi/device_tracker.py @@ -120,6 +120,7 @@ def add_entities(controller, async_add_entities): class UniFiClientTracker(UniFiClient, ScannerEntity): """Representation of a network client.""" + DOMAIN = DOMAIN TYPE = CLIENT_TRACKER def __init__(self, client, controller): @@ -241,12 +242,13 @@ class UniFiClientTracker(UniFiClient, ScannerEntity): class UniFiDeviceTracker(UniFiBase, ScannerEntity): """Representation of a network infrastructure device.""" + DOMAIN = DOMAIN TYPE = DEVICE_TRACKER def __init__(self, device, controller): """Set up tracked device.""" - super().__init__(controller) self.device = device + super().__init__(controller) @property def mac(self): diff --git a/homeassistant/components/unifi/sensor.py b/homeassistant/components/unifi/sensor.py index 32f92b4def1..964db5820b8 100644 --- a/homeassistant/components/unifi/sensor.py +++ b/homeassistant/components/unifi/sensor.py @@ -53,6 +53,8 @@ def add_entities(controller, async_add_entities): class UniFiBandwidthSensor(UniFiClient): """UniFi bandwidth sensor base class.""" + DOMAIN = DOMAIN + @property def name(self) -> str: """Return the name of the client.""" diff --git a/homeassistant/components/unifi/switch.py b/homeassistant/components/unifi/switch.py index 7257cafd2fc..5fb6daf524c 100644 --- a/homeassistant/components/unifi/switch.py +++ b/homeassistant/components/unifi/switch.py @@ -138,6 +138,7 @@ def add_entities(controller, async_add_entities, switches_off): class UniFiPOEClientSwitch(UniFiClient, SwitchDevice, RestoreEntity): """Representation of a client that uses POE.""" + DOMAIN = DOMAIN TYPE = POE_SWITCH def __init__(self, client, controller): @@ -232,6 +233,7 @@ class UniFiPOEClientSwitch(UniFiClient, SwitchDevice, RestoreEntity): class UniFiBlockClientSwitch(UniFiClient, SwitchDevice): """Representation of a blockable client.""" + DOMAIN = DOMAIN TYPE = BLOCK_SWITCH @property diff --git a/homeassistant/components/unifi/unifi_client.py b/homeassistant/components/unifi/unifi_client.py index 97c53d27f55..8f91d4e1de3 100644 --- a/homeassistant/components/unifi/unifi_client.py +++ b/homeassistant/components/unifi/unifi_client.py @@ -36,8 +36,8 @@ class UniFiClient(UniFiBase): def __init__(self, client, controller) -> None: """Set up client.""" - super().__init__(controller) self.client = client + super().__init__(controller) self._is_wired = self.client.mac not in controller.wireless_clients self.is_blocked = self.client.blocked diff --git a/homeassistant/components/unifi/unifi_entity_base.py b/homeassistant/components/unifi/unifi_entity_base.py index 53c51d2476a..94088411411 100644 --- a/homeassistant/components/unifi/unifi_entity_base.py +++ b/homeassistant/components/unifi/unifi_entity_base.py @@ -9,11 +9,16 @@ from homeassistant.helpers.entity_registry import async_entries_for_device class UniFiBase(Entity): """UniFi entity base class.""" + DOMAIN = "" TYPE = "" def __init__(self, controller) -> None: - """Set up UniFi entity base.""" + """Set up UniFi entity base. + + Register mac to controller entities to cover disabled entities. + """ self.controller = controller + self.controller.entities[self.DOMAIN][self.TYPE].add(self.mac) @property def mac(self): @@ -22,7 +27,6 @@ class UniFiBase(Entity): async def async_added_to_hass(self) -> None: """Entity created.""" - self.controller.entities[self.platform.domain][self.TYPE].add(self.mac) for signal, method in ( (self.controller.signal_reachable, self.async_update_callback), (self.controller.signal_options_update, self.options_updated), @@ -32,7 +36,7 @@ class UniFiBase(Entity): async def async_will_remove_from_hass(self) -> None: """Disconnect object when removed.""" - self.controller.entities[self.platform.domain][self.TYPE].remove(self.mac) + self.controller.entities[self.DOMAIN][self.TYPE].remove(self.mac) async def async_remove(self): """Clean up when removing entity.