Compare commits

...

9 Commits

Author SHA1 Message Date
Ludovic BOUÉ
857fb61bb0 Update snapshots 2026-02-02 15:47:52 +00:00
Ludovic BOUÉ
77155b3eca Merge branch 'dev' into LocalTemperatureCalibration 2026-02-02 16:43:49 +01:00
Ludovic BOUÉ
babcb80b9f Update snapshots 2026-01-28 05:59:09 +00:00
Ludovic BOUÉ
9831fd9c14 Adjust temperature offset limits in Matter discovery schema 2026-01-28 05:57:38 +00:00
Ludovic BOUÉ
296487440e Update temperature offset limits and rename key in Matter discovery schema 2026-01-28 05:49:24 +00:00
Ludovic BOUÉ
34ebf73741 Update snapshots 2026-01-27 22:37:31 +00:00
Ludovic BOUÉ
ef9d80cae2 Adjust temperature range limits in Matter discovery schema to comply with Matter 1.3 specifications 2026-01-27 22:34:49 +00:00
Ludovic BOUÉ
b03fb3e179 Remove vendor_id from LocalTemperatureCalibration discovery schema 2026-01-27 22:33:03 +00:00
Ludovic BOUÉ
3112e37acc Rename EveTemperatureOffset key to TemperatureOffset in Matter discovery schema 2026-01-27 22:29:47 +00:00
2 changed files with 142 additions and 1 deletions

View File

@@ -284,6 +284,7 @@ DISCOVERY_SCHEMAS = [
),
featuremap_contains=(clusters.Thermostat.Bitmaps.Feature.kSetback),
),
# Eve temperature offset with higher min/max
MatterDiscoverySchema(
platform=Platform.NUMBER,
entity_description=MatterNumberEntityDescription(
@@ -303,7 +304,27 @@ DISCOVERY_SCHEMAS = [
required_attributes=(
clusters.Thermostat.Attributes.LocalTemperatureCalibration,
),
vendor_id=(4874,),
vendor_id=(4874,), # Eve Systems
),
MatterDiscoverySchema(
platform=Platform.NUMBER,
entity_description=MatterNumberEntityDescription(
key="TemperatureOffset",
device_class=NumberDeviceClass.TEMPERATURE,
entity_category=EntityCategory.CONFIG,
translation_key="temperature_offset",
native_max_value=25, # Matter 1.3 limit
native_min_value=-25, # Matter 1.3 limit
native_step=0.5,
native_unit_of_measurement=UnitOfTemperature.CELSIUS,
device_to_ha=lambda x: None if x is None else x / 10,
ha_to_device=lambda x: round(x * 10),
mode=NumberMode.BOX,
),
entity_class=MatterNumber,
required_attributes=(
clusters.Thermostat.Attributes.LocalTemperatureCalibration,
),
),
MatterDiscoverySchema(
platform=Platform.NUMBER,

View File

@@ -176,6 +176,66 @@
'state': '0.5',
})
# ---
# name: test_numbers[aqara_thermostat_w500][number.floor_heating_thermostat_temperature_offset-entry]
EntityRegistryEntrySnapshot({
'aliases': set({
}),
'area_id': None,
'capabilities': dict({
'max': 25,
'min': -25,
'mode': <NumberMode.BOX: 'box'>,
'step': 0.5,
}),
'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.floor_heating_thermostat_temperature_offset',
'has_entity_name': True,
'hidden_by': None,
'icon': None,
'id': <ANY>,
'labels': set({
}),
'name': None,
'object_id_base': 'Temperature offset',
'options': dict({
}),
'original_device_class': <NumberDeviceClass.TEMPERATURE: 'temperature'>,
'original_icon': None,
'original_name': 'Temperature offset',
'platform': 'matter',
'previous_unique_id': None,
'suggested_object_id': None,
'supported_features': 0,
'translation_key': 'temperature_offset',
'unique_id': '00000000000004D2-0000000000000064-MatterNodeDevice-1-TemperatureOffset-513-16',
'unit_of_measurement': <UnitOfTemperature.CELSIUS: '°C'>,
})
# ---
# name: test_numbers[aqara_thermostat_w500][number.floor_heating_thermostat_temperature_offset-state]
StateSnapshot({
'attributes': ReadOnlyDict({
'device_class': 'temperature',
'friendly_name': 'Floor Heating Thermostat Temperature offset',
'max': 25,
'min': -25,
'mode': <NumberMode.BOX: 'box'>,
'step': 0.5,
'unit_of_measurement': <UnitOfTemperature.CELSIUS: '°C'>,
}),
'context': <ANY>,
'entity_id': 'number.floor_heating_thermostat_temperature_offset',
'last_changed': <ANY>,
'last_reported': <ANY>,
'last_updated': <ANY>,
'state': '0.0',
})
# ---
# name: test_numbers[aqara_u200][number.aqara_smart_lock_u200_user_code_temporary_disable_time-entry]
EntityRegistryEntrySnapshot({
'aliases': set({
@@ -3463,6 +3523,66 @@
'state': '47',
})
# ---
# name: test_numbers[mock_thermostat][number.mock_thermostat_temperature_offset-entry]
EntityRegistryEntrySnapshot({
'aliases': set({
}),
'area_id': None,
'capabilities': dict({
'max': 25,
'min': -25,
'mode': <NumberMode.BOX: 'box'>,
'step': 0.5,
}),
'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.mock_thermostat_temperature_offset',
'has_entity_name': True,
'hidden_by': None,
'icon': None,
'id': <ANY>,
'labels': set({
}),
'name': None,
'object_id_base': 'Temperature offset',
'options': dict({
}),
'original_device_class': <NumberDeviceClass.TEMPERATURE: 'temperature'>,
'original_icon': None,
'original_name': 'Temperature offset',
'platform': 'matter',
'previous_unique_id': None,
'suggested_object_id': None,
'supported_features': 0,
'translation_key': 'temperature_offset',
'unique_id': '00000000000004D2-0000000000000096-MatterNodeDevice-1-TemperatureOffset-513-16',
'unit_of_measurement': <UnitOfTemperature.CELSIUS: '°C'>,
})
# ---
# name: test_numbers[mock_thermostat][number.mock_thermostat_temperature_offset-state]
StateSnapshot({
'attributes': ReadOnlyDict({
'device_class': 'temperature',
'friendly_name': 'Mock Thermostat Temperature offset',
'max': 25,
'min': -25,
'mode': <NumberMode.BOX: 'box'>,
'step': 0.5,
'unit_of_measurement': <UnitOfTemperature.CELSIUS: '°C'>,
}),
'context': <ANY>,
'entity_id': 'number.mock_thermostat_temperature_offset',
'last_changed': <ANY>,
'last_reported': <ANY>,
'last_updated': <ANY>,
'state': '0.0',
})
# ---
# name: test_numbers[mock_valve][number.mock_valve_default_open_duration-entry]
EntityRegistryEntrySnapshot({
'aliases': set({