Extend options for ecovacs lifespans (#116094)

Co-authored-by: Robert Resch <robert@resch.dev>
This commit is contained in:
Andy 2024-04-24 13:19:50 +02:00 committed by GitHub
parent bfed682abe
commit 5aa61cb6d5
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
8 changed files with 772 additions and 28 deletions

View file

@ -12,8 +12,10 @@ CONF_OVERRIDE_MQTT_URL = "override_mqtt_url"
CONF_VERIFY_MQTT_CERTIFICATE = "verify_mqtt_certificate"
SUPPORTED_LIFESPANS = (
LifeSpan.BLADE,
LifeSpan.BRUSH,
LifeSpan.FILTER,
LifeSpan.LENS_BRUSH,
LifeSpan.SIDE_BRUSH,
)

View file

@ -12,12 +12,18 @@
"relocate": {
"default": "mdi:map-marker-question"
},
"reset_lifespan_blade": {
"default": "mdi:saw-blade"
},
"reset_lifespan_brush": {
"default": "mdi:broom"
},
"reset_lifespan_filter": {
"default": "mdi:air-filter"
},
"reset_lifespan_lens_brush": {
"default": "mdi:broom"
},
"reset_lifespan_side_brush": {
"default": "mdi:broom"
}
@ -42,12 +48,18 @@
"error": {
"default": "mdi:alert-circle"
},
"lifespan_blade": {
"default": "mdi:saw-blade"
},
"lifespan_brush": {
"default": "mdi:broom"
},
"lifespan_filter": {
"default": "mdi:air-filter"
},
"lifespan_lens_brush": {
"default": "mdi:broom"
},
"lifespan_side_brush": {
"default": "mdi:broom"
},

View file

@ -46,12 +46,18 @@
"relocate": {
"name": "Relocate"
},
"reset_lifespan_blade": {
"name": "Reset blade lifespan"
},
"reset_lifespan_brush": {
"name": "Reset main brush lifespan"
},
"reset_lifespan_filter": {
"name": "Reset filter lifespan"
},
"reset_lifespan_lens_brush": {
"name": "Reset lens brush lifespan"
},
"reset_lifespan_side_brush": {
"name": "Reset side brushes lifespan"
}
@ -92,12 +98,18 @@
}
}
},
"lifespan_blade": {
"name": "Blade lifespan"
},
"lifespan_brush": {
"name": "Main brush lifespan"
},
"lifespan_filter": {
"name": "Filter lifespan"
},
"lifespan_lens_brush": {
"name": "Lens brush lifespan"
},
"lifespan_side_brush": {
"name": "Side brushes lifespan"
},

View file

