From 460ce2463d1fe6bc5d1ba037542379d854cf0f7a Mon Sep 17 00:00:00 2001 From: Allen Porter Date: Sat, 23 Nov 2024 08:23:37 -0800 Subject: [PATCH] Add quality scale for rainbird (#131332) --- .../components/rainbird/quality_scale.yaml | 85 +++++++++++++++++++ script/hassfest/quality_scale.py | 1 - 2 files changed, 85 insertions(+), 1 deletion(-) create mode 100644 homeassistant/components/rainbird/quality_scale.yaml diff --git a/homeassistant/components/rainbird/quality_scale.yaml b/homeassistant/components/rainbird/quality_scale.yaml new file mode 100644 index 00000000000..1626f93a003 --- /dev/null +++ b/homeassistant/components/rainbird/quality_scale.yaml @@ -0,0 +1,85 @@ +rules: + # Bronze + config-flow: + status: todo + comment: Some fields are missing data descriptions. + brands: done + dependency-transparency: done + common-modules: done + has-entity-name: done + action-setup: + status: done + comment: | + The integration only has an entity service, registered in the platform. + appropriate-polling: + status: done + comment: | + Rainbird devices are local. Irrigation valve/controller status is polled + once per minute to get fast updates when turning on/off the valves. + The irrigation schedule uses a 15 minute poll interval since it rarely + changes. + + Rainbird devices can only accept a single http connection, so this uses a + an aiohttp.ClientSession with a connection limit, and also uses a request + debouncer. + test-before-configure: done + entity-event-setup: + status: exempt + comment: Integration is polling and does not subscribe to events. + unique-config-entry: done + entity-unique-id: done + docs-installation-instructions: + status: todo + comment: | + The introduction can be improved and is missing pre-requisites such as + installing the app. + docs-removal-instructions: todo + test-before-setup: done + docs-high-level-description: done + config-flow-test-coverage: done + docs-actions: done + runtime-data: + status: todo + comment: | + The integration currently stores config entry data in `hass.data` and + needs to be moved to `runtime_data`. + + # Silver + log-when-unavailable: todo + config-entry-unloading: todo + reauthentication-flow: todo + action-exceptions: todo + docs-installation-parameters: todo + integration-owner: todo + parallel-updates: todo + test-coverage: 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 + stale-devices: todo + docs-supported-functions: todo + repair-issues: todo + reconfiguration-flow: todo + entity-category: todo + dynamic-devices: todo + docs-troubleshooting: todo + diagnostics: todo + docs-use-cases: todo + + # Platinum + async-dependency: todo + strict-typing: todo + inject-websession: todo diff --git a/script/hassfest/quality_scale.py b/script/hassfest/quality_scale.py index eae2d1f3c6a..f8ceb3a46c0 100644 --- a/script/hassfest/quality_scale.py +++ b/script/hassfest/quality_scale.py @@ -826,7 +826,6 @@ INTEGRATIONS_WITHOUT_QUALITY_SCALE_FILE = [ "radarr", "radio_browser", "radiotherm", - "rainbird", "raincloud", "rainforest_eagle", "rainforest_raven",