mirror of
https://github.com/home-assistant/core.git
synced 2025-04-23 16:57:53 +00:00
Add downtime and uptime sensors for Husqvarna Automower (#140804)
* Add downtime and uptime sensors for Husqvarna Automower * add strings
This commit is contained in:
parent
e9cf4a209e
commit
c3bab1f316
@ -295,6 +295,18 @@ MOWER_SENSOR_TYPES: tuple[AutomowerSensorEntityDescription, ...] = (
|
||||
exists_fn=lambda data: data.statistics.cutting_blade_usage_time is not None,
|
||||
value_fn=attrgetter("statistics.cutting_blade_usage_time"),
|
||||
),
|
||||
AutomowerSensorEntityDescription(
|
||||
key="downtime",
|
||||
translation_key="downtime",
|
||||
state_class=SensorStateClass.TOTAL,
|
||||
device_class=SensorDeviceClass.DURATION,
|
||||
entity_registry_enabled_default=False,
|
||||
native_unit_of_measurement=UnitOfTime.SECONDS,
|
||||
suggested_display_precision=0,
|
||||
suggested_unit_of_measurement=UnitOfTime.HOURS,
|
||||
exists_fn=lambda data: data.statistics.downtime is not None,
|
||||
value_fn=attrgetter("statistics.downtime"),
|
||||
),
|
||||
AutomowerSensorEntityDescription(
|
||||
key="total_charging_time",
|
||||
translation_key="total_charging_time",
|
||||
@ -367,6 +379,18 @@ MOWER_SENSOR_TYPES: tuple[AutomowerSensorEntityDescription, ...] = (
|
||||
exists_fn=lambda data: data.statistics.total_drive_distance is not None,
|
||||
value_fn=attrgetter("statistics.total_drive_distance"),
|
||||
),
|
||||
AutomowerSensorEntityDescription(
|
||||
key="uptime",
|
||||
translation_key="uptime",
|
||||
state_class=SensorStateClass.TOTAL,
|
||||
device_class=SensorDeviceClass.DURATION,
|
||||
entity_registry_enabled_default=False,
|
||||
native_unit_of_measurement=UnitOfTime.SECONDS,
|
||||
suggested_display_precision=0,
|
||||
suggested_unit_of_measurement=UnitOfTime.HOURS,
|
||||
exists_fn=lambda data: data.statistics.uptime is not None,
|
||||
value_fn=attrgetter("statistics.uptime"),
|
||||
),
|
||||
AutomowerSensorEntityDescription(
|
||||
key="next_start_timestamp",
|
||||
translation_key="next_start_timestamp",
|
||||
|
@ -221,6 +221,9 @@
|
||||
"cutting_blade_usage_time": {
|
||||
"name": "Cutting blade usage time"
|
||||
},
|
||||
"downtime": {
|
||||
"name": "Downtime"
|
||||
},
|
||||
"restricted_reason": {
|
||||
"name": "Restricted reason",
|
||||
"state": {
|
||||
@ -263,6 +266,9 @@
|
||||
"demo": "Demo"
|
||||
}
|
||||
},
|
||||
"uptime": {
|
||||
"name": "Uptime"
|
||||
},
|
||||
"work_area": {
|
||||
"name": "Work area",
|
||||
"state": {
|
||||
|
@ -176,7 +176,7 @@
|
||||
],
|
||||
"statistics": {
|
||||
"cuttingBladeUsageTime": 123,
|
||||
"downTime": 123,
|
||||
"downTime": 3600,
|
||||
"numberOfChargingCycles": 1380,
|
||||
"numberOfCollisions": 11396,
|
||||
"totalChargingTime": 4334400,
|
||||
@ -184,7 +184,7 @@
|
||||
"totalDriveDistance": 1780272,
|
||||
"totalRunningTime": 4564800,
|
||||
"totalSearchingTime": 370800,
|
||||
"upTime": 456
|
||||
"upTime": 7200
|
||||
},
|
||||
"stayOutZones": {
|
||||
"dirty": false,
|
||||
|
@ -95,7 +95,7 @@
|
||||
}),
|
||||
'statistics': dict({
|
||||
'cutting_blade_usage_time': 123,
|
||||
'downtime': 123,
|
||||
'downtime': 3600,
|
||||
'number_of_charging_cycles': 1380,
|
||||
'number_of_collisions': 11396,
|
||||
'total_charging_time': 4334400,
|
||||
@ -103,7 +103,7 @@
|
||||
'total_drive_distance': 1780272,
|
||||
'total_running_time': 4564800,
|
||||
'total_searching_time': 370800,
|
||||
'uptime': 456,
|
||||
'uptime': 7200,
|
||||
}),
|
||||
'stay_out_zones': dict({
|
||||
'dirty': False,
|
||||
|
@ -106,6 +106,64 @@
|
||||
'state': '0.034',
|
||||
})
|
||||
# ---
|
||||
# name: test_sensor_snapshot[sensor.test_mower_1_downtime-entry]
|
||||
EntityRegistryEntrySnapshot({
|
||||
'aliases': set({
|
||||
}),
|
||||
'area_id': None,
|
||||
'capabilities': dict({
|
||||
'state_class': <SensorStateClass.TOTAL: 'total'>,
|
||||
}),
|
||||
'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.test_mower_1_downtime',
|
||||
'has_entity_name': True,
|
||||
'hidden_by': None,
|
||||
'icon': None,
|
||||
'id': <ANY>,
|
||||
'labels': set({
|
||||
}),
|
||||
'name': None,
|
||||
'options': dict({
|
||||
'sensor': dict({
|
||||
'suggested_display_precision': 0,
|
||||
}),
|
||||
'sensor.private': dict({
|
||||
'suggested_unit_of_measurement': <UnitOfTime.HOURS: 'h'>,
|
||||
}),
|
||||
}),
|
||||
'original_device_class': <SensorDeviceClass.DURATION: 'duration'>,
|
||||
'original_icon': None,
|
||||
'original_name': 'Downtime',
|
||||
'platform': 'husqvarna_automower',
|
||||
'previous_unique_id': None,
|
||||
'supported_features': 0,
|
||||
'translation_key': 'downtime',
|
||||
'unique_id': 'c7233734-b219-4287-a173-08e3643f89f0_downtime',
|
||||
'unit_of_measurement': <UnitOfTime.HOURS: 'h'>,
|
||||
})
|
||||
# ---
|
||||
# name: test_sensor_snapshot[sensor.test_mower_1_downtime-state]
|
||||
StateSnapshot({
|
||||
'attributes': ReadOnlyDict({
|
||||
'device_class': 'duration',
|
||||
'friendly_name': 'Test Mower 1 Downtime',
|
||||
'state_class': <SensorStateClass.TOTAL: 'total'>,
|
||||
'unit_of_measurement': <UnitOfTime.HOURS: 'h'>,
|
||||
}),
|
||||
'context': <ANY>,
|
||||
'entity_id': 'sensor.test_mower_1_downtime',
|
||||
'last_changed': <ANY>,
|
||||
'last_reported': <ANY>,
|
||||
'last_updated': <ANY>,
|
||||
'state': '1.0',
|
||||
})
|
||||
# ---
|
||||
# name: test_sensor_snapshot[sensor.test_mower_1_error-entry]
|
||||
EntityRegistryEntrySnapshot({
|
||||
'aliases': set({
|
||||
@ -1208,6 +1266,64 @@
|
||||
'state': '103.000',
|
||||
})
|
||||
# ---
|
||||
# name: test_sensor_snapshot[sensor.test_mower_1_uptime-entry]
|
||||
EntityRegistryEntrySnapshot({
|
||||
'aliases': set({
|
||||
}),
|
||||
'area_id': None,
|
||||
'capabilities': dict({
|
||||
'state_class': <SensorStateClass.TOTAL: 'total'>,
|
||||
}),
|
||||
'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.test_mower_1_uptime',
|
||||
'has_entity_name': True,
|
||||
'hidden_by': None,
|
||||
'icon': None,
|
||||
'id': <ANY>,
|
||||
'labels': set({
|
||||
}),
|
||||
'name': None,
|
||||
'options': dict({
|
||||
'sensor': dict({
|
||||
'suggested_display_precision': 0,
|
||||
}),
|
||||
'sensor.private': dict({
|
||||
'suggested_unit_of_measurement': <UnitOfTime.HOURS: 'h'>,
|
||||
}),
|
||||
}),
|
||||
'original_device_class': <SensorDeviceClass.DURATION: 'duration'>,
|
||||
'original_icon': None,
|
||||
'original_name': 'Uptime',
|
||||
'platform': 'husqvarna_automower',
|
||||
'previous_unique_id': None,
|
||||
'supported_features': 0,
|
||||
'translation_key': 'uptime',
|
||||
'unique_id': 'c7233734-b219-4287-a173-08e3643f89f0_uptime',
|
||||
'unit_of_measurement': <UnitOfTime.HOURS: 'h'>,
|
||||
})
|
||||
# ---
|
||||
# name: test_sensor_snapshot[sensor.test_mower_1_uptime-state]
|
||||
StateSnapshot({
|
||||
'attributes': ReadOnlyDict({
|
||||
'device_class': 'duration',
|
||||
'friendly_name': 'Test Mower 1 Uptime',
|
||||
'state_class': <SensorStateClass.TOTAL: 'total'>,
|
||||
'unit_of_measurement': <UnitOfTime.HOURS: 'h'>,
|
||||
}),
|
||||
'context': <ANY>,
|
||||
'entity_id': 'sensor.test_mower_1_uptime',
|
||||
'last_changed': <ANY>,
|
||||
'last_reported': <ANY>,
|
||||
'last_updated': <ANY>,
|
||||
'state': '2.0',
|
||||
})
|
||||
# ---
|
||||
# name: test_sensor_snapshot[sensor.test_mower_1_work_area-entry]
|
||||
EntityRegistryEntrySnapshot({
|
||||
'aliases': set({
|
||||
|
Loading…
x
Reference in New Issue
Block a user