From 2d68f9a9863fa716e264bbfae7dd8cc3614d4202 Mon Sep 17 00:00:00 2001
From: Jan Rieger <jrieger@users.noreply.github.com>
Date: Fri, 27 Sep 2024 17:43:25 +0200
Subject: [PATCH] Use icon translations in unifi (#126903)

* Use icon translations in unifi

* Update snapshots

* Add state icons

* Address feedback

* Update snapshot
---
 homeassistant/components/unifi/icons.json     | 48 +++++++++++++++
 homeassistant/components/unifi/sensor.py      |  8 +--
 homeassistant/components/unifi/switch.py      | 12 ++--
 .../unifi/snapshots/test_sensor.ambr          | 60 ++++++++-----------
 .../unifi/snapshots/test_switch.ambr          | 40 +++++--------
 5 files changed, 98 insertions(+), 70 deletions(-)

diff --git a/homeassistant/components/unifi/icons.json b/homeassistant/components/unifi/icons.json
index b089d8eff9c..525d089d6d4 100644
--- a/homeassistant/components/unifi/icons.json
+++ b/homeassistant/components/unifi/icons.json
@@ -1,4 +1,52 @@
 {
+  "entity": {
+    "sensor": {
+      "client_bandwidth_rx": {
+        "default": "mdi:download"
+      },
+      "client_bandwidth_tx": {
+        "default": "mdi:upload"
+      },
+      "port_bandwidth_rx": {
+        "default": "mdi:download"
+      },
+      "port_bandwidth_tx": {
+        "default": "mdi:upload"
+      }
+    },
+    "switch": {
+      "block_client": {
+        "default": "mdi:ethernet",
+        "state": {
+          "off": "mdi:ethernet-off"
+        }
+      },
+      "dpi_restriction": {
+        "default": "mdi:network",
+        "state": {
+          "off": "mdi:network-off"
+        }
+      },
+      "port_forward_control": {
+        "default": "mdi:upload-network"
+      },
+      "traffic_rule_control": {
+        "default": "mdi:security-network"
+      },
+      "poe_port_control": {
+        "default": "mdi:ethernet",
+        "state": {
+          "off": "mdi:ethernet-off"
+        }
+      },
+      "wlan_control": {
+        "default": "mdi:wifi-check",
+        "state": {
+          "off": "mdi:wifi-off"
+        }
+      }
+    }
+  },
   "services": {
     "reconnect_client": {
       "service": "mdi:sync"
diff --git a/homeassistant/components/unifi/sensor.py b/homeassistant/components/unifi/sensor.py
index 697df00fe55..2a3ed69a5f1 100644
--- a/homeassistant/components/unifi/sensor.py
+++ b/homeassistant/components/unifi/sensor.py
@@ -377,11 +377,11 @@ class UnifiSensorEntityDescription(
 ENTITY_DESCRIPTIONS: tuple[UnifiSensorEntityDescription, ...] = (
     UnifiSensorEntityDescription[Clients, Client](
         key="Bandwidth sensor RX",
+        translation_key="client_bandwidth_rx",
         device_class=SensorDeviceClass.DATA_RATE,
         entity_category=EntityCategory.DIAGNOSTIC,
         state_class=SensorStateClass.MEASUREMENT,
         native_unit_of_measurement=UnitOfDataRate.MEGABYTES_PER_SECOND,
-        icon="mdi:upload",
         allowed_fn=async_bandwidth_sensor_allowed_fn,
         api_handler_fn=lambda api: api.clients,
         device_info_fn=async_client_device_info_fn,
@@ -394,11 +394,11 @@ ENTITY_DESCRIPTIONS: tuple[UnifiSensorEntityDescription, ...] = (
     ),
     UnifiSensorEntityDescription[Clients, Client](
         key="Bandwidth sensor TX",
+        translation_key="client_bandwidth_tx",
         device_class=SensorDeviceClass.DATA_RATE,
         entity_category=EntityCategory.DIAGNOSTIC,
         state_class=SensorStateClass.MEASUREMENT,
         native_unit_of_measurement=UnitOfDataRate.MEGABYTES_PER_SECOND,
-        icon="mdi:download",
         allowed_fn=async_bandwidth_sensor_allowed_fn,
         api_handler_fn=lambda api: api.clients,
         device_info_fn=async_client_device_info_fn,
@@ -427,13 +427,13 @@ ENTITY_DESCRIPTIONS: tuple[UnifiSensorEntityDescription, ...] = (
     ),
     UnifiSensorEntityDescription[Ports, Port](
         key="Port Bandwidth sensor RX",
+        translation_key="port_bandwidth_rx",
         device_class=SensorDeviceClass.DATA_RATE,
         entity_category=EntityCategory.DIAGNOSTIC,
         entity_registry_enabled_default=False,
         state_class=SensorStateClass.MEASUREMENT,
         native_unit_of_measurement=UnitOfDataRate.BYTES_PER_SECOND,
         suggested_unit_of_measurement=UnitOfDataRate.MEGABITS_PER_SECOND,
-        icon="mdi:download",
         allowed_fn=lambda hub, _: hub.config.option_allow_bandwidth_sensors,
         api_handler_fn=lambda api: api.ports,
         available_fn=async_device_available_fn,
@@ -445,13 +445,13 @@ ENTITY_DESCRIPTIONS: tuple[UnifiSensorEntityDescription, ...] = (
     ),
     UnifiSensorEntityDescription[Ports, Port](
         key="Port Bandwidth sensor TX",
+        translation_key="port_bandwidth_tx",
         device_class=SensorDeviceClass.DATA_RATE,
         entity_category=EntityCategory.DIAGNOSTIC,
         entity_registry_enabled_default=False,
         state_class=SensorStateClass.MEASUREMENT,
         native_unit_of_measurement=UnitOfDataRate.BYTES_PER_SECOND,
         suggested_unit_of_measurement=UnitOfDataRate.MEGABITS_PER_SECOND,
-        icon="mdi:upload",
         allowed_fn=lambda hub, _: hub.config.option_allow_bandwidth_sensors,
         api_handler_fn=lambda api: api.ports,
         available_fn=async_device_available_fn,
diff --git a/homeassistant/components/unifi/switch.py b/homeassistant/components/unifi/switch.py
index 2af610480fc..01843a8a95b 100644
--- a/homeassistant/components/unifi/switch.py
+++ b/homeassistant/components/unifi/switch.py
@@ -194,9 +194,9 @@ class UnifiSwitchEntityDescription(
 ENTITY_DESCRIPTIONS: tuple[UnifiSwitchEntityDescription, ...] = (
     UnifiSwitchEntityDescription[Clients, Client](
         key="Block client",
+        translation_key="block_client",
         device_class=SwitchDeviceClass.SWITCH,
         entity_category=EntityCategory.CONFIG,
-        icon="mdi:ethernet",
         allowed_fn=async_block_client_allowed_fn,
         api_handler_fn=lambda api: api.clients,
         control_fn=async_block_client_control_fn,
@@ -210,9 +210,9 @@ ENTITY_DESCRIPTIONS: tuple[UnifiSwitchEntityDescription, ...] = (
     ),
     UnifiSwitchEntityDescription[DPIRestrictionGroups, DPIRestrictionGroup](
         key="DPI restriction",
+        translation_key="dpi_restriction",
         has_entity_name=False,
         entity_category=EntityCategory.CONFIG,
-        icon="mdi:network",
         allowed_fn=lambda hub, obj_id: hub.config.option_dpi_restrictions,
         api_handler_fn=lambda api: api.dpi_groups,
         control_fn=async_dpi_group_control_fn,
@@ -239,9 +239,9 @@ ENTITY_DESCRIPTIONS: tuple[UnifiSwitchEntityDescription, ...] = (
     ),
     UnifiSwitchEntityDescription[PortForwarding, PortForward](
         key="Port forward control",
+        translation_key="port_forward_control",
         device_class=SwitchDeviceClass.SWITCH,
         entity_category=EntityCategory.CONFIG,
-        icon="mdi:upload-network",
         api_handler_fn=lambda api: api.port_forwarding,
         control_fn=async_port_forward_control_fn,
         device_info_fn=async_unifi_network_device_info_fn,
@@ -252,9 +252,9 @@ ENTITY_DESCRIPTIONS: tuple[UnifiSwitchEntityDescription, ...] = (
     ),
     UnifiSwitchEntityDescription[TrafficRules, TrafficRule](
         key="Traffic rule control",
+        translation_key="traffic_rule_control",
         device_class=SwitchDeviceClass.SWITCH,
         entity_category=EntityCategory.CONFIG,
-        icon="mdi:security-network",
         api_handler_fn=lambda api: api.traffic_rules,
         control_fn=async_traffic_rule_control_fn,
         device_info_fn=async_unifi_network_device_info_fn,
@@ -265,10 +265,10 @@ ENTITY_DESCRIPTIONS: tuple[UnifiSwitchEntityDescription, ...] = (
     ),
     UnifiSwitchEntityDescription[Ports, Port](
         key="PoE port control",
+        translation_key="poe_port_control",
         device_class=SwitchDeviceClass.OUTLET,
         entity_category=EntityCategory.CONFIG,
         entity_registry_enabled_default=False,
-        icon="mdi:ethernet",
         api_handler_fn=lambda api: api.ports,
         available_fn=async_device_available_fn,
         control_fn=async_poe_port_control_fn,
@@ -281,9 +281,9 @@ ENTITY_DESCRIPTIONS: tuple[UnifiSwitchEntityDescription, ...] = (
     ),
     UnifiSwitchEntityDescription[Wlans, Wlan](
         key="WLAN control",
+        translation_key="wlan_control",
         device_class=SwitchDeviceClass.SWITCH,
         entity_category=EntityCategory.CONFIG,
-        icon="mdi:wifi-check",
         api_handler_fn=lambda api: api.wlans,
         control_fn=async_wlan_control_fn,
         device_info_fn=async_wlan_device_info_fn,
diff --git a/tests/components/unifi/snapshots/test_sensor.ambr b/tests/components/unifi/snapshots/test_sensor.ambr
index 3053f69d616..9041d7ac63c 100644
--- a/tests/components/unifi/snapshots/test_sensor.ambr
+++ b/tests/components/unifi/snapshots/test_sensor.ambr
@@ -1088,12 +1088,12 @@
       }),
     }),
     'original_device_class': <SensorDeviceClass.DATA_RATE: 'data_rate'>,
-    'original_icon': 'mdi:download',
+    'original_icon': None,
     'original_name': 'Port 1 RX',
     'platform': 'unifi',
     'previous_unique_id': None,
     'supported_features': 0,
-    'translation_key': None,
+    'translation_key': 'port_bandwidth_rx',
     'unique_id': 'port_rx-10:00:00:00:01:01_1',
     'unit_of_measurement': <UnitOfDataRate.MEGABITS_PER_SECOND: 'Mbit/s'>,
   })
@@ -1103,7 +1103,6 @@
     'attributes': ReadOnlyDict({
       'device_class': 'data_rate',
       'friendly_name': 'mock-name Port 1 RX',
-      'icon': 'mdi:download',
       'state_class': <SensorStateClass.MEASUREMENT: 'measurement'>,
       'unit_of_measurement': <UnitOfDataRate.MEGABITS_PER_SECOND: 'Mbit/s'>,
     }),
@@ -1143,12 +1142,12 @@
       }),
     }),
     'original_device_class': <SensorDeviceClass.DATA_RATE: 'data_rate'>,
-    'original_icon': 'mdi:upload',
+    'original_icon': None,
     'original_name': 'Port 1 TX',
     'platform': 'unifi',
     'previous_unique_id': None,
     'supported_features': 0,
-    'translation_key': None,
+    'translation_key': 'port_bandwidth_tx',
     'unique_id': 'port_tx-10:00:00:00:01:01_1',
     'unit_of_measurement': <UnitOfDataRate.MEGABITS_PER_SECOND: 'Mbit/s'>,
   })
@@ -1158,7 +1157,6 @@
     'attributes': ReadOnlyDict({
       'device_class': 'data_rate',
       'friendly_name': 'mock-name Port 1 TX',
-      'icon': 'mdi:upload',
       'state_class': <SensorStateClass.MEASUREMENT: 'measurement'>,
       'unit_of_measurement': <UnitOfDataRate.MEGABITS_PER_SECOND: 'Mbit/s'>,
     }),
@@ -1249,12 +1247,12 @@
       }),
     }),
     'original_device_class': <SensorDeviceClass.DATA_RATE: 'data_rate'>,
-    'original_icon': 'mdi:download',
+    'original_icon': None,
     'original_name': 'Port 2 RX',
     'platform': 'unifi',
     'previous_unique_id': None,
     'supported_features': 0,
-    'translation_key': None,
+    'translation_key': 'port_bandwidth_rx',
     'unique_id': 'port_rx-10:00:00:00:01:01_2',
     'unit_of_measurement': <UnitOfDataRate.MEGABITS_PER_SECOND: 'Mbit/s'>,
   })
@@ -1264,7 +1262,6 @@
     'attributes': ReadOnlyDict({
       'device_class': 'data_rate',
       'friendly_name': 'mock-name Port 2 RX',
-      'icon': 'mdi:download',
       'state_class': <SensorStateClass.MEASUREMENT: 'measurement'>,
       'unit_of_measurement': <UnitOfDataRate.MEGABITS_PER_SECOND: 'Mbit/s'>,
     }),
@@ -1304,12 +1301,12 @@
       }),
     }),
     'original_device_class': <SensorDeviceClass.DATA_RATE: 'data_rate'>,
-    'original_icon': 'mdi:upload',
+    'original_icon': None,
     'original_name': 'Port 2 TX',
     'platform': 'unifi',
     'previous_unique_id': None,
     'supported_features': 0,
-    'translation_key': None,
+    'translation_key': 'port_bandwidth_tx',
     'unique_id': 'port_tx-10:00:00:00:01:01_2',
     'unit_of_measurement': <UnitOfDataRate.MEGABITS_PER_SECOND: 'Mbit/s'>,
   })
@@ -1319,7 +1316,6 @@
     'attributes': ReadOnlyDict({
       'device_class': 'data_rate',
       'friendly_name': 'mock-name Port 2 TX',
-      'icon': 'mdi:upload',
       'state_class': <SensorStateClass.MEASUREMENT: 'measurement'>,
       'unit_of_measurement': <UnitOfDataRate.MEGABITS_PER_SECOND: 'Mbit/s'>,
     }),
@@ -1359,12 +1355,12 @@
       }),
     }),
     'original_device_class': <SensorDeviceClass.DATA_RATE: 'data_rate'>,
-    'original_icon': 'mdi:download',
+    'original_icon': None,
     'original_name': 'Port 3 RX',
     'platform': 'unifi',
     'previous_unique_id': None,
     'supported_features': 0,
-    'translation_key': None,
+    'translation_key': 'port_bandwidth_rx',
     'unique_id': 'port_rx-10:00:00:00:01:01_3',
     'unit_of_measurement': <UnitOfDataRate.MEGABITS_PER_SECOND: 'Mbit/s'>,
   })
@@ -1374,7 +1370,6 @@
     'attributes': ReadOnlyDict({
       'device_class': 'data_rate',
       'friendly_name': 'mock-name Port 3 RX',
-      'icon': 'mdi:download',
       'state_class': <SensorStateClass.MEASUREMENT: 'measurement'>,
       'unit_of_measurement': <UnitOfDataRate.MEGABITS_PER_SECOND: 'Mbit/s'>,
     }),
@@ -1414,12 +1409,12 @@
       }),
     }),
     'original_device_class': <SensorDeviceClass.DATA_RATE: 'data_rate'>,
-    'original_icon': 'mdi:upload',
+    'original_icon': None,
     'original_name': 'Port 3 TX',
     'platform': 'unifi',
     'previous_unique_id': None,
     'supported_features': 0,
