Add SmartThings freezer and cooler temperatures (#145468)

This commit is contained in:
Joost Lekkerkerker 2025-05-25 10:38:57 +02:00 committed by GitHub
parent fa37bc272e
commit 5eebadc730
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
3 changed files with 328 additions and 0 deletions

View File

@ -151,6 +151,7 @@ class SmartThingsSensorEntityDescription(SensorEntityDescription):
exists_fn: Callable[[Status], bool] | None = None exists_fn: Callable[[Status], bool] | None = None
use_temperature_unit: bool = False use_temperature_unit: bool = False
deprecated: Callable[[ComponentStatus], tuple[str, str] | None] | None = None deprecated: Callable[[ComponentStatus], tuple[str, str] | None] | None = None
component_translation_key: dict[str, str] | None = None
CAPABILITY_TO_SENSORS: dict[ CAPABILITY_TO_SENSORS: dict[
@ -862,6 +863,11 @@ CAPABILITY_TO_SENSORS: dict[
if Capability.CUSTOM_OUTING_MODE in status if Capability.CUSTOM_OUTING_MODE in status
else None else None
), ),
component_fn=lambda component: component in {"freezer", "cooler"},
component_translation_key={
"freezer": "freezer_temperature",
"cooler": "cooler_temperature",
},
) )
] ]
}, },
@ -1207,6 +1213,10 @@ class SmartThingsSensor(SmartThingsEntity, SensorEntity):
self._attr_translation_placeholders = ( self._attr_translation_placeholders = (
self.entity_description.translation_placeholders_fn(component) self.entity_description.translation_placeholders_fn(component)
) )
if self.entity_description.component_translation_key and component != MAIN:
self._attr_translation_key = (
self.entity_description.component_translation_key[component]
)
@property @property
def native_value(self) -> str | float | datetime | int | None: def native_value(self) -> str | float | datetime | int | None:

View File

@ -242,6 +242,9 @@
"finished": "[%key:component::smartthings::entity::sensor::oven_job_state::state::finished%]" "finished": "[%key:component::smartthings::entity::sensor::oven_job_state::state::finished%]"
} }
}, },
"cooler_temperature": {
"name": "Cooler temperature"
},
"manual_level": { "manual_level": {
"name": "Burner {burner_id} level" "name": "Burner {burner_id} level"
}, },
@ -325,6 +328,9 @@
"equivalent_carbon_dioxide": { "equivalent_carbon_dioxide": {
"name": "Equivalent carbon dioxide" "name": "Equivalent carbon dioxide"
}, },
"freezer_temperature": {
"name": "Freezer temperature"
},
"formaldehyde": { "formaldehyde": {
"name": "Formaldehyde" "name": "Formaldehyde"
}, },

View File

