diff --git a/homeassistant/components/zha/entity.py b/homeassistant/components/zha/entity.py
index 499721722fa6da32603d58bfed0413552ab773bd..e3339661d1593818d95ee63894aadb0fcfc7e616 100644
--- a/homeassistant/components/zha/entity.py
+++ b/homeassistant/components/zha/entity.py
@@ -59,6 +59,10 @@ class ZHAEntity(LogMixin, RestoreEntity, Entity):
     def name(self) -> str | UndefinedType | None:
         """Return the name of the entity."""
         meta = self.entity_data.entity.info_object
+        if meta.primary:
+            self._attr_name = None
+            return super().name
+
         original_name = super().name
 
         if original_name not in (UNDEFINED, None) or meta.fallback_name is None:
diff --git a/homeassistant/components/zha/manifest.json b/homeassistant/components/zha/manifest.json
index 25e4de77a32e056dfbe81a8517178bb6afd28f6d..0cc2524469e03e4be4cc90a2ce43171725c3c651 100644
--- a/homeassistant/components/zha/manifest.json
+++ b/homeassistant/components/zha/manifest.json
@@ -21,7 +21,7 @@
     "zha",
     "universal_silabs_flasher"
   ],
-  "requirements": ["zha==0.0.50"],
+  "requirements": ["zha==0.0.51"],
   "usb": [
     {
       "vid": "10C4",
diff --git a/requirements_all.txt b/requirements_all.txt
index dcda559d7d333061abb7aed416e2129b23b5f1e5..1a7c37a6cd347323e879f252163dd43bb39dcc03 100644
--- a/requirements_all.txt
+++ b/requirements_all.txt
@@ -3149,7 +3149,7 @@ zeroconf==0.145.1
 zeversolar==0.3.2
 
 # homeassistant.components.zha
-zha==0.0.50
+zha==0.0.51
 
 # homeassistant.components.zhong_hong
 zhong-hong-hvac==1.0.13
diff --git a/requirements_test_all.txt b/requirements_test_all.txt
index 5ed82bd81b0b37750071710e0834017e6ee28b25..dea6769aa396a2d77b0dacc50596d1d3dd4b1f40 100644
--- a/requirements_test_all.txt
+++ b/requirements_test_all.txt
@@ -2538,7 +2538,7 @@ zeroconf==0.145.1
 zeversolar==0.3.2
 
 # homeassistant.components.zha
-zha==0.0.50
+zha==0.0.51
 
 # homeassistant.components.zwave_js
 zwave-js-server-python==0.60.1
diff --git a/tests/components/zha/snapshots/test_diagnostics.ambr b/tests/components/zha/snapshots/test_diagnostics.ambr
index 7a599b00a218a415e063a2d87a48e175292fd620..ba8aa9ea245898d4b7a4fea943aa7c2758cb6c76 100644
--- a/tests/components/zha/snapshots/test_diagnostics.ambr
+++ b/tests/components/zha/snapshots/test_diagnostics.ambr
@@ -179,16 +179,7 @@
               }),
               '0x0010': dict({
                 'attribute': "ZCLAttributeDef(id=0x0010, name='cie_addr', type=<class 'zigpy.types.named.EUI64'>, zcl_type=<DataTypeId.EUI64: 240>, access=<ZCLAttributeAccess.Read|Write: 3>, mandatory=True, is_manufacturer_specific=False)",
-                'value': list([
-                  50,
-                  79,
-                  50,
-                  2,
-                  0,
-                  141,
-                  21,
-                  0,
-                ]),
+                'value': None,
               }),
               '0x0011': dict({
                 'attribute': "ZCLAttributeDef(id=0x0011, name='zone_id', type=<class 'zigpy.types.basic.uint8_t'>, zcl_type=<DataTypeId.uint8: 32>, access=<ZCLAttributeAccess.Read: 1>, mandatory=True, is_manufacturer_specific=False)",
diff --git a/tests/components/zha/test_sensor.py b/tests/components/zha/test_sensor.py
index 2d69cf1ff36d56f82efe9a357e94bce54c5788a8..88fb9974c1bc26b25770d49dd4474d88922f469a 100644
--- a/tests/components/zha/test_sensor.py
+++ b/tests/components/zha/test_sensor.py
@@ -30,6 +30,7 @@ from homeassistant.core import HomeAssistant
 from .common import send_attributes_report
 from .conftest import SIG_EP_INPUT, SIG_EP_OUTPUT, SIG_EP_PROFILE, SIG_EP_TYPE
 
+ENTITY_ID_NO_PREFIX = "sensor.fakemanufacturer_fakemodel"
 ENTITY_ID_PREFIX = "sensor.fakemanufacturer_fakemodel_{}"
 
 
@@ -335,7 +336,7 @@ async def async_test_pi_heating_demand(
             "humidity",
             async_test_humidity,
             1,
-            None,
+            {},
             None,
             STATE_UNKNOWN,
         ),
@@ -344,7 +345,7 @@ async def async_test_pi_heating_demand(
             "temperature",
             async_test_temperature,
             1,
-            None,
+            {},
             None,
             STATE_UNKNOWN,
         ),
@@ -353,7 +354,7 @@ async def async_test_pi_heating_demand(
             "pressure",
             async_test_pressure,
             1,
-            None,
+            {},
             None,
             STATE_UNKNOWN,
         ),
@@ -362,7 +363,7 @@ async def async_test_pi_heating_demand(
             "illuminance",
             async_test_illuminance,
             1,
-            None,
+            {},
             None,
             STATE_UNKNOWN,
         ),
@@ -492,7 +493,7 @@ async def async_test_pi_heating_demand(
             "device_temperature",
             async_test_device_temperature,
             1,
-            None,
+            {},
             None,
             STATE_UNKNOWN,
         ),
@@ -501,7 +502,7 @@ async def async_test_pi_heating_demand(
             "setpoint_change_source",
             async_test_setpoint_change_source,
             10,
-            None,
+            {},
             None,
             STATE_UNKNOWN,
         ),
@@ -510,7 +511,7 @@ async def async_test_pi_heating_demand(
             "pi_heating_demand",
             async_test_pi_heating_demand,
             10,
-            None,
+            {},
             None,
             STATE_UNKNOWN,
         ),
@@ -558,7 +559,6 @@ async def test_sensor(
     gateway.get_or_create_device(zigpy_device)
     await gateway.async_device_initialized(zigpy_device)
     await hass.async_block_till_done(wait_background_tasks=True)
-    entity_id = ENTITY_ID_PREFIX.format(entity_suffix)
 
     zigpy_device = zigpy_device_mock(
         {
@@ -570,6 +570,11 @@ async def test_sensor(
         }
     )
 
+    if hass.states.get(ENTITY_ID_NO_PREFIX):
+        entity_id = ENTITY_ID_NO_PREFIX
+    else:
+        entity_id = ENTITY_ID_PREFIX.format(entity_suffix)
+
     assert hass.states.get(entity_id).state == initial_sensor_state
 
     # test sensor associated logic
diff --git a/tests/components/zha/test_websocket_api.py b/tests/components/zha/test_websocket_api.py
index f6afee9eb83f8805b0d85b8d381a65093791116d..ae1ea90d1f9fcffc8b22090a59c175004945d453 100644
--- a/tests/components/zha/test_websocket_api.py
+++ b/tests/components/zha/test_websocket_api.py
@@ -420,8 +420,11 @@ async def test_list_groupable_devices(
             assert entity_reference[ATTR_NAME] is not None
             assert entity_reference["entity_id"] is not None
 
-        for entity_reference in endpoint["entities"]:
-            assert entity_reference["original_name"] is not None
+        if len(endpoint["entities"]) == 1:
+            assert endpoint["entities"][0]["original_name"] is None
+        else:
+            for entity_reference in endpoint["entities"]:
+                assert entity_reference["original_name"] is not None
 
     # Make sure there are no groupable devices when the device is unavailable
     # Make device unavailable