-
-
Notifications
You must be signed in to change notification settings - Fork 34.2k
Add quality scale for LCN #147367
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
Add quality scale for LCN #147367
Conversation
bca3baf
to
b742667
Compare
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.
We can set the integration to bronze in the manifest already
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.
Reviewed up to Silver for now.
Please take a look at the requested changes, and use the Ready for review button when you are done, thanks 👍 |
Co-authored-by: Abílio Costa <[email protected]>
comment: | | ||
Since all entities are configured manually, names are user-defined. | ||
exception-translations: done | ||
icon-translations: 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.
this rule is about entity icons, but the integration has not defined entity icons, right?
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.
You are right, currently the icons.json
only covers services. I've put it back on todo.
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.
Thanks @alengwenus
By the way, regarding |
Ok, I will do this on my way to silver. 😄 Thanks a lot for your work on the review! |
Co-authored-by: Abílio Costa <[email protected]>
Proposed change
Add quality scale for LCN (target quality scale: bronze)
Bronze
action-setup
- Service actions are registered in async_setupcore/homeassistant/components/lcn/__init__.py
Line 70 in a11e274
appropriate-polling
- If it's a polling integration, set an appropriate polling intervalIntegration is classified as "Local Push".
brands
- Has branding assets available for the integrationhttps://github.com/home-assistant/brands/tree/master/core_integrations/lcn
common-modules
- Place common patterns in common moduleshttps://github.com/home-assistant/core/blob/dev/homeassistant/components/lcn/entity.py
config-flow-test-coverage
- Full test coverage for the config flowhttps://github.com/home-assistant/core/blob/dev/tests/components/lcn/test_config_flow.py
config-flow
- Integration needs to be able to be set up via the UIhttps://github.com/home-assistant/core/blob/dev/homeassistant/components/lcn/config_flow.py
data_description
to give context to fieldshttps://github.com/home-assistant/core/blob/dev/homeassistant/components/lcn/strings.json
ConfigEntry.data
andConfigEntry.options
correctlydependency-transparency
- Dependency transparencyhttps://github.com/alengwenus/pypck
https://github.com/alengwenus/lcn-frontend
docs-actions
- The documentation describes the provided service actions that can be usedhttps://www.home-assistant.io/integrations/lcn/#actions
docs-high-level-description
- The documentation includes a high-level description of the integration brand, product, or servicehttps://www.home-assistant.io/integrations/lcn
docs-installation-instructions
- The documentation provides step-by-step installation instructions for the integration, including, if needed, prerequisiteshttps://www.home-assistant.io/integrations/lcn/#configuration
docs-removal-instructions
- The documentation provides removal instructionshttps://www.home-assistant.io/integrations/lcn/#removing-the-integration
entity-event-setup
- Entity events are subscribed in the correct lifecycle methodscore/homeassistant/components/lcn/entity.py
Line 60 in a11e274
entity-unique-id
- Entities have a unique IDcore/homeassistant/components/lcn/entity.py
Line 50 in a11e274
has-entity-name
- Entities use has_entity_name = Truecore/homeassistant/components/lcn/entity.py
Line 26 in a11e274
runtime-data
- Use ConfigEntry.runtime_data to store runtime datacore/homeassistant/components/lcn/__init__.py
Line 111 in a11e274
test-before-configure
- Test a connection in the config flowcore/homeassistant/components/lcn/config_flow.py
Line 114 in a11e274
test-before-setup
- Check during integration initialization if we are able to set it up correctlycore/homeassistant/components/lcn/__init__.py
Line 97 in a11e274
unique-config-entry
- Don't allow the same device or service to be able to be set up twicecore/homeassistant/components/lcn/config_flow.py
Line 107 in a11e274
Silver
action-exceptions
- Service actions raise exceptions when encountering failuresconfig-entry-unloading
- Support config entry unloadingcore/homeassistant/components/lcn/__init__.py
Line 216 in a11e274
docs-configuration-parameters
- The documentation describes all integration configuration optionsIntegration does not provide an options flow.
docs-installation-parameters
- The documentation describes all integration installation parametershttps://www.home-assistant.io/integrations/lcn/#configuration
entity-unavailable
- Mark entity unavailable if appropriateintegration-owner
- Has an integration ownerhttps://github.com/home-assistant/core/blob/dev/homeassistant/components/lcn/manifest.json
log-when-unavailable
- If internet/device/service is unavailable, log once when unavailable and once when back connectedcore/homeassistant/components/lcn/__init__.py
Line 240 in a11e274
parallel-updates
- Number of parallel updates is specifiedreauthentication-flow
- Reauthentication needs to be available via the UIIntegration doesn't require any form of authentication.
test-coverage
- Above 95% test coverage for all integration modulesGold
devices
- The integration creates devicescore/homeassistant/components/lcn/entity.py
Line 40 in a11e274
diagnostics
- Implements diagnosticsdiscovery-update-info
- Integration uses discovery info to update network informationdiscovery
- Devices can be discovereddocs-data-update
- The documentation describes how data is updateddocs-examples
- The documentation provides automation examples the user can use.Documentation provides example snippets for all trigger events and actions.
docs-known-limitations
- The documentation describes known limitations of the integration (not to be confused with bugs)docs-supported-devices
- The documentation describes known supported / unsupported devicesdocs-supported-functions
- The documentation describes the supported functionality, including entities, and platformshttps://www.home-assistant.io/integrations/lcn/#supported-device-types
https://www.home-assistant.io/integrations/lcn/#platforms
docs-troubleshooting
- The documentation provides troubleshooting informationdocs-use-cases
- The documentation describes use cases to illustrate how this integration can be useddynamic-devices
- Devices added after integration setupDevice discovery has to be manually triggered in the LCN configuration frontend. Manually adding devices is implemented.
entity-category
- Entities are assigned an appropriate EntityCategoryentity-device-class
- Entities use device classes where possibleentity-disabled-by-default
- Integration disables less popular (or noisy) entitiesEntities are set up deliberately by the user in a special frontend panel. No need to disable them by default.
entity-translations
- Entities have translated namesSince all entities are configured manually, names are user-defined.
exception-translations
- Exception messages are translatablecore/homeassistant/components/lcn/strings.json
Line 416 in a11e274
icon-translations
- Entities implement icon translationshttps://github.com/home-assistant/core/blob/dev/homeassistant/components/lcn/icons.json
reconfiguration-flow
- Integrations should have a reconfigure flowcore/homeassistant/components/lcn/config_flow.py
Line 131 in a11e274
repair-issues
- Repair issues and repair flows are used when user intervention is neededstale-devices
- Stale devices are removedDevice discovery has to be manually triggered in the LCN configuration frontend. Manually removing devices is implemented.
Platinum
async-dependency
- Dependency is asynchttps://github.com/alengwenus/pypck
inject-websession
- The integration dependency supports passing in a websessionIntegration is not making any HTTP requests.
strict-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: