diff --git a/homeassistant/components/vizio/manifest.json b/homeassistant/components/vizio/manifest.json index ef908182efc0..852d7ce22066 100644 --- a/homeassistant/components/vizio/manifest.json +++ b/homeassistant/components/vizio/manifest.json @@ -7,6 +7,7 @@ "integration_type": "device", "iot_class": "local_polling", "loggers": ["vizaio"], + "quality_scale": "platinum", "requirements": ["vizaio==0.7.0"], "zeroconf": ["_viziocast._tcp.local."] } diff --git a/homeassistant/components/vizio/quality_scale.yaml b/homeassistant/components/vizio/quality_scale.yaml new file mode 100644 index 000000000000..80abd81be323 --- /dev/null +++ b/homeassistant/components/vizio/quality_scale.yaml @@ -0,0 +1,88 @@ +rules: + # Bronze + action-setup: + status: done + comment: | + The update_setting and send_text entity actions are registered from + async_setup in services.py, independent of config entry setup. + appropriate-polling: done + brands: done + common-modules: done + config-flow-test-coverage: done + config-flow: done + dependency-transparency: done + docs-actions: done + docs-conditions: + status: exempt + comment: This integration does not provide any conditions. + docs-high-level-description: done + docs-installation-instructions: done + docs-removal-instructions: done + docs-triggers: + status: exempt + comment: This integration does not provide any triggers. + entity-event-setup: done + 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: done + reauthentication-flow: done + test-coverage: done + + # Gold + devices: done + diagnostics: done + discovery-update-info: done + discovery: done + docs-data-update: done + docs-examples: done + docs-known-limitations: done + docs-supported-devices: done + docs-supported-functions: done + docs-troubleshooting: done + docs-use-cases: done + dynamic-devices: + status: exempt + comment: | + A config entry represents a single SmartCast device, so there are no + additional devices that can be discovered after setup. + entity-category: done + entity-device-class: done + entity-disabled-by-default: + status: exempt + comment: | + The integration only creates a media player, a remote and, for + battery-powered devices, two diagnostic battery entities. All of them are + useful by default and none are noisy enough to warrant being disabled. + entity-translations: done + exception-translations: done + icon-translations: done + reconfiguration-flow: done + repair-issues: + status: exempt + comment: | + There are no user-repairable conditions. An unreachable or unauthenticated + device is surfaced through entity availability and the reauthentication + flow instead. + stale-devices: + status: exempt + comment: | + A config entry represents a single SmartCast device, so the device is + removed together with the config entry. + + # Platinum + async-dependency: done + inject-websession: done + strict-typing: done diff --git a/script/hassfest/quality_scale.py b/script/hassfest/quality_scale.py index 9fde3bf51bb3..ece0ac1c0fd9 100644 --- a/script/hassfest/quality_scale.py +++ b/script/hassfest/quality_scale.py @@ -953,7 +953,6 @@ INTEGRATIONS_WITHOUT_QUALITY_SCALE_FILE = [ "viaggiatreno", "vilfo", "vivotek", - "vizio", "vlc_telnet", "voicerss", "voip", @@ -1911,7 +1910,6 @@ INTEGRATIONS_WITHOUT_SCALE = [ "viaggiatreno", "vilfo", "vivotek", - "vizio", "vlc_telnet", "voicerss", "voip",