-    'translation_key': None,
+    'translation_key': 'port_bandwidth_tx',
     'unique_id': 'port_tx-10:00:00:00:01:01_3',
     'unit_of_measurement': <UnitOfDataRate.MEGABITS_PER_SECOND: 'Mbit/s'>,
   })
@@ -1429,7 +1424,6 @@
     'attributes': ReadOnlyDict({
       'device_class': 'data_rate',
       'friendly_name': 'mock-name Port 3 TX',
-      'icon': 'mdi:upload',
       'state_class': <SensorStateClass.MEASUREMENT: 'measurement'>,
       'unit_of_measurement': <UnitOfDataRate.MEGABITS_PER_SECOND: 'Mbit/s'>,
     }),
@@ -1520,12 +1514,12 @@
       }),
     }),
     'original_device_class': <SensorDeviceClass.DATA_RATE: 'data_rate'>,
-    'original_icon': 'mdi:download',
+    'original_icon': None,
     'original_name': 'Port 4 RX',
     'platform': 'unifi',
     'previous_unique_id': None,
     'supported_features': 0,
-    'translation_key': None,
+    'translation_key': 'port_bandwidth_rx',
     'unique_id': 'port_rx-10:00:00:00:01:01_4',
     'unit_of_measurement': <UnitOfDataRate.MEGABITS_PER_SECOND: 'Mbit/s'>,
   })
