From ab2db5829615bac077857f960516546cf7cc544f Mon Sep 17 00:00:00 2001 From: Franck Nijhof Date: Tue, 12 May 2026 08:12:17 +0000 Subject: [PATCH] Upgrade RDW quality scale to platinum --- homeassistant/components/rdw/manifest.json | 1 + .../components/rdw/quality_scale.yaml | 105 ++++++++++++++++++ homeassistant/components/rdw/strings.json | 3 + script/hassfest/quality_scale.py | 2 - 4 files changed, 109 insertions(+), 2 deletions(-) create mode 100644 homeassistant/components/rdw/quality_scale.yaml diff --git a/homeassistant/components/rdw/manifest.json b/homeassistant/components/rdw/manifest.json index 647b25ada6a5..8c4b326a3f95 100644 --- a/homeassistant/components/rdw/manifest.json +++ b/homeassistant/components/rdw/manifest.json @@ -6,5 +6,6 @@ "documentation": "https://www.home-assistant.io/integrations/rdw", "integration_type": "service", "iot_class": "cloud_polling", + "quality_scale": "platinum", "requirements": ["vehicle==3.0.0"] } diff --git a/homeassistant/components/rdw/quality_scale.yaml b/homeassistant/components/rdw/quality_scale.yaml new file mode 100644 index 000000000000..8f24496626ef --- /dev/null +++ b/homeassistant/components/rdw/quality_scale.yaml @@ -0,0 +1,105 @@ +rules: + # Bronze + action-setup: + status: exempt + comment: | + This integration does not provide additional actions. + appropriate-polling: done + brands: done + common-modules: done + config-flow-test-coverage: done + config-flow: done + dependency-transparency: done + docs-actions: + status: exempt + comment: | + This integration does not provide additional actions. + docs-high-level-description: done + docs-installation-instructions: done + docs-removal-instructions: done + entity-event-setup: + status: exempt + comment: | + Entities of this integration do not explicitly subscribe to events. + 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: + status: exempt + comment: | + This integration does not provide additional actions. + config-entry-unloading: done + docs-configuration-parameters: + status: exempt + comment: | + This integration does not have an options flow. + docs-installation-parameters: done + entity-unavailable: done + integration-owner: done + log-when-unavailable: done + parallel-updates: done + reauthentication-flow: + status: exempt + comment: | + This integration does not require authentication. + test-coverage: done + # Gold + devices: done + diagnostics: done + discovery: + status: exempt + comment: | + This integration cannot be discovered, it connects to a government + service using a license plate number. + discovery-update-info: + status: exempt + comment: | + This integration cannot be discovered, it connects to a government + service using a license plate number. + docs-data-update: done + docs-examples: done + docs-known-limitations: done + docs-supported-devices: + status: exempt + comment: | + This is a service integration, it does not integrate with any devices. + docs-supported-functions: done + docs-troubleshooting: done + docs-use-cases: done + dynamic-devices: + status: exempt + comment: | + This integration has a fixed single device which represents the service. + entity-category: done + entity-device-class: done + entity-disabled-by-default: done + entity-translations: done + exception-translations: done + icon-translations: done + reconfiguration-flow: + status: exempt + comment: | + In the Netherlands, license plates (kentekens) are permanently tied to + the vehicle, not the owner. A plate is assigned to a vehicle at first + registration and stays with it for its entire lifecycle. Because the + license plate is the sole configuration parameter and also serves as the + unique identity of the config entry, there is nothing to reconfigure. + A different plate means a different vehicle and thus a new config entry. + repair-issues: + status: exempt + comment: | + This integration doesn't have any cases where raising an issue is needed. + stale-devices: + status: exempt + comment: | + This integration has a fixed single device which represents the service. + + # Platinum + async-dependency: done + inject-websession: done + strict-typing: done diff --git a/homeassistant/components/rdw/strings.json b/homeassistant/components/rdw/strings.json index 16480fe4e0d8..1077fc663a24 100644 --- a/homeassistant/components/rdw/strings.json +++ b/homeassistant/components/rdw/strings.json @@ -14,6 +14,9 @@ "user": { "data": { "license_plate": "License plate" + }, + "data_description": { + "license_plate": "The license plate (kenteken) of the vehicle, for example 11ZKZ3." } } } diff --git a/script/hassfest/quality_scale.py b/script/hassfest/quality_scale.py index 80b4ce9e5e50..b6538a96c39d 100644 --- a/script/hassfest/quality_scale.py +++ b/script/hassfest/quality_scale.py @@ -782,7 +782,6 @@ INTEGRATIONS_WITHOUT_QUALITY_SCALE_FILE = [ "random", "rapt_ble", "raspyrfm", - "rdw", "recollect_waste", "recorder", "recswitch", @@ -1770,7 +1769,6 @@ INTEGRATIONS_WITHOUT_SCALE = [ "random", "rapt_ble", "raspyrfm", - "rdw", "recollect_waste", "recorder", "recswitch",