diff --git a/homeassistant/components/ecovacs/config_flow.py b/homeassistant/components/ecovacs/config_flow.py index 097e4bed864..3ad46d897da 100644 --- a/homeassistant/components/ecovacs/config_flow.py +++ b/homeassistant/components/ecovacs/config_flow.py @@ -172,7 +172,13 @@ class EcovacsConfigFlow(ConfigFlow, domain=DOMAIN): errors = {} if user_input: - self._async_abort_entries_match({CONF_USERNAME: user_input[CONF_USERNAME]}) + self._async_abort_entries_match( + { + CONF_USERNAME: user_input[CONF_USERNAME], + CONF_OVERRIDE_REST_URL: user_input.get(CONF_OVERRIDE_REST_URL), + CONF_OVERRIDE_MQTT_URL: user_input.get(CONF_OVERRIDE_MQTT_URL), + } + ) errors = await _validate_input(self.hass, user_input) diff --git a/homeassistant/components/ecovacs/quality_scale.yaml b/homeassistant/components/ecovacs/quality_scale.yaml index 242d68eaedc..b82cce3ea7f 100644 --- a/homeassistant/components/ecovacs/quality_scale.yaml +++ b/homeassistant/components/ecovacs/quality_scale.yaml @@ -1,60 +1,95 @@ rules: # Bronze config-flow: done - brands: done - dependency-transparency: todo - common-modules: todo - has-entity-name: todo - action-setup: todo - appropriate-polling: todo - test-before-configure: todo - entity-event-setup: todo - unique-config-entry: todo - entity-unique-id: todo + test-before-configure: done + unique-config-entry: done + config-flow-test-coverage: done + runtime-data: done + test-before-setup: + status: todo + comment: Legacy code will not raise on setup currently + appropriate-polling: + status: todo + comment: | + @mib1185 Please check legacy code. + deebot-client pulls only once at beginning and afterwards is pushed based + entity-unique-id: done + has-entity-name: done + entity-event-setup: done + dependency-transparency: + status: todo + comment: Currently unsure if all dependencies need to validated or only direct ones. + action-setup: + status: done + comment: "`raw_get_positions` is a entity service" + common-modules: done + docs-high-level-description: todo docs-installation-instructions: todo docs-removal-instructions: todo - test-before-setup: todo - docs-high-level-description: todo - config-flow-test-coverage: todo docs-actions: todo - runtime-data: todo + brands: done # Silver + config-entry-unloading: done log-when-unavailable: todo - config-entry-unloading: todo - reauthentication-flow: todo + entity-unavailable: done action-exceptions: todo - docs-installation-parameters: todo - integration-owner: todo - parallel-updates: todo + reauthentication-flow: todo + parallel-updates: + status: todo + comment: | + @mib1185 Please check legacy code. + deebot-client uses internally semaphores to prevent to many parallel requests test-coverage: todo + integration-owner: done + docs-installation-parameters: todo docs-configuration-parameters: todo - entity-unavailable: todo # Gold - docs-examples: todo - discovery-update-info: todo - entity-device-class: todo - entity-translations: todo - docs-data-update: todo - entity-disabled-by-default: todo - discovery: todo - exception-translations: todo - devices: todo - docs-supported-devices: todo - icon-translations: todo - docs-known-limitations: todo + entity-translations: + status: todo + comment: | + @mib1185 Legacy entities are not translated + entity-device-class: done + devices: done + entity-category: done + entity-disabled-by-default: done + discovery: + status: exempt + comment: Not supported as we don't talk directly to the devices stale-devices: todo - docs-supported-functions: todo - repair-issues: todo + diagnostics: done + exception-translations: todo + icon-translations: done reconfiguration-flow: todo - entity-category: todo - dynamic-devices: todo - docs-troubleshooting: todo - diagnostics: todo + dynamic-devices: + status: todo + comment: New devices are discovered only on boot currently + discovery-update-info: + status: exempt + comment: Not supported as we don't talk directly to the devices + repair-issues: todo docs-use-cases: todo + docs-supported-devices: todo + docs-supported-functions: todo + docs-data-update: todo + docs-known-limitations: todo + docs-troubleshooting: todo + docs-examples: todo # Platinum - async-dependency: todo - strict-typing: todo - inject-websession: todo + async-dependency: + status: todo + comment: | + @mib1185 Please check legacy code. + deebot-client is async + inject-websession: + status: todo + comment: | + @mib1185 Please check legacy code. + deebot-client uses the passed websession + strict-typing: + status: todo + comment: | + @mib1185 Please check legacy code. + deebot-client is typed diff --git a/homeassistant/components/ecovacs/sensor.py b/homeassistant/components/ecovacs/sensor.py index 7c190d27775..9faacc8f286 100644 --- a/homeassistant/components/ecovacs/sensor.py +++ b/homeassistant/components/ecovacs/sensor.py @@ -67,6 +67,7 @@ ENTITY_DESCRIPTIONS: tuple[EcovacsSensorEntityDescription, ...] = ( capability_fn=lambda caps: caps.stats.clean, value_fn=lambda e: e.area, translation_key="stats_area", + device_class=SensorDeviceClass.AREA, native_unit_of_measurement=UnitOfArea.SQUARE_METERS, ), EcovacsSensorEntityDescription[StatsEvent]( @@ -84,6 +85,7 @@ ENTITY_DESCRIPTIONS: tuple[EcovacsSensorEntityDescription, ...] = ( value_fn=lambda e: e.area, key="total_stats_area", translation_key="total_stats_area", + device_class=SensorDeviceClass.AREA, native_unit_of_measurement=UnitOfArea.SQUARE_METERS, state_class=SensorStateClass.TOTAL_INCREASING, ),