Add LED intensity custom attributes for Matter Inovelli Dimmers (#148074)

Co-authored-by: Norbert Rittel <norbert@rittel.de>
This commit is contained in:
Harry Heymann 2025-07-10 17:36:51 -04:00 committed by GitHub
parent 18a89d5815
commit a2220cc2e6
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
3 changed files with 152 additions and 0 deletions

View File

@ -339,4 +339,36 @@ DISCOVERY_SCHEMAS = [
clusters.TemperatureControl.Attributes.MaxTemperature,
),
),
MatterDiscoverySchema(
platform=Platform.NUMBER,
entity_description=MatterNumberEntityDescription(
key="InovelliLEDIndicatorIntensityOff",
entity_category=EntityCategory.CONFIG,
translation_key="led_indicator_intensity_off",
native_max_value=75,
native_min_value=0,
native_step=1,
mode=NumberMode.BOX,
),
entity_class=MatterNumber,
required_attributes=(
custom_clusters.InovelliCluster.Attributes.LEDIndicatorIntensityOff,
),
),
MatterDiscoverySchema(
platform=Platform.NUMBER,
entity_description=MatterNumberEntityDescription(
key="InovelliLEDIndicatorIntensityOn",
entity_category=EntityCategory.CONFIG,
translation_key="led_indicator_intensity_on",
native_max_value=75,
native_min_value=0,
native_step=1,
mode=NumberMode.BOX,
),
entity_class=MatterNumber,
required_attributes=(
custom_clusters.InovelliCluster.Attributes.LEDIndicatorIntensityOn,
),
),
]

View File

@ -194,6 +194,12 @@
},
"auto_relock_timer": {
"name": "Autorelock time"
},
"led_indicator_intensity_off": {
"name": "LED off intensity"
},
"led_indicator_intensity_on": {
"name": "LED on intensity"
}
},
"light": {

View File

@ -750,6 +750,120 @@
'state': 'unavailable',
})
# ---
# name: test_numbers[multi_endpoint_light][number.inovelli_led_off_intensity-entry]
EntityRegistryEntrySnapshot({
'aliases': set({
}),
'area_id': None,
'capabilities': dict({
'max': 75,
'min': 0,
'mode': <NumberMode.BOX: 'box'>,
'step': 1,
}),
'config_entry_id': <ANY>,
'config_subentry_id': <ANY>,
'device_class': None,
'device_id': <ANY>,
'disabled_by': None,
'domain': 'number',
'entity_category': <EntityCategory.CONFIG: 'config'>,
'entity_id': 'number.inovelli_led_off_intensity',
'has_entity_name': True,
'hidden_by': None,
'icon': None,
'id': <ANY>,
'labels': set({
}),
'name': None,
'options': dict({
}),
'original_device_class': None,
'original_icon': None,
'original_name': 'LED off intensity',
'platform': 'matter',
'previous_unique_id': None,
'suggested_object_id': None,
'supported_features': 0,
'translation_key': 'led_indicator_intensity_off',
'unique_id': '00000000000004D2-00000000000000C5-MatterNodeDevice-1-InovelliLEDIndicatorIntensityOff-305134641-305070178',
'unit_of_measurement': None,
})
# ---
# name: test_numbers[multi_endpoint_light][number.inovelli_led_off_intensity-state]
StateSnapshot({
'attributes': ReadOnlyDict({
'friendly_name': 'Inovelli LED off intensity',
'max': 75,
'min': 0,
'mode': <NumberMode.BOX: 'box'>,
'step': 1,
}),
'context': <ANY>,
'entity_id': 'number.inovelli_led_off_intensity',
'last_changed': <ANY>,
'last_reported': <ANY>,
'last_updated': <ANY>,
'state': '1',
})
# ---
# name: test_numbers[multi_endpoint_light][number.inovelli_led_on_intensity-entry]
EntityRegistryEntrySnapshot({
'aliases': set({
}),
'area_id': None,
'capabilities': dict({
'max': 75,
'min': 0,
'mode': <NumberMode.BOX: 'box'>,
'step': 1,
}),
'config_entry_id': <ANY>,
'config_subentry_id': <ANY>,
'device_class': None,
'device_id': <ANY>,
'disabled_by': None,
'domain': 'number',
'entity_category': <EntityCategory.CONFIG: 'config'>,
'entity_id': 'number.inovelli_led_on_intensity',
'has_entity_name': True,
'hidden_by': None,
'icon': None,
'id': <ANY>,
'labels': set({
}),
'name': None,
'options': dict({
}),
'original_device_class': None,
'original_icon': None,
'original_name': 'LED on intensity',
'platform': 'matter',
'previous_unique_id': None,
'suggested_object_id': None,
'supported_features': 0,
'translation_key': 'led_indicator_intensity_on',
'unique_id': '00000000000004D2-00000000000000C5-MatterNodeDevice-1-InovelliLEDIndicatorIntensityOn-305134641-305070177',
'unit_of_measurement': None,
})
# ---
# name: test_numbers[multi_endpoint_light][number.inovelli_led_on_intensity-state]
StateSnapshot({
'attributes': ReadOnlyDict({
'friendly_name': 'Inovelli LED on intensity',
'max': 75,
'min': 0,
'mode': <NumberMode.BOX: 'box'>,
'step': 1,
}),
'context': <ANY>,
'entity_id': 'number.inovelli_led_on_intensity',
'last_changed': <ANY>,
'last_reported': <ANY>,
'last_updated': <ANY>,
'state': '33',
})
# ---
# name: test_numbers[multi_endpoint_light][number.inovelli_off_transition_time-entry]
EntityRegistryEntrySnapshot({
'aliases': set({