@@ -1535,7 +1529,6 @@
     'attributes': ReadOnlyDict({
       'device_class': 'data_rate',
       'friendly_name': 'mock-name Port 4 RX',
-      'icon': 'mdi:download',
       'state_class': <SensorStateClass.MEASUREMENT: 'measurement'>,
       'unit_of_measurement': <UnitOfDataRate.MEGABITS_PER_SECOND: 'Mbit/s'>,
     }),
@@ -1575,12 +1568,12 @@
       }),
     }),
     'original_device_class': <SensorDeviceClass.DATA_RATE: 'data_rate'>,
-    'original_icon': 'mdi:upload',
+    'original_icon': None,
     'original_name': 'Port 4 TX',
     'platform': 'unifi',
     'previous_unique_id': None,
     'supported_features': 0,
-    'translation_key': None,
+    'translation_key': 'port_bandwidth_tx',
     'unique_id': 'port_tx-10:00:00:00:01:01_4',
     'unit_of_measurement': <UnitOfDataRate.MEGABITS_PER_SECOND: 'Mbit/s'>,
   })
@@ -1590,7 +1583,6 @@
     'attributes': ReadOnlyDict({
       'device_class': 'data_rate',
       'friendly_name': 'mock-name Port 4 TX',
-      'icon': 'mdi:upload',
       'state_class': <SensorStateClass.MEASUREMENT: 'measurement'>,
       'unit_of_measurement': <UnitOfDataRate.MEGABITS_PER_SECOND: 'Mbit/s'>,
     }),
@@ -1801,12 +1793,12 @@
     'options': dict({
     }),
     'original_device_class': <SensorDeviceClass.DATA_RATE: 'data_rate'>,
-    'original_icon': 'mdi:upload',
+    'original_icon': None,
     'original_name': 'RX',
     'platform': 'unifi',
     'previous_unique_id': None,
     'supported_features': 0,
-    'translation_key': None,
+    'translation_key': 'client_bandwidth_rx',
     'unique_id': 'rx-00:00:00:00:00:01',
     'unit_of_measurement': <UnitOfDataRate.MEGABYTES_PER_SECOND: 'MB/s'>,
   })
@@ -1816,7 +1808,6 @@
     'attributes': ReadOnlyDict({
       'device_class': 'data_rate',
       'friendly_name': 'Wired client RX',
-      'icon': 'mdi:upload',
       'state_class': <SensorStateClass.MEASUREMENT: 'measurement'>,
       'unit_of_measurement': <UnitOfDataRate.MEGABYTES_PER_SECOND: 'MB/s'>,
     }),
@@ -1853,12 +1844,12 @@
     'options': dict({
     }),
     'original_device_class': <SensorDeviceClass.DATA_RATE: 'data_rate'>,
-    'original_icon': 'mdi:download',
+    'original_icon': None,
     'original_name': 'TX',
     'platform': 'unifi',
     'previous_unique_id': None,
     'supported_features': 0,
-    'translation_key': None,
+    'translation_key': 'client_bandwidth_tx',
     'unique_id': 'tx-00:00:00:00:00:01',
     'unit_of_measurement': <UnitOfDataRate.MEGABYTES_PER_SECOND: 'MB/s'>,
   })
@@ -1868,7 +1859,6 @@
     'attributes': ReadOnlyDict({
       'device_class': 'data_rate',
       'friendly_name': 'Wired client TX',
-      'icon': 'mdi:download',
       'state_class': <SensorStateClass.MEASUREMENT: 'measurement'>,
       'unit_of_measurement': <UnitOfDataRate.MEGABYTES_PER_SECOND: 'MB/s'>,
     }),
@@ -1952,12 +1942,12 @@
     'options': dict({
     }),
     'original_device_class': <SensorDeviceClass.DATA_RATE: 'data_rate'>,
-    'original_icon': 'mdi:upload',
+    'original_icon': None,
     'original_name': 'RX',
     'platform': 'unifi',
     'previous_unique_id': None,
     'supported_features': 0,
-    'translation_key': None,
+    'translation_key': 'client_bandwidth_rx',
     'unique_id': 'rx-00:00:00:00:00:02',
     'unit_of_measurement': <UnitOfDataRate.MEGABYTES_PER_SECOND: 'MB/s'>,
   })
