From e5ede7deeab624b4af833a54788663ef9c1b038e Mon Sep 17 00:00:00 2001 From: Michael <35783820+mib1185@users.noreply.github.com> Date: Thu, 12 Feb 2026 21:36:45 +0100 Subject: [PATCH] Categorize all immich sensor entities as diagnostic (#162887) --- .../components/immich/quality_scale.yaml | 2 +- homeassistant/components/immich/sensor.py | 10 +++++++++- .../components/immich/snapshots/test_sensor.ambr | 16 ++++++++-------- 3 files changed, 18 insertions(+), 10 deletions(-) diff --git a/homeassistant/components/immich/quality_scale.yaml b/homeassistant/components/immich/quality_scale.yaml index 053d51eb8c7..2a6e5c33cc0 100644 --- a/homeassistant/components/immich/quality_scale.yaml +++ b/homeassistant/components/immich/quality_scale.yaml @@ -56,7 +56,7 @@ rules: dynamic-devices: status: exempt comment: Only one device entry per config entry - entity-category: todo + entity-category: done entity-device-class: done entity-disabled-by-default: done entity-translations: done diff --git a/homeassistant/components/immich/sensor.py b/homeassistant/components/immich/sensor.py index f8eeed2935a..c083ec51261 100644 --- a/homeassistant/components/immich/sensor.py +++ b/homeassistant/components/immich/sensor.py @@ -11,7 +11,7 @@ from homeassistant.components.sensor import ( SensorEntityDescription, SensorStateClass, ) -from homeassistant.const import PERCENTAGE, UnitOfInformation +from homeassistant.const import PERCENTAGE, EntityCategory, UnitOfInformation from homeassistant.core import HomeAssistant from homeassistant.helpers.entity_platform import AddConfigEntryEntitiesCallback from homeassistant.helpers.typing import StateType @@ -40,6 +40,7 @@ SENSOR_TYPES: tuple[ImmichSensorEntityDescription, ...] = ( suggested_display_precision=1, device_class=SensorDeviceClass.DATA_SIZE, state_class=SensorStateClass.MEASUREMENT, + entity_category=EntityCategory.DIAGNOSTIC, value=lambda data: data.server_storage.disk_size_raw, ), ImmichSensorEntityDescription( @@ -50,6 +51,7 @@ SENSOR_TYPES: tuple[ImmichSensorEntityDescription, ...] = ( suggested_display_precision=1, device_class=SensorDeviceClass.DATA_SIZE, state_class=SensorStateClass.MEASUREMENT, + entity_category=EntityCategory.DIAGNOSTIC, value=lambda data: data.server_storage.disk_available_raw, ), ImmichSensorEntityDescription( @@ -60,6 +62,7 @@ SENSOR_TYPES: tuple[ImmichSensorEntityDescription, ...] = ( suggested_display_precision=1, device_class=SensorDeviceClass.DATA_SIZE, state_class=SensorStateClass.MEASUREMENT, + entity_category=EntityCategory.DIAGNOSTIC, value=lambda data: data.server_storage.disk_use_raw, entity_registry_enabled_default=False, ), @@ -68,6 +71,7 @@ SENSOR_TYPES: tuple[ImmichSensorEntityDescription, ...] = ( translation_key="disk_usage", native_unit_of_measurement=PERCENTAGE, state_class=SensorStateClass.MEASUREMENT, + entity_category=EntityCategory.DIAGNOSTIC, value=lambda data: data.server_storage.disk_usage_percentage, entity_registry_enabled_default=False, ), @@ -75,6 +79,7 @@ SENSOR_TYPES: tuple[ImmichSensorEntityDescription, ...] = ( key="photos_count", translation_key="photos_count", state_class=SensorStateClass.MEASUREMENT, + entity_category=EntityCategory.DIAGNOSTIC, value=lambda data: data.server_usage.photos if data.server_usage else None, is_suitable=lambda data: data.server_usage is not None, ), @@ -82,6 +87,7 @@ SENSOR_TYPES: tuple[ImmichSensorEntityDescription, ...] = ( key="videos_count", translation_key="videos_count", state_class=SensorStateClass.MEASUREMENT, + entity_category=EntityCategory.DIAGNOSTIC, value=lambda data: data.server_usage.videos if data.server_usage else None, is_suitable=lambda data: data.server_usage is not None, ), @@ -93,6 +99,7 @@ SENSOR_TYPES: tuple[ImmichSensorEntityDescription, ...] = ( suggested_display_precision=1, device_class=SensorDeviceClass.DATA_SIZE, state_class=SensorStateClass.MEASUREMENT, + entity_category=EntityCategory.DIAGNOSTIC, value=lambda d: d.server_usage.usage_photos if d.server_usage else None, is_suitable=lambda data: data.server_usage is not None, entity_registry_enabled_default=False, @@ -105,6 +112,7 @@ SENSOR_TYPES: tuple[ImmichSensorEntityDescription, ...] = ( suggested_display_precision=1, device_class=SensorDeviceClass.DATA_SIZE, state_class=SensorStateClass.MEASUREMENT, + entity_category=EntityCategory.DIAGNOSTIC, value=lambda d: d.server_usage.usage_videos if d.server_usage else None, is_suitable=lambda data: data.server_usage is not None, entity_registry_enabled_default=False, diff --git a/tests/components/immich/snapshots/test_sensor.ambr b/tests/components/immich/snapshots/test_sensor.ambr index 9b2df54d7d8..54f85ef15da 100644 --- a/tests/components/immich/snapshots/test_sensor.ambr +++ b/tests/components/immich/snapshots/test_sensor.ambr @@ -13,7 +13,7 @@ 'device_id': , 'disabled_by': None, 'domain': 'sensor', - 'entity_category': None, + 'entity_category': , 'entity_id': 'sensor.someone_disk_available', 'has_entity_name': True, 'hidden_by': None, @@ -73,7 +73,7 @@ 'device_id': , 'disabled_by': None, 'domain': 'sensor', - 'entity_category': None, + 'entity_category': , 'entity_id': 'sensor.someone_disk_size', 'has_entity_name': True, 'hidden_by': None, @@ -133,7 +133,7 @@ 'device_id': , 'disabled_by': None, 'domain': 'sensor', - 'entity_category': None, + 'entity_category': , 'entity_id': 'sensor.someone_disk_usage', 'has_entity_name': True, 'hidden_by': None, @@ -186,7 +186,7 @@ 'device_id': , 'disabled_by': None, 'domain': 'sensor', - 'entity_category': None, + 'entity_category': , 'entity_id': 'sensor.someone_disk_used', 'has_entity_name': True, 'hidden_by': None, @@ -246,7 +246,7 @@ 'device_id': , 'disabled_by': None, 'domain': 'sensor', - 'entity_category': None, + 'entity_category': , 'entity_id': 'sensor.someone_disk_used_by_photos', 'has_entity_name': True, 'hidden_by': None, @@ -306,7 +306,7 @@ 'device_id': , 'disabled_by': None, 'domain': 'sensor', - 'entity_category': None, + 'entity_category': , 'entity_id': 'sensor.someone_disk_used_by_videos', 'has_entity_name': True, 'hidden_by': None, @@ -366,7 +366,7 @@ 'device_id': , 'disabled_by': None, 'domain': 'sensor', - 'entity_category': None, + 'entity_category': , 'entity_id': 'sensor.someone_photos_count', 'has_entity_name': True, 'hidden_by': None, @@ -419,7 +419,7 @@ 'device_id': , 'disabled_by': None, 'domain': 'sensor', - 'entity_category': None, + 'entity_category': , 'entity_id': 'sensor.someone_videos_count', 'has_entity_name': True, 'hidden_by': None,