diff --git a/homeassistant/components/fyta/sensor.py b/homeassistant/components/fyta/sensor.py index 0af8b0702cf9..61228c2a534f 100644 --- a/homeassistant/components/fyta/sensor.py +++ b/homeassistant/components/fyta/sensor.py @@ -22,6 +22,7 @@ from homeassistant.const import ( from homeassistant.core import HomeAssistant from homeassistant.helpers.entity_platform import AddConfigEntryEntitiesCallback from homeassistant.helpers.typing import StateType +from homeassistant.util import dt as dt_util from .const import ( CONF_MAX_ACCEPTABLE, @@ -132,6 +133,15 @@ SENSORS: Final[list[FytaSensorEntityDescription]] = [ entity_category=EntityCategory.DIAGNOSTIC, value_fn=lambda plant: plant.battery_level, ), + FytaSensorEntityDescription( + key="last_updated", + translation_key="last_update", + device_class=SensorDeviceClass.TIMESTAMP, + entity_category=EntityCategory.DIAGNOSTIC, + value_fn=lambda plant: ( + dt_util.as_local(plant.last_updated) if plant.last_updated else None + ), + ), ] MEASUREMENT_SENSORS: Final[list[FytaMeasurementSensorEntityDescription]] = [ diff --git a/homeassistant/components/fyta/strings.json b/homeassistant/components/fyta/strings.json index 7f2062ad7209..15a3c8509722 100644 --- a/homeassistant/components/fyta/strings.json +++ b/homeassistant/components/fyta/strings.json @@ -71,6 +71,9 @@ "last_fertilised": { "name": "Last fertilized" }, + "last_update": { + "name": "Last update" + }, "light": { "name": "Light", "state_attributes": { diff --git a/tests/components/fyta/snapshots/test_sensor.ambr b/tests/components/fyta/snapshots/test_sensor.ambr index 845760a49bf9..6aa119b52227 100644 --- a/tests/components/fyta/snapshots/test_sensor.ambr +++ b/tests/components/fyta/snapshots/test_sensor.ambr @@ -105,6 +105,57 @@ 'state': 'unknown', }) # --- +# name: test_all_entities[sensor.gummibaum_last_update-entry] + EntityRegistryEntrySnapshot({ + 'aliases': list([ + None, + ]), + 'area_id': None, + 'capabilities': None, + 'config_entry_id': , + 'config_subentry_id': , + 'device_class': None, + 'device_id': , + 'disabled_by': None, + 'domain': 'sensor', + 'entity_category': , + 'entity_id': 'sensor.gummibaum_last_update', + 'has_entity_name': True, + 'hidden_by': None, + 'icon': None, + 'id': , + 'labels': set({ + }), + 'name': None, + 'object_id_base': 'Last update', + 'options': dict({ + }), + 'original_device_class': , + 'original_icon': None, + 'original_name': 'Last update', + 'platform': 'fyta', + 'previous_unique_id': None, + 'suggested_object_id': None, + 'supported_features': 0, + 'translation_key': 'last_update', + 'unique_id': 'ce5f5431554d101905d31797e1232da8-0-last_updated', + 'unit_of_measurement': None, + }) +# --- +# name: test_all_entities[sensor.gummibaum_last_update-state] + StateSnapshot({ + 'attributes': ReadOnlyDict({ + : 'timestamp', + : 'Gummibaum Last update', + }), + 'context': , + 'entity_id': 'sensor.gummibaum_last_update', + 'last_changed': , + 'last_reported': , + 'last_updated': , + 'state': '2023-01-10T18:10:00+00:00', + }) +# --- # name: test_all_entities[sensor.gummibaum_light-entry] EntityRegistryEntrySnapshot({ 'aliases': list([ @@ -1011,6 +1062,57 @@ 'state': 'unknown', }) # --- +# name: test_all_entities[sensor.kakaobaum_last_update-entry] + EntityRegistryEntrySnapshot({ + 'aliases': list([ + None, + ]), + 'area_id': None, + 'capabilities': None, + 'config_entry_id': , + 'config_subentry_id': , + 'device_class': None, + 'device_id': , + 'disabled_by': None, + 'domain': 'sensor', + 'entity_category': , + 'entity_id': 'sensor.kakaobaum_last_update', + 'has_entity_name': True, + 'hidden_by': None, + 'icon': None, + 'id': , + 'labels': set({ + }), + 'name': None, + 'object_id_base': 'Last update', + 'options': dict({ + }), + 'original_device_class': , + 'original_icon': None, + 'original_name': 'Last update', + 'platform': 'fyta', + 'previous_unique_id': None, + 'suggested_object_id': None, + 'supported_features': 0, + 'translation_key': 'last_update', + 'unique_id': 'ce5f5431554d101905d31797e1232da8-1-last_updated', + 'unit_of_measurement': None, + }) +# --- +# name: test_all_entities[sensor.kakaobaum_last_update-state] + StateSnapshot({ + 'attributes': ReadOnlyDict({ + : 'timestamp', + : 'Kakaobaum Last update', + }), + 'context': , + 'entity_id': 'sensor.kakaobaum_last_update', + 'last_changed': , + 'last_reported': , + 'last_updated': , + 'state': '2023-01-02T18:10:00+00:00', + }) +# --- # name: test_all_entities[sensor.kakaobaum_light-entry] EntityRegistryEntrySnapshot({ 'aliases': list([