mirror of
https://github.com/home-assistant/core.git
synced 2025-07-22 12:47:08 +00:00
Add last attempted automatic backup sensor (#144194)
add last_attempted_automatic_backup sensor
This commit is contained in:
parent
aa062515b8
commit
58906008b9
@ -30,6 +30,7 @@ class BackupCoordinatorData:
|
|||||||
"""Class to hold backup data."""
|
"""Class to hold backup data."""
|
||||||
|
|
||||||
backup_manager_state: BackupManagerState
|
backup_manager_state: BackupManagerState
|
||||||
|
last_attempted_automatic_backup: datetime | None
|
||||||
last_successful_automatic_backup: datetime | None
|
last_successful_automatic_backup: datetime | None
|
||||||
next_scheduled_automatic_backup: datetime | None
|
next_scheduled_automatic_backup: datetime | None
|
||||||
|
|
||||||
@ -70,6 +71,7 @@ class BackupDataUpdateCoordinator(DataUpdateCoordinator[BackupCoordinatorData]):
|
|||||||
"""Update backup manager data."""
|
"""Update backup manager data."""
|
||||||
return BackupCoordinatorData(
|
return BackupCoordinatorData(
|
||||||
self.backup_manager.state,
|
self.backup_manager.state,
|
||||||
|
self.backup_manager.config.data.last_attempted_automatic_backup,
|
||||||
self.backup_manager.config.data.last_completed_automatic_backup,
|
self.backup_manager.config.data.last_completed_automatic_backup,
|
||||||
self.backup_manager.config.data.schedule.next_automatic_backup,
|
self.backup_manager.config.data.schedule.next_automatic_backup,
|
||||||
)
|
)
|
||||||
|
@ -46,6 +46,12 @@ BACKUP_MANAGER_DESCRIPTIONS = (
|
|||||||
device_class=SensorDeviceClass.TIMESTAMP,
|
device_class=SensorDeviceClass.TIMESTAMP,
|
||||||
value_fn=lambda data: data.last_successful_automatic_backup,
|
value_fn=lambda data: data.last_successful_automatic_backup,
|
||||||
),
|
),
|
||||||
|
BackupSensorEntityDescription(
|
||||||
|
key="last_attempted_automatic_backup",
|
||||||
|
translation_key="last_attempted_automatic_backup",
|
||||||
|
device_class=SensorDeviceClass.TIMESTAMP,
|
||||||
|
value_fn=lambda data: data.last_attempted_automatic_backup,
|
||||||
|
),
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
||||||
|
@ -37,6 +37,9 @@
|
|||||||
"next_scheduled_automatic_backup": {
|
"next_scheduled_automatic_backup": {
|
||||||
"name": "Next scheduled automatic backup"
|
"name": "Next scheduled automatic backup"
|
||||||
},
|
},
|
||||||
|
"last_attempted_automatic_backup": {
|
||||||
|
"name": "Last attempted automatic backup"
|
||||||
|
},
|
||||||
"last_successful_automatic_backup": {
|
"last_successful_automatic_backup": {
|
||||||
"name": "Last successful automatic backup"
|
"name": "Last successful automatic backup"
|
||||||
}
|
}
|
||||||
|
@ -62,6 +62,54 @@
|
|||||||
'state': 'idle',
|
'state': 'idle',
|
||||||
})
|
})
|
||||||
# ---
|
# ---
|
||||||
|
# name: test_sensors[sensor.backup_last_attempted_automatic_backup-entry]
|
||||||
|
EntityRegistryEntrySnapshot({
|
||||||
|
'aliases': set({
|
||||||
|
}),
|
||||||
|
'area_id': None,
|
||||||
|
'capabilities': None,
|
||||||
|
'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.backup_last_attempted_automatic_backup',
|
||||||
|
'has_entity_name': True,
|
||||||
|
'hidden_by': None,
|
||||||
|
'icon': None,
|
||||||
|
'id': <ANY>,
|
||||||
|
'labels': set({
|
||||||
|
}),
|
||||||
|
'name': None,
|
||||||
|
'options': dict({
|
||||||
|
}),
|
||||||
|
'original_device_class': <SensorDeviceClass.TIMESTAMP: 'timestamp'>,
|
||||||
|
'original_icon': None,
|
||||||
|
'original_name': 'Last attempted automatic backup',
|
||||||
|
'platform': 'backup',
|
||||||
|
'previous_unique_id': None,
|
||||||
|
'supported_features': 0,
|
||||||
|
'translation_key': 'last_attempted_automatic_backup',
|
||||||
|
'unique_id': 'last_attempted_automatic_backup',
|
||||||
|
'unit_of_measurement': None,
|
||||||
|
})
|
||||||
|
# ---
|
||||||
|
# name: test_sensors[sensor.backup_last_attempted_automatic_backup-state]
|
||||||
|
StateSnapshot({
|
||||||
|
'attributes': ReadOnlyDict({
|
||||||
|
'device_class': 'timestamp',
|
||||||
|
'friendly_name': 'Backup Last attempted automatic backup',
|
||||||
|
}),
|
||||||
|
'context': <ANY>,
|
||||||
|
'entity_id': 'sensor.backup_last_attempted_automatic_backup',
|
||||||
|
'last_changed': <ANY>,
|
||||||
|
'last_reported': <ANY>,
|
||||||
|
'last_updated': <ANY>,
|
||||||
|
'state': 'unknown',
|
||||||
|
})
|
||||||
|
# ---
|
||||||
# name: test_sensors[sensor.backup_last_successful_automatic_backup-entry]
|
# name: test_sensors[sensor.backup_last_successful_automatic_backup-entry]
|
||||||
EntityRegistryEntrySnapshot({
|
EntityRegistryEntrySnapshot({
|
||||||
'aliases': set({
|
'aliases': set({
|
||||||
|
@ -104,6 +104,8 @@ async def test_sensor_updates(
|
|||||||
)
|
)
|
||||||
await hass.async_block_till_done(wait_background_tasks=True)
|
await hass.async_block_till_done(wait_background_tasks=True)
|
||||||
|
|
||||||
|
state = hass.states.get("sensor.backup_last_attempted_automatic_backup")
|
||||||
|
assert state.state == "2024-11-11T03:45:00+00:00"
|
||||||
state = hass.states.get("sensor.backup_last_successful_automatic_backup")
|
state = hass.states.get("sensor.backup_last_successful_automatic_backup")
|
||||||
assert state.state == "2024-11-11T03:45:00+00:00"
|
assert state.state == "2024-11-11T03:45:00+00:00"
|
||||||
state = hass.states.get("sensor.backup_next_scheduled_automatic_backup")
|
state = hass.states.get("sensor.backup_next_scheduled_automatic_backup")
|
||||||
@ -113,6 +115,8 @@ async def test_sensor_updates(
|
|||||||
async_fire_time_changed(hass)
|
async_fire_time_changed(hass)
|
||||||
await hass.async_block_till_done()
|
await hass.async_block_till_done()
|
||||||
|
|
||||||
|
state = hass.states.get("sensor.backup_last_attempted_automatic_backup")
|
||||||
|
assert state.state == "2024-11-13T11:00:00+00:00"
|
||||||
state = hass.states.get("sensor.backup_last_successful_automatic_backup")
|
state = hass.states.get("sensor.backup_last_successful_automatic_backup")
|
||||||
assert state.state == "2024-11-13T11:00:00+00:00"
|
assert state.state == "2024-11-13T11:00:00+00:00"
|
||||||
state = hass.states.get("sensor.backup_next_scheduled_automatic_backup")
|
state = hass.states.get("sensor.backup_next_scheduled_automatic_backup")
|
||||||
|
Loading…
x
Reference in New Issue
Block a user