@ -1,4 +1,96 @@
# serializer version: 1
# name: test_buttons[5xu9h3][button.goat_g1_reset_blade_lifespan:entity-registry]
EntityRegistryEntrySnapshot({
'aliases': set({
}),
'area_id': None,
'capabilities': None,
'config_entry_id': <ANY>,
'device_class': None,
'device_id': <ANY>,
'disabled_by': None,
'domain': 'button',
'entity_category': <EntityCategory.CONFIG: 'config'>,
'entity_id': 'button.goat_g1_reset_blade_lifespan',
'has_entity_name': True,
'hidden_by': None,
'icon': None,
'id': <ANY>,
'labels': set({
}),
'name': None,
'options': dict({
}),
'original_device_class': None,
'original_icon': None,
'original_name': 'Reset blade lifespan',
'platform': 'ecovacs',
'previous_unique_id': None,
'supported_features': 0,
'translation_key': 'reset_lifespan_blade',
'unique_id': '8516fbb1-17f1-4194-0000000_reset_lifespan_blade',
'unit_of_measurement': None,
})
# ---
# name: test_buttons[5xu9h3][button.goat_g1_reset_blade_lifespan:state]
StateSnapshot({
'attributes': ReadOnlyDict({
'friendly_name': 'Goat G1 Reset blade lifespan',
}),
'context': <ANY>,
'entity_id': 'button.goat_g1_reset_blade_lifespan',
'last_changed': <ANY>,
'last_reported': <ANY>,
'last_updated': <ANY>,
'state': '2024-01-01T00:00:00+00:00',
})
# ---
# name: test_buttons[5xu9h3][button.goat_g1_reset_lens_brush_lifespan:entity-registry]
EntityRegistryEntrySnapshot({
'aliases': set({
}),
'area_id': None,
'capabilities': None,
'config_entry_id': <ANY>,
'device_class': None,
'device_id': <ANY>,
'disabled_by': None,
'domain': 'button',
'entity_category': <EntityCategory.CONFIG: 'config'>,
'entity_id': 'button.goat_g1_reset_lens_brush_lifespan',
'has_entity_name': True,
'hidden_by': None,
'icon': None,
'id': <ANY>,
'labels': set({
}),
'name': None,
'options': dict({
}),
'original_device_class': None,
'original_icon': None,
'original_name': 'Reset lens brush lifespan',
'platform': 'ecovacs',
'previous_unique_id': None,
'supported_features': 0,
'translation_key': 'reset_lifespan_lens_brush',
'unique_id': '8516fbb1-17f1-4194-0000000_reset_lifespan_lens_brush',
'unit_of_measurement': None,
})
# ---
# name: test_buttons[5xu9h3][button.goat_g1_reset_lens_brush_lifespan:state]
StateSnapshot({
'attributes': ReadOnlyDict({
'friendly_name': 'Goat G1 Reset lens brush lifespan',
}),
'context': <ANY>,
'entity_id': 'button.goat_g1_reset_lens_brush_lifespan',
'last_changed': <ANY>,
'last_reported': <ANY>,
'last_updated': <ANY>,
'state': '2024-01-01T00:00:00+00:00',
})
# ---
# name: test_buttons[yna5x1][button.ozmo_950_relocate:entity-registry]
EntityRegistryEntrySnapshot({
'aliases': set({

View file

@ -1,5 +1,583 @@
# serializer version: 1
# name: test_sensors[yna5x1-entity_ids0][sensor.ozmo_950_area_cleaned:entity-registry]
# name: test_sensors[5xu9h3][sensor.goat_g1_area_cleaned:entity-registry]
EntityRegistryEntrySnapshot({
'aliases': set({
}),
'area_id': None,
'capabilities': None,
'config_entry_id': <ANY>,
'device_class': None,
'device_id': <ANY>,
'disabled_by': None,
'domain': 'sensor',
'entity_category': None,
'entity_id': 'sensor.goat_g1_area_cleaned',
'has_entity_name': True,
'hidden_by': None,
'icon': None,
'id': <ANY>,
'labels': set({
}),
'name': None,
'options': dict({
}),
'original_device_class': None,
'original_icon': None,
'original_name': 'Area cleaned',
'platform': 'ecovacs',
'previous_unique_id': None,
'supported_features': 0,
'translation_key': 'stats_area',
'unique_id': '8516fbb1-17f1-4194-0000000_stats_area',
'unit_of_measurement': 'm²',
})
# ---
# name: test_sensors[5xu9h3][sensor.goat_g1_area_cleaned:state]
StateSnapshot({
'attributes': ReadOnlyDict({
'friendly_name': 'Goat G1 Area cleaned',
'unit_of_measurement': 'm²',
}),
'context': <ANY>,
'entity_id': 'sensor.goat_g1_area_cleaned',
'last_changed': <ANY>,
'last_reported': <ANY>,
'last_updated': <ANY>,
'state': '10',
})
# ---
# name: test_sensors[5xu9h3][sensor.goat_g1_battery:entity-registry]
EntityRegistryEntrySnapshot({
'aliases': set({
}),
'area_id': None,
'capabilities': None,
'config_entry_id': <ANY>,
'device_class': None,
'device_id': <ANY>,
'disabled_by': None,
'domain': 'sensor',
'entity_category': <EntityCategory.DIAGNOSTIC: 'diagnostic'>,
'entity_id': 'sensor.goat_g1_battery',
'has_entity_name': True,
'hidden_by': None,
'icon': None,
'id': <ANY>,
'labels': set({
}),
'name': None,
'options': dict({
}),
'original_device_class': <SensorDeviceClass.BATTERY: 'battery'>,
'original_icon': None,
'original_name': 'Battery',
'platform': 'ecovacs',
'previous_unique_id': None,
'supported_features': 0,
'translation_key': None,
'unique_id': '8516fbb1-17f1-4194-0000000_battery_level',
'unit_of_measurement': '%',
})
# ---
# name: test_sensors[5xu9h3][sensor.goat_g1_battery:state]
StateSnapshot({
'attributes': ReadOnlyDict({
'device_class': 'battery',
'friendly_name': 'Goat G1 Battery',
'unit_of_measurement': '%',
}),
'context': <ANY>,
'entity_id': 'sensor.goat_g1_battery',
'last_changed': <ANY>,
'last_reported': <ANY>,
'last_updated': <ANY>,
'state': '100',
})
# ---
# name: test_sensors[5xu9h3][sensor.goat_g1_blade_lifespan:entity-registry]
EntityRegistryEntrySnapshot({
'aliases': set({
}),
'area_id': None,
'capabilities': None,
'config_entry_id': <ANY>,
'device_class': None,
'device_id': <ANY>,
'disabled_by': None,
'domain': 'sensor',
'entity_category': <EntityCategory.DIAGNOSTIC: 'diagnostic'>,
'entity_id': 'sensor.goat_g1_blade_lifespan',
'has_entity_name': True,
'hidden_by': None,
'icon': None,
'id': <ANY>,
'labels': set({
}),
'name': None,
'options': dict({
}),
'original_device_class': None,
'original_icon': None,
'original_name': 'Blade lifespan',
'platform': 'ecovacs',
'previous_unique_id': None,
'supported_features': 0,
'translation_key': 'lifespan_blade',
'unique_id': '8516fbb1-17f1-4194-0000000_lifespan_blade',
'unit_of_measurement': '%',
})
# ---
# name: test_sensors[5xu9h3][sensor.goat_g1_blade_lifespan:state]
StateSnapshot({
'attributes': ReadOnlyDict({
'friendly_name': 'Goat G1 Blade lifespan',
'unit_of_measurement': '%',
}),
'context': <ANY>,
'entity_id': 'sensor.goat_g1_blade_lifespan',
'last_changed': <ANY>,
'last_reported': <ANY>,
'last_updated': <ANY>,
'state': 'unknown',
})
# ---
# name: test_sensors[5xu9h3][sensor.goat_g1_cleaning_duration:entity-registry]
EntityRegistryEntrySnapshot({
'aliases': set({
}),
'area_id': None,
'capabilities': None,
'config_entry_id': <ANY>,
'device_class': None,
'device_id': <ANY>,
'disabled_by': None,
'domain': 'sensor',
'entity_category': None,
'entity_id': 'sensor.goat_g1_cleaning_duration',
'has_entity_name': True,
'hidden_by': None,
'icon': None,
'id': <ANY>,
'labels': set({
}),
'name': None,
'options': dict({
'sensor.private': dict({
'suggested_unit_of_measurement': <UnitOfTime.MINUTES: 'min'>,
}),
}),
'original_device_class': <SensorDeviceClass.DURATION: 'duration'>,
'original_icon': None,
'original_name': 'Cleaning duration',
'platform': 'ecovacs',
'previous_unique_id': None,
'supported_features': 0,
'translation_key': 'stats_time',
'unique_id': '8516fbb1-17f1-4194-0000000_stats_time',
'unit_of_measurement': <UnitOfTime.MINUTES: 'min'>,
})
# ---
# name: test_sensors[5xu9h3][sensor.goat_g1_cleaning_duration:state]
StateSnapshot({
'attributes': ReadOnlyDict({
'device_class': 'duration',
'friendly_name': 'Goat G1 Cleaning duration',
'unit_of_measurement': <UnitOfTime.MINUTES: 'min'>,
}),
'context': <ANY>,
'entity_id': 'sensor.goat_g1_cleaning_duration',
'last_changed': <ANY>,
'last_reported': <ANY>,
'last_updated': <ANY>,
'state': '5.0',
})
# ---
# name: test_sensors[5xu9h3][sensor.goat_g1_error:entity-registry]
EntityRegistryEntrySnapshot({
'aliases': set({
}),
'area_id': None,
'capabilities': None,
'config_entry_id': <ANY>,
'device_class': None,
'device_id': <ANY>,
'disabled_by': None,
'domain': 'sensor',
'entity_category': <EntityCategory.DIAGNOSTIC: 'diagnostic'>,
'entity_id': 'sensor.goat_g1_error',
'has_entity_name': True,
'hidden_by': None,
'icon': None,
'id': <ANY>,
'labels': set({
}),
'name': None,
'options': dict({
}),
'original_device_class': None,
'original_icon': None,
'original_name': 'Error',
'platform': 'ecovacs',
'previous_unique_id': None,
'supported_features': 0,
'translation_key': 'error',
'unique_id': '8516fbb1-17f1-4194-0000000_error',
'unit_of_measurement': None,
})
# ---
# name: test_sensors[5xu9h3][sensor.goat_g1_error:state]
StateSnapshot({
'attributes': ReadOnlyDict({
'description': 'NoError: Robot is operational',
'friendly_name': 'Goat G1 Error',
}),
'context': <ANY>,
'entity_id': 'sensor.goat_g1_error',
'last_changed': <ANY>,
'last_reported': <ANY>,
'last_updated': <ANY>,
'state': '0',
})
# ---
# name: test_sensors[5xu9h3][sensor.goat_g1_ip_address:entity-registry]
EntityRegistryEntrySnapshot({
'aliases': set({
}),
'area_id': None,
'capabilities': None,
'config_entry_id': <ANY>,
'device_class': None,
'device_id': <ANY>,
'disabled_by': None,
'domain': 'sensor',
'entity_category': <EntityCategory.DIAGNOSTIC: 'diagnostic'>,
'entity_id': 'sensor.goat_g1_ip_address',
'has_entity_name': True,
'hidden_by': None,
'icon': None,
'id': <ANY>,
'labels': set({
}),
'name': None,
'options': dict({
}),
'original_device_class': None,
'original_icon': None,
'original_name': 'IP address',
'platform': 'ecovacs',
'previous_unique_id': None,
'supported_features': 0,
'translation_key': 'network_ip',
'unique_id': '8516fbb1-17f1-4194-0000000_network_ip',
'unit_of_measurement': None,
})
# ---
# name: test_sensors[5xu9h3][sensor.goat_g1_ip_address:state]
StateSnapshot({
'attributes': ReadOnlyDict({
'friendly_name': 'Goat G1 IP address',
}),
'context': <ANY>,
'entity_id': 'sensor.goat_g1_ip_address',
'last_changed': <ANY>,
'last_reported': <ANY>,
'last_updated': <ANY>,
'state': '192.168.0.10',
})
# ---
# name: test_sensors[5xu9h3][sensor.goat_g1_lens_brush_lifespan:entity-registry]
EntityRegistryEntrySnapshot({
'aliases': set({
}),
'area_id': None,
'capabilities': None,
'config_entry_id': <ANY>,
'device_class': None,
'device_id': <ANY>,
'disabled_by': None,
'domain': 'sensor',
'entity_category': <EntityCategory.DIAGNOSTIC: 'diagnostic'>,
'entity_id': 'sensor.goat_g1_lens_brush_lifespan',
'has_entity_name': True,
'hidden_by': None,
'icon': None,
'id': <ANY>,
'labels': set({
}),
'name': None,
'options': dict({
}),
'original_device_class': None,
'original_icon': None,
'original_name': 'Lens brush lifespan',
'platform': 'ecovacs',
'previous_unique_id': None,
'supported_features': 0,
'translation_key': 'lifespan_lens_brush',
'unique_id': '8516fbb1-17f1-4194-0000000_lifespan_lens_brush',
'unit_of_measurement': '%',
})
# ---
# name: test_sensors[5xu9h3][sensor.goat_g1_lens_brush_lifespan:state]
StateSnapshot({
'attributes': ReadOnlyDict({
'friendly_name': 'Goat G1 Lens brush lifespan',
'unit_of_measurement': '%',
}),
'context': <ANY>,
'entity_id': 'sensor.goat_g1_lens_brush_lifespan',
'last_changed': <ANY>,
'last_reported': <ANY>,
'last_updated': <ANY>,
'state': 'unknown',
})
# ---
# name: test_sensors[5xu9h3][sensor.goat_g1_total_area_cleaned:entity-registry]
EntityRegistryEntrySnapshot({
'aliases': set({
}),
'area_id': None,
'capabilities': dict({
'state_class': <SensorStateClass.TOTAL_INCREASING: 'total_increasing'>,
}),
'config_entry_id': <ANY>,
'device_class': None,
'device_id': <ANY>,
'disabled_by': None,
'domain': 'sensor',
'entity_category': None,
'entity_id': 'sensor.goat_g1_total_area_cleaned',
'has_entity_name': True,
'hidden_by': None,
'icon': None,
'id': <ANY>,
'labels': set({
}),
'name': None,
'options': dict({
}),
'original_device_class': None,
'original_icon': None,
'original_name': 'Total area cleaned',
'platform': 'ecovacs',
'previous_unique_id': None,
'supported_features': 0,
'translation_key': 'total_stats_area',
'unique_id': '8516fbb1-17f1-4194-0000000_total_stats_area',
'unit_of_measurement': 'm²',
})
# ---
# name: test_sensors[5xu9h3][sensor.goat_g1_total_area_cleaned:state]
StateSnapshot({
'attributes': ReadOnlyDict({
'friendly_name': 'Goat G1 Total area cleaned',
'state_class': <SensorStateClass.TOTAL_INCREASING: 'total_increasing'>,
'unit_of_measurement': 'm²',
}),
'context': <ANY>,
'entity_id': 'sensor.goat_g1_total_area_cleaned',
'last_changed': <ANY>,
'last_reported': <ANY>,
'last_updated': <ANY>,
'state': '60',
})
# ---
# name: test_sensors[5xu9h3][sensor.goat_g1_total_cleaning_duration:entity-registry]
EntityRegistryEntrySnapshot({
'aliases': set({
}),
'area_id': None,
'capabilities': dict({
'state_class': <SensorStateClass.TOTAL_INCREASING: 'total_increasing'>,
}),
'config_entry_id': <ANY>,
'device_class': None,
'device_id': <ANY>,
'disabled_by': None,
'domain': 'sensor',
'entity_category': None,
'entity_id': 'sensor.goat_g1_total_cleaning_duration',
'has_entity_name': True,
'hidden_by': None,
'icon': None,
'id': <ANY>,
'labels': set({
}),
'name': None,
'options': dict({
'sensor.private': dict({
'suggested_unit_of_measurement': <UnitOfTime.HOURS: 'h'>,
}),
}),
'original_device_class': <SensorDeviceClass.DURATION: 'duration'>,
'original_icon': None,
'original_name': 'Total cleaning duration',
'platform': 'ecovacs',
'previous_unique_id': None,
'supported_features': 0,
'translation_key': 'total_stats_time',
'unique_id': '8516fbb1-17f1-4194-0000000_total_stats_time',
'unit_of_measurement': <UnitOfTime.HOURS: 'h'>,
})
# ---
# name: test_sensors[5xu9h3][sensor.goat_g1_total_cleaning_duration:state]
StateSnapshot({
'attributes': ReadOnlyDict({
'device_class': 'duration',
'friendly_name': 'Goat G1 Total cleaning duration',
'state_class': <SensorStateClass.TOTAL_INCREASING: 'total_increasing'>,
'unit_of_measurement': <UnitOfTime.HOURS: 'h'>,
}),
'context': <ANY>,
'entity_id': 'sensor.goat_g1_total_cleaning_duration',
'last_changed': <ANY>,
'last_reported': <ANY>,
'last_updated': <ANY>,
'state': '40.000',
})
# ---
# name: test_sensors[5xu9h3][sensor.goat_g1_total_cleanings:entity-registry]
EntityRegistryEntrySnapshot({
'aliases': set({
}),
'area_id': None,
'capabilities': dict({
'state_class': <SensorStateClass.TOTAL_INCREASING: 'total_increasing'>,
}),
'config_entry_id': <ANY>,
'device_class': None,
'device_id': <ANY>,
'disabled_by': None,
'domain': 'sensor',
'entity_category': None,
'entity_id': 'sensor.goat_g1_total_cleanings',
'has_entity_name': True,
'hidden_by': None,
'icon': None,
'id': <ANY>,
'labels': set({
}),
'name': None,
'options': dict({
}),
'original_device_class': None,
'original_icon': None,
'original_name': 'Total cleanings',
'platform': 'ecovacs',
'previous_unique_id': None,
'supported_features': 0,
'translation_key': 'total_stats_cleanings',
'unique_id': '8516fbb1-17f1-4194-0000000_total_stats_cleanings',
'unit_of_measurement': None,
})
# ---
# name: test_sensors[5xu9h3][sensor.goat_g1_total_cleanings:state]
StateSnapshot({
'attributes': ReadOnlyDict({
'friendly_name': 'Goat G1 Total cleanings',
'state_class': <SensorStateClass.TOTAL_INCREASING: 'total_increasing'>,
}),
'context': <ANY>,
'entity_id': 'sensor.goat_g1_total_cleanings',
'last_changed': <ANY>,
'last_reported': <ANY>,
'last_updated': <ANY>,
'state': '123',
})
# ---
# name: test_sensors[5xu9h3][sensor.goat_g1_wi_fi_rssi:entity-registry]
EntityRegistryEntrySnapshot({
'aliases': set({
}),
'area_id': None,
'capabilities': None,
'config_entry_id': <ANY>,
'device_class': None,
'device_id': <ANY>,
'disabled_by': None,
'domain': 'sensor',
'entity_category': <EntityCategory.DIAGNOSTIC: 'diagnostic'>,
'entity_id': 'sensor.goat_g1_wi_fi_rssi',
'has_entity_name': True,
'hidden_by': None,
'icon': None,
'id': <ANY>,
'labels': set({
}),
'name': None,
'options': dict({
}),
'original_device_class': None,
'original_icon': None,
'original_name': 'Wi-Fi RSSI',
'platform': 'ecovacs',
'previous_unique_id': None,
'supported_features': 0,
'translation_key': 'network_rssi',
'unique_id': '8516fbb1-17f1-4194-0000000_network_rssi',
'unit_of_measurement': None,
})
# ---
# name: test_sensors[5xu9h3][sensor.goat_g1_wi_fi_rssi:state]
StateSnapshot({
'attributes': ReadOnlyDict({
'friendly_name': 'Goat G1 Wi-Fi RSSI',
}),
'context': <ANY>,
'entity_id': 'sensor.goat_g1_wi_fi_rssi',
'last_changed': <ANY>,
'last_reported': <ANY>,
'last_updated': <ANY>,
'state': '-62',
})
# ---
# name: test_sensors[5xu9h3][sensor.goat_g1_wi_fi_ssid:entity-registry]
EntityRegistryEntrySnapshot({
'aliases': set({
}),
'area_id': None,
'capabilities': None,
'config_entry_id': <ANY>,
'device_class': None,
'device_id': <ANY>,
'disabled_by': None,
'domain': 'sensor',
'entity_category': <EntityCategory.DIAGNOSTIC: 'diagnostic'>,
'entity_id': 'sensor.goat_g1_wi_fi_ssid',
'has_entity_name': True,
'hidden_by': None,
'icon': None,
'id': <ANY>,
'labels': set({
}),
'name': None,
'options': dict({
}),
'original_device_class': None,
'original_icon': None,
'original_name': 'Wi-Fi SSID',
'platform': 'ecovacs',
'previous_unique_id': None,
'supported_features': 0,
'translation_key': 'network_ssid',
'unique_id': '8516fbb1-17f1-4194-0000000_network_ssid',
'unit_of_measurement': None,
})
# ---
# name: test_sensors[5xu9h3][sensor.goat_g1_wi_fi_ssid:state]
StateSnapshot({
'attributes': ReadOnlyDict({
'friendly_name': 'Goat G1 Wi-Fi SSID',
}),
'context': <ANY>,
'entity_id': 'sensor.goat_g1_wi_fi_ssid',
'last_changed': <ANY>,
'last_reported': <ANY>,
'last_updated': <ANY>,
'state': 'Testnetwork',
})
# ---
# name: test_sensors[yna5x1][sensor.ozmo_950_area_cleaned:entity-registry]
EntityRegistryEntrySnapshot({
'aliases': set({
}),
@ -32,7 +610,7 @@
'unit_of_measurement': 'm²',
})
# ---
# name: test_sensors[yna5x1-entity_ids0][sensor.ozmo_950_area_cleaned:state]
# name: test_sensors[yna5x1][sensor.ozmo_950_area_cleaned:state]
StateSnapshot({
'attributes': ReadOnlyDict({
'friendly_name': 'Ozmo 950 Area cleaned',
@ -46,7 +624,7 @@
'state': '10',
})
# ---
# name: test_sensors[yna5x1-entity_ids0][sensor.ozmo_950_battery:entity-registry]
# name: test_sensors[yna5x1][sensor.ozmo_950_battery:entity-registry]
EntityRegistryEntrySnapshot({
'aliases': set({
}),
@ -79,7 +657,7 @@
'unit_of_measurement': '%',
})
# ---
# name: test_sensors[yna5x1-entity_ids0][sensor.ozmo_950_battery:state]
# name: test_sensors[yna5x1][sensor.ozmo_950_battery:state]
StateSnapshot({
'attributes': ReadOnlyDict({
'device_class': 'battery',
@ -94,7 +672,7 @@
'state': '100',
})
# ---
# name: test_sensors[yna5x1-entity_ids0][sensor.ozmo_950_cleaning_duration:entity-registry]
# name: test_sensors[yna5x1][sensor.ozmo_950_cleaning_duration:entity-registry]
EntityRegistryEntrySnapshot({
'aliases': set({
}),
@ -130,7 +708,7 @@
'unit_of_measurement': <UnitOfTime.MINUTES: 'min'>,
})
# ---
# name: test_sensors[yna5x1-entity_ids0][sensor.ozmo_950_cleaning_duration:state]
# name: test_sensors[yna5x1][sensor.ozmo_950_cleaning_duration:state]
StateSnapshot({
'attributes': ReadOnlyDict({
'device_class': 'duration',
@ -145,7 +723,7 @@
'state': '5.0',
})
# ---
# name: test_sensors[yna5x1-entity_ids0][sensor.ozmo_950_error:entity-registry]
# name: test_sensors[yna5x1][sensor.ozmo_950_error:entity-registry]
EntityRegistryEntrySnapshot({
'aliases': set({
}),
@ -178,7 +756,7 @@
'unit_of_measurement': None,
})
# ---
# name: test_sensors[yna5x1-entity_ids0][sensor.ozmo_950_error:state]
# name: test_sensors[yna5x1][sensor.ozmo_950_error:state]
StateSnapshot({
'attributes': ReadOnlyDict({
'description': 'NoError: Robot is operational',
@ -192,7 +770,7 @@
'state': '0',
})
# ---
# name: test_sensors[yna5x1-entity_ids0][sensor.ozmo_950_filter_lifespan:entity-registry]
# name: test_sensors[yna5x1][sensor.ozmo_950_filter_lifespan:entity-registry]
EntityRegistryEntrySnapshot({
'aliases': set({
}),
@ -225,7 +803,7 @@
'unit_of_measurement': '%',
})
# ---
# name: test_sensors[yna5x1-entity_ids0][sensor.ozmo_950_filter_lifespan:state]
# name: test_sensors[yna5x1][sensor.ozmo_950_filter_lifespan:state]
StateSnapshot({
'attributes': ReadOnlyDict({
'friendly_name': 'Ozmo 950 Filter lifespan',
@ -239,7 +817,7 @@
'state': '56',
})
# ---
# name: test_sensors[yna5x1-entity_ids0][sensor.ozmo_950_ip_address:entity-registry]
# name: test_sensors[yna5x1][sensor.ozmo_950_ip_address:entity-registry]
EntityRegistryEntrySnapshot({
'aliases': set({
}),
@ -272,7 +850,7 @@
'unit_of_measurement': None,
})
# ---
# name: test_sensors[yna5x1-entity_ids0][sensor.ozmo_950_ip_address:state]
# name: test_sensors[yna5x1][sensor.ozmo_950_ip_address:state]
StateSnapshot({
'attributes': ReadOnlyDict({
'friendly_name': 'Ozmo 950 IP address',
@ -285,7 +863,7 @@
'state': '192.168.0.10',
})
# ---
# name: test_sensors[yna5x1-entity_ids0][sensor.ozmo_950_main_brush_lifespan:entity-registry]
# name: test_sensors[yna5x1][sensor.ozmo_950_main_brush_lifespan:entity-registry]
EntityRegistryEntrySnapshot({
'aliases': set({
}),
@ -318,7 +896,7 @@
'unit_of_measurement': '%',
})
# ---
# name: test_sensors[yna5x1-entity_ids0][sensor.ozmo_950_main_brush_lifespan:state]
# name: test_sensors[yna5x1][sensor.ozmo_950_main_brush_lifespan:state]
StateSnapshot({
'attributes': ReadOnlyDict({
'friendly_name': 'Ozmo 950 Main brush lifespan',
@ -332,7 +910,7 @@
'state': '80',
})
# ---
# name: test_sensors[yna5x1-entity_ids0][sensor.ozmo_950_side_brushes_lifespan:entity-registry]
# name: test_sensors[yna5x1][sensor.ozmo_950_side_brushes_lifespan:entity-registry]
EntityRegistryEntrySnapshot({
'aliases': set({
}),
@ -365,7 +943,7 @@
'unit_of_measurement': '%',
})
# ---
# name: test_sensors[yna5x1-entity_ids0][sensor.ozmo_950_side_brushes_lifespan:state]
# name: test_sensors[yna5x1][sensor.ozmo_950_side_brushes_lifespan:state]
StateSnapshot({
'attributes': ReadOnlyDict({
'friendly_name': 'Ozmo 950 Side brushes lifespan',
@ -379,7 +957,7 @@
'state': '40',
})
# ---
# name: test_sensors[yna5x1-entity_ids0][sensor.ozmo_950_total_area_cleaned:entity-registry]
# name: test_sensors[yna5x1][sensor.ozmo_950_total_area_cleaned:entity-registry]
EntityRegistryEntrySnapshot({
'aliases': set({
}),
@ -414,7 +992,7 @@
'unit_of_measurement': 'm²',
})
# ---
# name: test_sensors[yna5x1-entity_ids0][sensor.ozmo_950_total_area_cleaned:state]
# name: test_sensors[yna5x1][sensor.ozmo_950_total_area_cleaned:state]
StateSnapshot({
'attributes': ReadOnlyDict({
'friendly_name': 'Ozmo 950 Total area cleaned',
@ -429,7 +1007,7 @@
'state': '60',
})
# ---
# name: test_sensors[yna5x1-entity_ids0][sensor.ozmo_950_total_cleaning_duration:entity-registry]
# name: test_sensors[yna5x1][sensor.ozmo_950_total_cleaning_duration:entity-registry]
EntityRegistryEntrySnapshot({
'aliases': set({
}),
@ -467,7 +1045,7 @@
'unit_of_measurement': <UnitOfTime.HOURS: 'h'>,
})
# ---
# name: test_sensors[yna5x1-entity_ids0][sensor.ozmo_950_total_cleaning_duration:state]
# name: test_sensors[yna5x1][sensor.ozmo_950_total_cleaning_duration:state]
StateSnapshot({
'attributes': ReadOnlyDict({
'device_class': 'duration',
@ -483,7 +1061,7 @@
'state': '40.000',
})
# ---
# name: test_sensors[yna5x1-entity_ids0][sensor.ozmo_950_total_cleanings:entity-registry]
# name: test_sensors[yna5x1][sensor.ozmo_950_total_cleanings:entity-registry]
EntityRegistryEntrySnapshot({
'aliases': set({
}),
@ -518,7 +1096,7 @@
'unit_of_measurement': None,
})
# ---
# name: test_sensors[yna5x1-entity_ids0][sensor.ozmo_950_total_cleanings:state]
# name: test_sensors[yna5x1][sensor.ozmo_950_total_cleanings:state]
StateSnapshot({
'attributes': ReadOnlyDict({
'friendly_name': 'Ozmo 950 Total cleanings',
@ -532,7 +1110,7 @@
'state': '123',
})
# ---
# name: test_sensors[yna5x1-entity_ids0][sensor.ozmo_950_wi_fi_rssi:entity-registry]
# name: test_sensors[yna5x1][sensor.ozmo_950_wi_fi_rssi:entity-registry]
EntityRegistryEntrySnapshot({
'aliases': set({
}),
@ -565,7 +1143,7 @@
'unit_of_measurement': None,
})
# ---
# name: test_sensors[yna5x1-entity_ids0][sensor.ozmo_950_wi_fi_rssi:state]
# name: test_sensors[yna5x1][sensor.ozmo_950_wi_fi_rssi:state]
StateSnapshot({
'attributes': ReadOnlyDict({
'friendly_name': 'Ozmo 950 Wi-Fi RSSI',
@ -578,7 +1156,7 @@
'state': '-62',
})
# ---
# name: test_sensors[yna5x1-entity_ids0][sensor.ozmo_950_wi_fi_ssid:entity-registry]
# name: test_sensors[yna5x1][sensor.ozmo_950_wi_fi_ssid:entity-registry]
EntityRegistryEntrySnapshot({
'aliases': set({
}),
@ -611,7 +1189,7 @@
'unit_of_measurement': None,
})
# ---
# name: test_sensors[yna5x1-entity_ids0][sensor.ozmo_950_wi_fi_ssid:state]
# name: test_sensors[yna5x1][sensor.ozmo_950_wi_fi_ssid:state]
StateSnapshot({
'attributes': ReadOnlyDict({
'friendly_name': 'Ozmo 950 Wi-Fi SSID',

View file

@ -48,8 +48,21 @@ def platforms() -> Platform | list[Platform]:
),
],
),
(
"5xu9h3",
[
(
"button.goat_g1_reset_blade_lifespan",
ResetLifeSpan(LifeSpan.BLADE),
),
(
"button.goat_g1_reset_lens_brush_lifespan",
ResetLifeSpan(LifeSpan.LENS_BRUSH),
),
],
),
],
ids=["yna5x1"],
ids=["yna5x1", "5xu9h3"],
)
async def test_buttons(
hass: HomeAssistant,
@ -98,6 +111,13 @@ async def test_buttons(
"button.ozmo_950_reset_side_brushes_lifespan",
],
),
(
"5xu9h3",
[
"button.goat_g1_reset_blade_lifespan",
"button.goat_g1_reset_lens_brush_lifespan",
],
),
],
)
async def test_disabled_by_default_buttons(

View file

@ -122,7 +122,7 @@ async def test_devices_in_dr(
("device_fixture", "entities"),
[
("yna5x1", 26),
("5xu9h3", 20),
("5xu9h3", 24),
],
)
async def test_all_entities_loaded(

View file

@ -69,7 +69,25 @@ async def notify_events(hass: HomeAssistant, event_bus: EventBus):
"sensor.ozmo_950_error",
],
),
(
"5xu9h3",
[
"sensor.goat_g1_area_cleaned",
"sensor.goat_g1_cleaning_duration",
"sensor.goat_g1_total_area_cleaned",
"sensor.goat_g1_total_cleaning_duration",
"sensor.goat_g1_total_cleanings",
"sensor.goat_g1_battery",
"sensor.goat_g1_ip_address",
"sensor.goat_g1_wi_fi_rssi",
"sensor.goat_g1_wi_fi_ssid",
"sensor.goat_g1_blade_lifespan",
"sensor.goat_g1_lens_brush_lifespan",
"sensor.goat_g1_error",
],
),
],
ids=["yna5x1", "5xu9h3"],
)
async def test_sensors(
hass: HomeAssistant,
@ -111,7 +129,17 @@ async def test_sensors(
"sensor.ozmo_950_wi_fi_ssid",
],
),
(
"5xu9h3",
[
"sensor.goat_g1_error",
"sensor.goat_g1_ip_address",
"sensor.goat_g1_wi_fi_rssi",
"sensor.goat_g1_wi_fi_ssid",
],
),
],
ids=["yna5x1", "5xu9h3"],
)
async def test_disabled_by_default_sensors(
hass: HomeAssistant, entity_registry: er.EntityRegistry, entity_ids: list[str]