@ -4589,6 +4589,58 @@
'state': '218', 'state': '218',
}) })
# --- # ---
# name: test_all_entities[da_ref_normal_000001][sensor.refrigerator_cooler_temperature-entry]
EntityRegistryEntrySnapshot({
'aliases': set({
}),
'area_id': None,
'capabilities': dict({
'state_class': <SensorStateClass.MEASUREMENT: 'measurement'>,
}),
'config_entry_id': <ANY>,
'config_subentry_id': <ANY>,
'device_class': None,
'device_id': <ANY>,
'disabled_by': None,
'domain': 'sensor',
'entity_category': None,
'entity_id': 'sensor.refrigerator_cooler_temperature',
'has_entity_name': True,
'hidden_by': None,
'icon': None,
'id': <ANY>,
'labels': set({
}),
'name': None,
'options': dict({
}),
'original_device_class': <SensorDeviceClass.TEMPERATURE: 'temperature'>,
'original_icon': None,
'original_name': 'Cooler temperature',
'platform': 'smartthings',
'previous_unique_id': None,
'supported_features': 0,
'translation_key': 'cooler_temperature',
'unique_id': '7db87911-7dce-1cf2-7119-b953432a2f09_cooler_temperatureMeasurement_temperature_temperature',
'unit_of_measurement': <UnitOfTemperature.CELSIUS: '°C'>,
})
# ---
# name: test_all_entities[da_ref_normal_000001][sensor.refrigerator_cooler_temperature-state]
StateSnapshot({
'attributes': ReadOnlyDict({
'device_class': 'temperature',
'friendly_name': 'Refrigerator Cooler temperature',
'state_class': <SensorStateClass.MEASUREMENT: 'measurement'>,
'unit_of_measurement': <UnitOfTemperature.CELSIUS: '°C'>,
}),
'context': <ANY>,
'entity_id': 'sensor.refrigerator_cooler_temperature',
'last_changed': <ANY>,
'last_reported': <ANY>,
'last_updated': <ANY>,
'state': '3',
})
# ---
# name: test_all_entities[da_ref_normal_000001][sensor.refrigerator_energy-entry] # name: test_all_entities[da_ref_normal_000001][sensor.refrigerator_energy-entry]
EntityRegistryEntrySnapshot({ EntityRegistryEntrySnapshot({
'aliases': set({ 'aliases': set({
@ -4754,6 +4806,58 @@
'state': '0.0', 'state': '0.0',
}) })
# --- # ---
# name: test_all_entities[da_ref_normal_000001][sensor.refrigerator_freezer_temperature-entry]
EntityRegistryEntrySnapshot({
'aliases': set({
}),
'area_id': None,
'capabilities': dict({
'state_class': <SensorStateClass.MEASUREMENT: 'measurement'>,
}),
'config_entry_id': <ANY>,
'config_subentry_id': <ANY>,
'device_class': None,
'device_id': <ANY>,
'disabled_by': None,
'domain': 'sensor',
'entity_category': None,
'entity_id': 'sensor.refrigerator_freezer_temperature',
'has_entity_name': True,
'hidden_by': None,
'icon': None,
'id': <ANY>,
'labels': set({
}),
'name': None,
'options': dict({
}),
'original_device_class': <SensorDeviceClass.TEMPERATURE: 'temperature'>,
'original_icon': None,
'original_name': 'Freezer temperature',
'platform': 'smartthings',
'previous_unique_id': None,
'supported_features': 0,
'translation_key': 'freezer_temperature',
'unique_id': '7db87911-7dce-1cf2-7119-b953432a2f09_freezer_temperatureMeasurement_temperature_temperature',
'unit_of_measurement': <UnitOfTemperature.CELSIUS: '°C'>,
})
# ---
# name: test_all_entities[da_ref_normal_000001][sensor.refrigerator_freezer_temperature-state]
StateSnapshot({
'attributes': ReadOnlyDict({
'device_class': 'temperature',
'friendly_name': 'Refrigerator Freezer temperature',
'state_class': <SensorStateClass.MEASUREMENT: 'measurement'>,
'unit_of_measurement': <UnitOfTemperature.CELSIUS: '°C'>,
}),
'context': <ANY>,
'entity_id': 'sensor.refrigerator_freezer_temperature',
'last_changed': <ANY>,
'last_reported': <ANY>,
'last_updated': <ANY>,
'state': '-18',
})
# ---
# name: test_all_entities[da_ref_normal_000001][sensor.refrigerator_power-entry] # name: test_all_entities[da_ref_normal_000001][sensor.refrigerator_power-entry]
EntityRegistryEntrySnapshot({ EntityRegistryEntrySnapshot({
'aliases': set({ 'aliases': set({
@ -4866,6 +4970,58 @@
'state': '0.0135559777781698', 'state': '0.0135559777781698',
}) })
# --- # ---
# name: test_all_entities[da_ref_normal_01001][sensor.refrigerator_cooler_temperature-entry]
EntityRegistryEntrySnapshot({
'aliases': set({
}),
'area_id': None,
'capabilities': dict({
'state_class': <SensorStateClass.MEASUREMENT: 'measurement'>,
}),
'config_entry_id': <ANY>,
'config_subentry_id': <ANY>,
'device_class': None,
'device_id': <ANY>,
'disabled_by': None,
'domain': 'sensor',
'entity_category': None,
'entity_id': 'sensor.refrigerator_cooler_temperature',
'has_entity_name': True,
'hidden_by': None,
'icon': None,
'id': <ANY>,
'labels': set({
}),
'name': None,
'options': dict({
}),
'original_device_class': <SensorDeviceClass.TEMPERATURE: 'temperature'>,
'original_icon': None,
'original_name': 'Cooler temperature',
'platform': 'smartthings',
'previous_unique_id': None,
'supported_features': 0,
'translation_key': 'cooler_temperature',
'unique_id': '7d3feb98-8a36-4351-c362-5e21ad3a78dd_cooler_temperatureMeasurement_temperature_temperature',
'unit_of_measurement': <UnitOfTemperature.CELSIUS: '°C'>,
})
# ---
# name: test_all_entities[da_ref_normal_01001][sensor.refrigerator_cooler_temperature-state]
StateSnapshot({
'attributes': ReadOnlyDict({
'device_class': 'temperature',
'friendly_name': 'Refrigerator Cooler temperature',
'state_class': <SensorStateClass.MEASUREMENT: 'measurement'>,
'unit_of_measurement': <UnitOfTemperature.CELSIUS: '°C'>,
}),
'context': <ANY>,
'entity_id': 'sensor.refrigerator_cooler_temperature',
'last_changed': <ANY>,
'last_reported': <ANY>,
'last_updated': <ANY>,
'state': '3',
})
# ---
# name: test_all_entities[da_ref_normal_01001][sensor.refrigerator_energy-entry] # name: test_all_entities[da_ref_normal_01001][sensor.refrigerator_energy-entry]
EntityRegistryEntrySnapshot({ EntityRegistryEntrySnapshot({
'aliases': set({ 'aliases': set({
@ -5031,6 +5187,58 @@
'state': '0.0', 'state': '0.0',
}) })
# --- # ---
# name: test_all_entities[da_ref_normal_01001][sensor.refrigerator_freezer_temperature-entry]
EntityRegistryEntrySnapshot({
'aliases': set({
}),
'area_id': None,
'capabilities': dict({
'state_class': <SensorStateClass.MEASUREMENT: 'measurement'>,
}),
'config_entry_id': <ANY>,
'config_subentry_id': <ANY>,
'device_class': None,
'device_id': <ANY>,
'disabled_by': None,
'domain': 'sensor',
'entity_category': None,
'entity_id': 'sensor.refrigerator_freezer_temperature',
'has_entity_name': True,
'hidden_by': None,
'icon': None,
'id': <ANY>,
'labels': set({
}),
'name': None,
'options': dict({
}),
'original_device_class': <SensorDeviceClass.TEMPERATURE: 'temperature'>,
'original_icon': None,
'original_name': 'Freezer temperature',
'platform': 'smartthings',
'previous_unique_id': None,
'supported_features': 0,
'translation_key': 'freezer_temperature',
'unique_id': '7d3feb98-8a36-4351-c362-5e21ad3a78dd_freezer_temperatureMeasurement_temperature_temperature',
'unit_of_measurement': <UnitOfTemperature.CELSIUS: '°C'>,
})
# ---
# name: test_all_entities[da_ref_normal_01001][sensor.refrigerator_freezer_temperature-state]
StateSnapshot({
'attributes': ReadOnlyDict({
'device_class': 'temperature',
'friendly_name': 'Refrigerator Freezer temperature',
'state_class': <SensorStateClass.MEASUREMENT: 'measurement'>,
'unit_of_measurement': <UnitOfTemperature.CELSIUS: '°C'>,
}),
'context': <ANY>,
'entity_id': 'sensor.refrigerator_freezer_temperature',
'last_changed': <ANY>,
'last_reported': <ANY>,
'last_updated': <ANY>,
'state': '-18',
})
# ---
# name: test_all_entities[da_ref_normal_01001][sensor.refrigerator_power-entry] # name: test_all_entities[da_ref_normal_01001][sensor.refrigerator_power-entry]
EntityRegistryEntrySnapshot({ EntityRegistryEntrySnapshot({
'aliases': set({ 'aliases': set({
@ -5143,6 +5351,58 @@
'state': '0.0270189050030708', 'state': '0.0270189050030708',
}) })
# --- # ---
# name: test_all_entities[da_ref_normal_01011][sensor.frigo_cooler_temperature-entry]
EntityRegistryEntrySnapshot({
'aliases': set({
}),
'area_id': None,
'capabilities': dict({
'state_class': <SensorStateClass.MEASUREMENT: 'measurement'>,
}),
'config_entry_id': <ANY>,
'config_subentry_id': <ANY>,
'device_class': None,
'device_id': <ANY>,
'disabled_by': None,
'domain': 'sensor',
'entity_category': None,
'entity_id': 'sensor.frigo_cooler_temperature',
'has_entity_name': True,
'hidden_by': None,
'icon': None,
'id': <ANY>,
'labels': set({
}),
'name': None,
'options': dict({
}),
'original_device_class': <SensorDeviceClass.TEMPERATURE: 'temperature'>,
'original_icon': None,
'original_name': 'Cooler temperature',
'platform': 'smartthings',
'previous_unique_id': None,
'supported_features': 0,
'translation_key': 'cooler_temperature',
'unique_id': '5758b2ec-563e-f39b-ec39-208e54aabf60_cooler_temperatureMeasurement_temperature_temperature',
'unit_of_measurement': <UnitOfTemperature.CELSIUS: '°C'>,
})
# ---
# name: test_all_entities[da_ref_normal_01011][sensor.frigo_cooler_temperature-state]
StateSnapshot({
'attributes': ReadOnlyDict({
'device_class': 'temperature',
'friendly_name': 'Frigo Cooler temperature',
'state_class': <SensorStateClass.MEASUREMENT: 'measurement'>,
'unit_of_measurement': <UnitOfTemperature.CELSIUS: '°C'>,
}),
'context': <ANY>,
'entity_id': 'sensor.frigo_cooler_temperature',
'last_changed': <ANY>,
'last_reported': <ANY>,
'last_updated': <ANY>,
'state': '6',
})
# ---
# name: test_all_entities[da_ref_normal_01011][sensor.frigo_energy-entry] # name: test_all_entities[da_ref_normal_01011][sensor.frigo_energy-entry]
EntityRegistryEntrySnapshot({ EntityRegistryEntrySnapshot({
'aliases': set({ 'aliases': set({
@ -5308,6 +5568,58 @@
'state': '0.0', 'state': '0.0',
}) })
# --- # ---
# name: test_all_entities[da_ref_normal_01011][sensor.frigo_freezer_temperature-entry]
EntityRegistryEntrySnapshot({
'aliases': set({
}),
'area_id': None,
'capabilities': dict({
'state_class': <SensorStateClass.MEASUREMENT: 'measurement'>,
}),
'config_entry_id': <ANY>,
'config_subentry_id': <ANY>,
'device_class': None,
'device_id': <ANY>,
'disabled_by': None,
'domain': 'sensor',
'entity_category': None,
'entity_id': 'sensor.frigo_freezer_temperature',
'has_entity_name': True,
'hidden_by': None,
'icon': None,
'id': <ANY>,
'labels': set({
}),
'name': None,
'options': dict({
}),
'original_device_class': <SensorDeviceClass.TEMPERATURE: 'temperature'>,
'original_icon': None,
'original_name': 'Freezer temperature',
'platform': 'smartthings',
'previous_unique_id': None,
'supported_features': 0,
'translation_key': 'freezer_temperature',
'unique_id': '5758b2ec-563e-f39b-ec39-208e54aabf60_freezer_temperatureMeasurement_temperature_temperature',
'unit_of_measurement': <UnitOfTemperature.CELSIUS: '°C'>,
})
# ---
# name: test_all_entities[da_ref_normal_01011][sensor.frigo_freezer_temperature-state]
StateSnapshot({
'attributes': ReadOnlyDict({
'device_class': 'temperature',
'friendly_name': 'Frigo Freezer temperature',
'state_class': <SensorStateClass.MEASUREMENT: 'measurement'>,
'unit_of_measurement': <UnitOfTemperature.CELSIUS: '°C'>,
}),
'context': <ANY>,
'entity_id': 'sensor.frigo_freezer_temperature',
'last_changed': <ANY>,
'last_reported': <ANY>,
'last_updated': <ANY>,
'state': '-17',
})
# ---
# name: test_all_entities[da_ref_normal_01011][sensor.frigo_power-entry] # name: test_all_entities[da_ref_normal_01011][sensor.frigo_power-entry]
EntityRegistryEntrySnapshot({ EntityRegistryEntrySnapshot({
'aliases': set({ 'aliases': set({