@@ -1967,7 +1957,6 @@
     'attributes': ReadOnlyDict({
       'device_class': 'data_rate',
       'friendly_name': 'Wireless client RX',
-      'icon': 'mdi:upload',
       'state_class': <SensorStateClass.MEASUREMENT: 'measurement'>,
       'unit_of_measurement': <UnitOfDataRate.MEGABYTES_PER_SECOND: 'MB/s'>,
     }),
@@ -2004,12 +1993,12 @@
     'options': dict({
     }),
     'original_device_class': <SensorDeviceClass.DATA_RATE: 'data_rate'>,
-    'original_icon': 'mdi:download',
+    'original_icon': None,
     'original_name': 'TX',
     'platform': 'unifi',
     'previous_unique_id': None,
     'supported_features': 0,
-    'translation_key': None,
+    'translation_key': 'client_bandwidth_tx',
     'unique_id': 'tx-00:00:00:00:00:02',
     'unit_of_measurement': <UnitOfDataRate.MEGABYTES_PER_SECOND: 'MB/s'>,
   })
@@ -2019,7 +2008,6 @@
     'attributes': ReadOnlyDict({
       'device_class': 'data_rate',
       'friendly_name': 'Wireless client TX',
-      'icon': 'mdi:download',
       'state_class': <SensorStateClass.MEASUREMENT: 'measurement'>,
       'unit_of_measurement': <UnitOfDataRate.MEGABYTES_PER_SECOND: 'MB/s'>,
     }),
diff --git a/tests/components/unifi/snapshots/test_switch.ambr b/tests/components/unifi/snapshots/test_switch.ambr
index 04b15f329fd..87b485adaf2 100644
--- a/tests/components/unifi/snapshots/test_switch.ambr
+++ b/tests/components/unifi/snapshots/test_switch.ambr
@@ -1970,12 +1970,12 @@
     'options': dict({
     }),
     'original_device_class': <SwitchDeviceClass.SWITCH: 'switch'>,
-    'original_icon': 'mdi:ethernet',
+    'original_icon': None,
     'original_name': None,
     'platform': 'unifi',
     'previous_unique_id': None,
     'supported_features': 0,
-    'translation_key': None,
+    'translation_key': 'block_client',
     'unique_id': 'block-00:00:00:00:01:01',
     'unit_of_measurement': None,
   })
@@ -1985,7 +1985,6 @@
     'attributes': ReadOnlyDict({
       'device_class': 'switch',
       'friendly_name': 'Block Client 1',
-      'icon': 'mdi:ethernet',
     }),
     'context': <ANY>,
     'entity_id': 'switch.block_client_1',
@@ -2018,12 +2017,12 @@
     'options': dict({
     }),
     'original_device_class': None,
-    'original_icon': 'mdi:network',
+    'original_icon': None,
     'original_name': 'Block Media Streaming',
     'platform': 'unifi',
     'previous_unique_id': None,
     'supported_features': 0,
-    'translation_key': None,
+    'translation_key': 'dpi_restriction',
     'unique_id': '5f976f4ae3c58f018ec7dff6',
     'unit_of_measurement': None,
   })
@@ -2032,7 +2031,6 @@
   StateSnapshot({
     'attributes': ReadOnlyDict({
       'friendly_name': 'Block Media Streaming',
-      'icon': 'mdi:network',
     }),
     'context': <ANY>,
     'entity_id': 'switch.block_media_streaming',
@@ -2159,12 +2157,12 @@
     'options': dict({
     }),
     'original_device_class': <SwitchDeviceClass.OUTLET: 'outlet'>,
-    'original_icon': 'mdi:ethernet',
+    'original_icon': None,
     'original_name': 'Port 1 PoE',
     'platform': 'unifi',
     'previous_unique_id': None,
     'supported_features': 0,
-    'translation_key': None,
+    'translation_key': 'poe_port_control',
     'unique_id': 'poe-10:00:00:00:01:01_1',
     'unit_of_measurement': None,
   })
@@ -2174,7 +2172,6 @@
     'attributes': ReadOnlyDict({
       'device_class': 'outlet',
       'friendly_name': 'mock-name Port 1 PoE',
-      'icon': 'mdi:ethernet',
     }),
     'context': <ANY>,
     'entity_id': 'switch.mock_name_port_1_poe',
@@ -2207,12 +2204,12 @@
     'options': dict({
     }),
     'original_device_class': <SwitchDeviceClass.OUTLET: 'outlet'>,
-    'original_icon': 'mdi:ethernet',
+    'original_icon': None,
     'original_name': 'Port 2 PoE',
     'platform': 'unifi',
     'previous_unique_id': None,
     'supported_features': 0,
-    'translation_key': None,
+    'translation_key': 'poe_port_control',
     'unique_id': 'poe-10:00:00:00:01:01_2',
     'unit_of_measurement': None,
   })
@@ -2222,7 +2219,6 @@
     'attributes': ReadOnlyDict({
       'device_class': 'outlet',
       'friendly_name': 'mock-name Port 2 PoE',
-      'icon': 'mdi:ethernet',
     }),
     'context': <ANY>,
     'entity_id': 'switch.mock_name_port_2_poe',
@@ -2255,12 +2251,12 @@
     'options': dict({
     }),
     'original_device_class': <SwitchDeviceClass.OUTLET: 'outlet'>,
-    'original_icon': 'mdi:ethernet',
+    'original_icon': None,
     'original_name': 'Port 4 PoE',
     'platform': 'unifi',
     'previous_unique_id': None,
     'supported_features': 0,
-    'translation_key': None,
+    'translation_key': 'poe_port_control',
     'unique_id': 'poe-10:00:00:00:01:01_4',
     'unit_of_measurement': None,
   })
@@ -2270,7 +2266,6 @@
     'attributes': ReadOnlyDict({
       'device_class': 'outlet',
       'friendly_name': 'mock-name Port 4 PoE',
-      'icon': 'mdi:ethernet',
     }),
     'context': <ANY>,
     'entity_id': 'switch.mock_name_port_4_poe',
@@ -2350,12 +2345,12 @@
     'options': dict({
     }),
     'original_device_class': <SwitchDeviceClass.SWITCH: 'switch'>,
-    'original_icon': 'mdi:wifi-check',
+    'original_icon': None,
     'original_name': None,
     'platform': 'unifi',
     'previous_unique_id': None,
     'supported_features': 0,
-    'translation_key': None,
+    'translation_key': 'wlan_control',
     'unique_id': 'wlan-012345678910111213141516',
     'unit_of_measurement': None,
   })
@@ -2365,7 +2360,6 @@
     'attributes': ReadOnlyDict({
       'device_class': 'switch',
       'friendly_name': 'SSID 1',
-      'icon': 'mdi:wifi-check',
     }),
     'context': <ANY>,
     'entity_id': 'switch.ssid_1',
@@ -2398,12 +2392,12 @@
     'options': dict({
     }),
     'original_device_class': <SwitchDeviceClass.SWITCH: 'switch'>,
-    'original_icon': 'mdi:upload-network',
+    'original_icon': None,
     'original_name': 'plex',
     'platform': 'unifi',
     'previous_unique_id': None,
     'supported_features': 0,
-    'translation_key': None,
+    'translation_key': 'port_forward_control',
     'unique_id': 'port_forward-5a32aa4ee4b0412345678911',
     'unit_of_measurement': None,
   })
@@ -2413,7 +2407,6 @@
     'attributes': ReadOnlyDict({
       'device_class': 'switch',
       'friendly_name': 'UniFi Network plex',
-      'icon': 'mdi:upload-network',
     }),
     'context': <ANY>,
     'entity_id': 'switch.unifi_network_plex',
@@ -2446,12 +2439,12 @@
     'options': dict({
     }),
     'original_device_class': <SwitchDeviceClass.SWITCH: 'switch'>,
-    'original_icon': 'mdi:security-network',
+    'original_icon': None,
     'original_name': 'Test Traffic Rule',
     'platform': 'unifi',
     'previous_unique_id': None,
     'supported_features': 0,
-    'translation_key': None,
+    'translation_key': 'traffic_rule_control',
     'unique_id': 'traffic_rule-6452cd9b859d5b11aa002ea1',
     'unit_of_measurement': None,
   })
@@ -2461,7 +2454,6 @@
     'attributes': ReadOnlyDict({
       'device_class': 'switch',
       'friendly_name': 'UniFi Network Test Traffic Rule',
-      'icon': 'mdi:security-network',
     }),
     'context': <ANY>,
     'entity_id': 'switch.unifi_network_test_traffic_rule',