diff --git a/homeassistant/components/ecovacs/const.py b/homeassistant/components/ecovacs/const.py index e5ef0760182..6b77404e935 100644 --- a/homeassistant/components/ecovacs/const.py +++ b/homeassistant/components/ecovacs/const.py @@ -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, ) diff --git a/homeassistant/components/ecovacs/icons.json b/homeassistant/components/ecovacs/icons.json index 2e2d897c455..44c577104dd 100644 --- a/homeassistant/components/ecovacs/icons.json +++ b/homeassistant/components/ecovacs/icons.json @@ -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" }, diff --git a/homeassistant/components/ecovacs/strings.json b/homeassistant/components/ecovacs/strings.json index 50afd21deb3..bb27bd6941d 100644 --- a/homeassistant/components/ecovacs/strings.json +++ b/homeassistant/components/ecovacs/strings.json @@ -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" }, diff --git a/tests/components/ecovacs/snapshots/test_button.ambr b/tests/components/ecovacs/snapshots/test_button.ambr index 816551f7e6a..d250a60a35f 100644 --- a/tests/components/ecovacs/snapshots/test_button.ambr +++ b/tests/components/ecovacs/snapshots/test_button.ambr @@ -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': , + 'device_class': None, + 'device_id': , + 'disabled_by': None, + 'domain': 'button', + 'entity_category': , + 'entity_id': 'button.goat_g1_reset_blade_lifespan', + 'has_entity_name': True, + 'hidden_by': None, + 'icon': None, + 'id': , + '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': , + 'entity_id': 'button.goat_g1_reset_blade_lifespan', + 'last_changed': , + 'last_reported': , + 'last_updated': , + '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': , + 'device_class': None, + 'device_id': , + 'disabled_by': None, + 'domain': 'button', + 'entity_category': , + 'entity_id': 'button.goat_g1_reset_lens_brush_lifespan', + 'has_entity_name': True, + 'hidden_by': None, + 'icon': None, + 'id': , + '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': , + 'entity_id': 'button.goat_g1_reset_lens_brush_lifespan', + 'last_changed': , + 'last_reported': , + 'last_updated': , + 'state': '2024-01-01T00:00:00+00:00', + }) +# --- # name: test_buttons[yna5x1][button.ozmo_950_relocate:entity-registry] EntityRegistryEntrySnapshot({ 'aliases': set({ diff --git a/tests/components/ecovacs/snapshots/test_sensor.ambr b/tests/components/ecovacs/snapshots/test_sensor.ambr index b35310158f2..e2cee3d410f 100644 --- a/tests/components/ecovacs/snapshots/test_sensor.ambr +++ b/tests/components/ecovacs/snapshots/test_sensor.ambr @@ -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': , + 'device_class': None, + 'device_id': , + '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': , + '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': , + 'entity_id': 'sensor.goat_g1_area_cleaned', + 'last_changed': , + 'last_reported': , + 'last_updated': , + 'state': '10', + }) +# --- +# name: test_sensors[5xu9h3][sensor.goat_g1_battery:entity-registry] + EntityRegistryEntrySnapshot({ + 'aliases': set({ + }), + 'area_id': None, + 'capabilities': None, + 'config_entry_id': , + 'device_class': None, + 'device_id': , + 'disabled_by': None, + 'domain': 'sensor', + 'entity_category': , + 'entity_id': 'sensor.goat_g1_battery', + 'has_entity_name': True, + 'hidden_by': None, + 'icon': None, + 'id': , + 'labels': set({ + }), + 'name': None, + 'options': dict({ + }), + 'original_device_class': , + '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': , + 'entity_id': 'sensor.goat_g1_battery', + 'last_changed': , + 'last_reported': , + 'last_updated': , + 'state': '100', + }) +# --- +# name: test_sensors[5xu9h3][sensor.goat_g1_blade_lifespan:entity-registry] + EntityRegistryEntrySnapshot({ + 'aliases': set({ + }), + 'area_id': None, + 'capabilities': None, + 'config_entry_id': , + 'device_class': None, + 'device_id': , + 'disabled_by': None, + 'domain': 'sensor', + 'entity_category': , + 'entity_id': 'sensor.goat_g1_blade_lifespan', + 'has_entity_name': True, + 'hidden_by': None, + 'icon': None, + 'id': , + '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': , + 'entity_id': 'sensor.goat_g1_blade_lifespan', + 'last_changed': , + 'last_reported': , + 'last_updated': , + 'state': 'unknown', + }) +# --- +# name: test_sensors[5xu9h3][sensor.goat_g1_cleaning_duration:entity-registry] + EntityRegistryEntrySnapshot({ + 'aliases': set({ + }), + 'area_id': None, + 'capabilities': None, + 'config_entry_id': , + 'device_class': None, + 'device_id': , + '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': , + 'labels': set({ + }), + 'name': None, + 'options': dict({ + 'sensor.private': dict({ + 'suggested_unit_of_measurement': , + }), + }), + 'original_device_class': , + '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': , + }) +# --- +# 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': , + }), + 'context': , + 'entity_id': 'sensor.goat_g1_cleaning_duration', + 'last_changed': , + 'last_reported': , + 'last_updated': , + 'state': '5.0', + }) +# --- +# name: test_sensors[5xu9h3][sensor.goat_g1_error:entity-registry] + EntityRegistryEntrySnapshot({ + 'aliases': set({ + }), + 'area_id': None, + 'capabilities': None, + 'config_entry_id': , + 'device_class': None, + 'device_id': , + 'disabled_by': None, + 'domain': 'sensor', + 'entity_category': , + 'entity_id': 'sensor.goat_g1_error', + 'has_entity_name': True, + 'hidden_by': None, + 'icon': None, + 'id': , + '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': , + 'entity_id': 'sensor.goat_g1_error', + 'last_changed': , + 'last_reported': , + 'last_updated': , + 'state': '0', + }) +# --- +# name: test_sensors[5xu9h3][sensor.goat_g1_ip_address:entity-registry] + EntityRegistryEntrySnapshot({ + 'aliases': set({ + }), + 'area_id': None, + 'capabilities': None, + 'config_entry_id': , + 'device_class': None, + 'device_id': , + 'disabled_by': None, + 'domain': 'sensor', + 'entity_category': , + 'entity_id': 'sensor.goat_g1_ip_address', + 'has_entity_name': True, + 'hidden_by': None, + 'icon': None, + 'id': , + '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': , + 'entity_id': 'sensor.goat_g1_ip_address', + 'last_changed': , + 'last_reported': , + 'last_updated': , + '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': , + 'device_class': None, + 'device_id': , + 'disabled_by': None, + 'domain': 'sensor', + 'entity_category': , + 'entity_id': 'sensor.goat_g1_lens_brush_lifespan', + 'has_entity_name': True, + 'hidden_by': None, + 'icon': None, + 'id': , + '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': , + 'entity_id': 'sensor.goat_g1_lens_brush_lifespan', + 'last_changed': , + 'last_reported': , + 'last_updated': , + 'state': 'unknown', + }) +# --- +# name: test_sensors[5xu9h3][sensor.goat_g1_total_area_cleaned:entity-registry] + EntityRegistryEntrySnapshot({ + 'aliases': set({ + }), + 'area_id': None, + 'capabilities': dict({ + 'state_class': , + }), + 'config_entry_id': , + 'device_class': None, + 'device_id': , + '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': , + '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': , + 'unit_of_measurement': 'm²', + }), + 'context': , + 'entity_id': 'sensor.goat_g1_total_area_cleaned', + 'last_changed': , + 'last_reported': , + 'last_updated': , + 'state': '60', + }) +# --- +# name: test_sensors[5xu9h3][sensor.goat_g1_total_cleaning_duration:entity-registry] + EntityRegistryEntrySnapshot({ + 'aliases': set({ + }), + 'area_id': None, + 'capabilities': dict({ + 'state_class': , + }), + 'config_entry_id': , + 'device_class': None, + 'device_id': , + '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': , + 'labels': set({ + }), + 'name': None, + 'options': dict({ + 'sensor.private': dict({ + 'suggested_unit_of_measurement': , + }), + }), + 'original_device_class': , + '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': , + }) +# --- +# 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': , + 'unit_of_measurement': , + }), + 'context': , + 'entity_id': 'sensor.goat_g1_total_cleaning_duration', + 'last_changed': , + 'last_reported': , + 'last_updated': , + 'state': '40.000', + }) +# --- +# name: test_sensors[5xu9h3][sensor.goat_g1_total_cleanings:entity-registry] + EntityRegistryEntrySnapshot({ + 'aliases': set({ + }), + 'area_id': None, + 'capabilities': dict({ + 'state_class': , + }), + 'config_entry_id': , + 'device_class': None, + 'device_id': , + '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': , + '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': , + }), + 'context': , + 'entity_id': 'sensor.goat_g1_total_cleanings', + 'last_changed': , + 'last_reported': , + 'last_updated': , + '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': , + 'device_class': None, + 'device_id': , + 'disabled_by': None, + 'domain': 'sensor', + 'entity_category': , + 'entity_id': 'sensor.goat_g1_wi_fi_rssi', + 'has_entity_name': True, + 'hidden_by': None, + 'icon': None, + 'id': , + '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': , + 'entity_id': 'sensor.goat_g1_wi_fi_rssi', + 'last_changed': , + 'last_reported': , + 'last_updated': , + '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': , + 'device_class': None, + 'device_id': , + 'disabled_by': None, + 'domain': 'sensor', + 'entity_category': , + 'entity_id': 'sensor.goat_g1_wi_fi_ssid', + 'has_entity_name': True, + 'hidden_by': None, + 'icon': None, + 'id': , + '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': , + 'entity_id': 'sensor.goat_g1_wi_fi_ssid', + 'last_changed': , + 'last_reported': , + 'last_updated': , + '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': , }) # --- -# 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': , }) # --- -# 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', diff --git a/tests/components/ecovacs/test_button.py b/tests/components/ecovacs/test_button.py index 8e583e6342b..277983eb0c5 100644 --- a/tests/components/ecovacs/test_button.py +++ b/tests/components/ecovacs/test_button.py @@ -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( diff --git a/tests/components/ecovacs/test_init.py b/tests/components/ecovacs/test_init.py index 7780b86d714..c27da2196b1 100644 --- a/tests/components/ecovacs/test_init.py +++ b/tests/components/ecovacs/test_init.py @@ -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( diff --git a/tests/components/ecovacs/test_sensor.py b/tests/components/ecovacs/test_sensor.py index 7ff4ab3f009..5b8bf18e1d8 100644 --- a/tests/components/ecovacs/test_sensor.py +++ b/tests/components/ecovacs/test_sensor.py @@ -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]