-
-
Notifications
You must be signed in to change notification settings - Fork 35.8k
Add IQS to the Brother integration #155818
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: dev
Are you sure you want to change the base?
Conversation
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Pull Request Overview
This pull request adds Platinum quality scale certification to the Brother printer integration. The Brother integration has met all the requirements for the Platinum tier of Home Assistant's Integration Quality Scale.
Key Changes:
- Added
"quality_scale": "platinum"to the manifest.json - Created quality_scale.yaml with comprehensive rule status tracking
- Removed "brother" from exemption lists in quality_scale.py validation script
Reviewed Changes
Copilot reviewed 3 out of 3 changed files in this pull request and generated 1 comment.
| File | Description |
|---|---|
| homeassistant/components/brother/manifest.json | Added quality_scale field set to "platinum" |
| homeassistant/components/brother/quality_scale.yaml | New file documenting all quality scale rules with status (done/exempt) and justification comments |
| script/hassfest/quality_scale.py | Removed "brother" from two exemption lists, allowing validation to proceed |
|
|
||
| # Platinum | ||
| async-dependency: done | ||
| inject-websession: done |
Copilot
AI
Nov 4, 2025
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The inject-websession rule is marked as done, but the Brother integration uses SNMP for communication, not HTTP. Since the integration doesn't connect via HTTP, this rule should be marked as exempt with a comment explaining why. Change to:\nyaml\ninject-websession:\n status: exempt\n comment: The integration does not connect via HTTP.\n\nThis pattern follows other non-HTTP integrations like apcupsd which use SNMP or other protocols.
| comment: The integration does not register services. | ||
| docs-high-level-description: done | ||
| docs-installation-instructions: done | ||
| docs-removal-instructions: done |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
| docs-known-limitations: done | ||
| docs-supported-devices: done | ||
| docs-supported-functions: done | ||
| docs-troubleshooting: |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I think a common problem can be not finding devices on the network or invalid host/IP, and then a solution is to look at the zeroconf browser to see what devices are on the network.
| has-entity-name: done | ||
| runtime-data: done | ||
| test-before-configure: done | ||
| test-before-setup: done |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I know that this is not strictly required by the documentation, but I think that we should also check not only the host, password, but also whether the serial number is correct and matches the one saved in config entry.
| docs-supported-devices: done | ||
| docs-supported-functions: done | ||
| docs-troubleshooting: | ||
| status: exempt |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Another issue is the password. The user can change the password on the device and then need to update the configuration. The documentation should describe how to do this.
In general, for each type of exception you can write a few words - ConnectionError, SnmpError, UnsupportedModelError.
| except (ConnectionError, SnmpError, TimeoutError) as error: |
|
|
||
| # Gold | ||
| devices: done | ||
| diagnostics: done |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
What do you think about adding config_entry to diagnostic information? It is already covered by example implemtnation in documentation: https://developers.home-assistant.io/docs/core/integration-quality-scale/rules/diagnostics/
Breaking change
Proposed change
Bronze
action-setup- The integration does not register services.appropriate-pollingbrandscommon-modulesconfig-flow-test-coverageconfig-flowdata_descriptionto give context to fieldsConfigEntry.dataandConfigEntry.optionscorrectlydependency-transparencydocs-actions- The integration does not register services.docs-high-level-descriptiondocs-installation-instructionsdocs-removal-instructionsentity-event-setupentity-unique-idhas-entity-nameruntime-datatest-before-configuretest-before-setupunique-config-entrySilver
action-exceptionsThe integration does not register services.config-entry-unloadingdocs-configuration-parametersNo options to configure.docs-installation-parametersentity-unavailableintegration-ownerlog-when-unavailableparallel-updatesreauthentication-flowSNMP doesn't return error identifying an authentication problem, to change the SNMP community (simple password) the user should use reconfigure flow.test-coverageGold
devicesdiagnosticsdiscovery-update-infodiscoverydocs-data-updatedocs-examplesdocs-known-limitationsdocs-supported-devicesdocs-supported-functionsdocs-troubleshootingNo known issues that could be resolved by the user.docs-use-casesdynamic-devicesThis integration has a fixed single device.entity-categoryentity-device-classentity-disabled-by-defaultentity-translationsexception-translationsicon-translationsreconfiguration-flowrepair-issuesThis integration doesn't have any cases where raising an issue is needed.stale-devicesThis integration has a fixed single device.Platinum
async-dependency- Dependency is asyncinject-websession- The integration dependency supports passing in a websessionstrict-typing- Strict typingType of change
Additional information
Checklist
ruff format homeassistant tests)If user exposed functionality or configuration variables are added/changed:
If the code communicates with devices, web services, or third-party tools:
Updated and included derived files by running:
python3 -m script.hassfest.requirements_all.txt.Updated by running
python3 -m script.gen_requirements_all.To help with the load of incoming pull requests: