diff --git a/homeassistant/components/homematicip_cloud/device.py b/homeassistant/components/homematicip_cloud/device.py
index b086eaa29c75f78825fc609ec39ea372bc163d99..71855d7c3f5a4a4df65598f4b5d7a7d8ae38f656 100644
--- a/homeassistant/components/homematicip_cloud/device.py
+++ b/homeassistant/components/homematicip_cloud/device.py
@@ -76,8 +76,16 @@ class HomematicipGenericDevice(Entity):
 
     def _async_device_changed(self, *args, **kwargs):
         """Handle device state changes."""
-        _LOGGER.debug("Event %s (%s)", self.name, self._device.modelType)
-        self.async_schedule_update_ha_state()
+        # Don't update disabled entities
+        if self.enabled:
+            _LOGGER.debug("Event %s (%s)", self.name, self._device.modelType)
+            self.async_schedule_update_ha_state()
+        else:
+            _LOGGER.debug(
+                "Device Changed Event for %s (%s) not fired. Entity is disabled.",
+                self.name,
+                self._device.modelType,
+            )
 
     @property
     def name(self) -> str:
diff --git a/homeassistant/helpers/entity.py b/homeassistant/helpers/entity.py
index dc2e46cc6b22fe13fa837a40c28d037bf3e5d4a2..1aa405326e565b14962fc7d5ae271f0c69a27317 100644
--- a/homeassistant/helpers/entity.py
+++ b/homeassistant/helpers/entity.py
@@ -229,6 +229,11 @@ class Entity:
     # are used to perform a very specific function. Overwriting these may
     # produce undesirable effects in the entity's operation.
 
+    @property
+    def enabled(self):
+        """Return if the entity is enabled in the entity registry."""
+        return self.registry_entry is None or not self.registry_entry.disabled
+
     @callback
     def async_set_context(self, context):
         """Set the context the entity currently operates under."""
diff --git a/tests/helpers/test_entity.py b/tests/helpers/test_entity.py
index 3c89a5c65379d6f77c19704fa96dd700d6c6def8..18cedf1c46ac5a491be16fc1c1128a646f65d7fb 100644
--- a/tests/helpers/test_entity.py
+++ b/tests/helpers/test_entity.py
@@ -552,8 +552,10 @@ async def test_disabled_in_entity_registry(hass):
     await hass.async_block_till_done()
     assert entry2 != entry
     assert ent.registry_entry == entry2
+    assert ent.enabled is True
 
     entry3 = registry.async_update_entity("hello.world", disabled_by="user")
     await hass.async_block_till_done()
     assert entry3 != entry2
     assert ent.registry_entry == entry3
+    assert ent.enabled is False