From 074575108cf01fa2c5b14719d7fdea2aef0ee039 Mon Sep 17 00:00:00 2001 From: John Pettitt Date: Wed, 16 Sep 2026 07:54:24 -0700 Subject: [PATCH] Declare Subaru integration at bronze quality scale (#178638) --- homeassistant/components/subaru/manifest.json | 1 + .../components/subaru/quality_scale.yaml | 72 +++++++++++++++++++ homeassistant/components/subaru/strings.json | 17 +++++ script/hassfest/quality_scale.py | 2 - 4 files changed, 90 insertions(+), 2 deletions(-) create mode 100644 homeassistant/components/subaru/quality_scale.yaml diff --git a/homeassistant/components/subaru/manifest.json b/homeassistant/components/subaru/manifest.json index a7f384d602f4..775d492165c9 100644 --- a/homeassistant/components/subaru/manifest.json +++ b/homeassistant/components/subaru/manifest.json @@ -7,5 +7,6 @@ "integration_type": "hub", "iot_class": "cloud_polling", "loggers": ["stdiomask", "subarulink"], + "quality_scale": "bronze", "requirements": ["subarulink==0.7.19"] } diff --git a/homeassistant/components/subaru/quality_scale.yaml b/homeassistant/components/subaru/quality_scale.yaml new file mode 100644 index 000000000000..df716f68a762 --- /dev/null +++ b/homeassistant/components/subaru/quality_scale.yaml @@ -0,0 +1,72 @@ +rules: + # Bronze + action-setup: done + appropriate-polling: done + brands: done + common-modules: done + config-flow: done + config-flow-test-coverage: done + dependency-transparency: done + docs-actions: done + docs-conditions: + status: exempt + comment: This integration does not have any conditions. + docs-high-level-description: done + docs-installation-instructions: done + docs-removal-instructions: done + docs-triggers: + status: exempt + comment: This integration does not have any triggers. + entity-event-setup: + status: exempt + comment: This integration does not subscribe to events; state comes from the polling coordinator. + entity-unique-id: done + has-entity-name: done + runtime-data: done + test-before-configure: done + test-before-setup: done + unique-config-entry: done + + # Silver + action-exceptions: done + config-entry-unloading: done + docs-configuration-parameters: done + docs-installation-parameters: done + entity-unavailable: done + integration-owner: done + log-when-unavailable: done + parallel-updates: todo + reauthentication-flow: todo + test-coverage: todo + + # Gold + devices: done + diagnostics: done + discovery: + status: exempt + comment: Cloud account integration; there is nothing on the local network to discover. + discovery-update-info: + status: exempt + comment: Cloud account integration; there is nothing on the local network to discover. + docs-data-update: done + docs-examples: todo + docs-known-limitations: done + docs-supported-devices: done + docs-supported-functions: done + docs-troubleshooting: done + docs-use-cases: todo + dynamic-devices: todo + entity-category: done + entity-device-class: done + entity-disabled-by-default: done + entity-translations: done + exception-translations: todo + icon-translations: done + reconfiguration-flow: todo + repair-issues: todo + stale-devices: todo + + # Platinum + async-dependency: done + inject-websession: done + strict-typing: todo diff --git a/homeassistant/components/subaru/strings.json b/homeassistant/components/subaru/strings.json index fdf4ff4dc54c..d098a2b31698 100644 --- a/homeassistant/components/subaru/strings.json +++ b/homeassistant/components/subaru/strings.json @@ -18,6 +18,9 @@ "data": { "pin": "[%key:common::config_flow::data::pin%]" }, + "data_description": { + "pin": "The 4-digit PIN used for remote commands, shared by all vehicles on your MySubaru account." + }, "description": "Please enter your MySubaru PIN\nNOTE: All vehicles in account must have the same PIN", "title": "[%key:component::subaru::config::step::user::title%]" }, @@ -25,6 +28,9 @@ "data": { "contact_method": "Please select a contact method:" }, + "data_description": { + "contact_method": "Where Subaru should send your two-factor authentication code." + }, "description": "Two-factor authentication required", "title": "[%key:component::subaru::config::step::user::title%]" }, @@ -32,6 +38,9 @@ "data": { "validation_code": "Validation code" }, + "data_description": { + "validation_code": "The 6-digit code sent to your selected contact method." + }, "description": "Please enter validation code received", "title": "[%key:component::subaru::config::step::user::title%]" }, @@ -41,6 +50,11 @@ "password": "[%key:common::config_flow::data::password%]", "username": "[%key:common::config_flow::data::username%]" }, + "data_description": { + "country": "The country where your MySubaru account is registered.", + "password": "The password for your MySubaru account.", + "username": "The email address or username for your MySubaru account." + }, "description": "Please enter your MySubaru credentials\nNOTE: Initial setup may take up to 30 seconds", "title": "MySubaru Connected Services configuration" } @@ -233,6 +247,9 @@ "data": { "update_enabled": "Enable vehicle polling" }, + "data_description": { + "update_enabled": "Sends a remote command to the vehicle every 2 hours to refresh sensor data. Draws power from the 12V battery." + }, "description": "When enabled, vehicle polling will send a remote command to your vehicle every 2 hours to obtain new sensor data. Without vehicle polling, new sensor data is only received when the vehicle automatically pushes data (normally after engine shutdown).", "title": "MySubaru Connected Services options" } diff --git a/script/hassfest/quality_scale.py b/script/hassfest/quality_scale.py index cce45425f70b..055a140f23c5 100644 --- a/script/hassfest/quality_scale.py +++ b/script/hassfest/quality_scale.py @@ -852,7 +852,6 @@ INTEGRATIONS_WITHOUT_QUALITY_SCALE_FILE = [ "steamist", "stream", "streamlabswater", - "subaru", "sun", "sunweg", "supervisord", @@ -1803,7 +1802,6 @@ INTEGRATIONS_WITHOUT_SCALE = [ "stream", "streamlabswater", "stookwijzer", - "subaru", "sun", "sunweg", "supervisord",