Bring nobo_hub to Bronze quality scale#168638
Conversation
|
Hey there @echoromeo, mind taking a look at this pull request as it has been labeled with an integration ( Code owner commandsCode owners of
|
There was a problem hiding this comment.
Pull request overview
This PR brings the nobo_hub integration up to Bronze quality scale requirements by adding quality scale metadata, improving entity structure, and tightening test fixtures.
Changes:
- Add
quality_scale.yamland set"quality_scale": "bronze"in the integration manifest; update hassfest lists accordingly. - Introduce
NoboBaseEntityand refactorclimate,select, andsensorplatforms to inherit shared hub callback wiring. - Improve UX/test robustness by adding
data_descriptionstrings and ensuring test config entries haveruntime_datapopulated.
Reviewed changes
Copilot reviewed 9 out of 9 changed files in this pull request and generated 1 comment.
Show a summary per file
| File | Description |
|---|---|
| tests/components/nobo_hub/conftest.py | Ensures mocked setup populates entry.runtime_data to support real unload behavior. |
| script/hassfest/quality_scale.py | Removes nobo_hub from “without quality scale file/scale” exception lists. |
| homeassistant/components/nobo_hub/strings.json | Adds data_description for config/options flow fields. |
| homeassistant/components/nobo_hub/sensor.py | Moves temperature sensor to NoboBaseEntity for shared callback handling. |
| homeassistant/components/nobo_hub/select.py | Moves select entities to NoboBaseEntity for shared callback handling. |
| homeassistant/components/nobo_hub/quality_scale.yaml | Adds integration quality scale rule tracking file. |
| homeassistant/components/nobo_hub/manifest.json | Declares integration quality scale as Bronze. |
| homeassistant/components/nobo_hub/entity.py | Adds shared base entity implementing hub callback registration/deregistration. |
| homeassistant/components/nobo_hub/climate.py | Moves climate entity to NoboBaseEntity for shared callback handling. |
joostlek
left a comment
There was a problem hiding this comment.
I genuinely love these changes, but can we split this PR with the changes into several smaller ones and then 1 PR for the quality scale file? We could also merge a quality scale file with comments, which can be fixed afterwards
|
Please take a look at the requested changes, and use the Ready for review button when you are done, thanks 👍 |
Of course:
I'll rebase this PR onto dev as soon as those are merged. |
- Add NoboBaseEntity to deduplicate the hub-callback wiring across climate, sensor, and select. - Add the quality_scale.yaml tracker and declare "bronze" in the manifest. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
870d22e to
4710737
Compare
| test-coverage: done | ||
|
|
||
| # Gold | ||
| devices: done |
There was a problem hiding this comment.
why is nobo ecohub the model, nobo sounds like the manufacturer
There was a problem hiding this comment.
Manufacturer is Glen Dimplex Nordic AS. Nobø is just a brand.
The device is sometimes called "Nobø Hub", and other times "Nobø ECO hub", I guess in case there would be another hub in the Nobø brand (no other have been made though). When connecting, by default it identifies itself with the name "My Eco Hub".
Official product page uses "Nobø Hub" - I'm happy to rename!
| @@ -0,0 +1,72 @@ | |||
| rules: | |||
There was a problem hiding this comment.
_attr_target_temperature_step = 1 could use STEP_WHOLE, just a nit
There was a problem hiding this comment.
Did you mean PRECISION_WHOLE or as a local constant?
| @@ -0,0 +1,72 @@ | |||
| rules: | |||
There was a problem hiding this comment.
It would be cool if we can look into more typing
There was a problem hiding this comment.
In the works - waiting for final review on the upstream library: echoromeo/pynobo#43
| @@ -0,0 +1,72 @@ | |||
| rules: | |||
There was a problem hiding this comment.
Why is the HVAC mode linked hard to the preset mode?
There was a problem hiding this comment.
It's explained in the documentation: https://www.home-assistant.io/integrations/nobo_hub/
The zones (normally rooms) operate either on a weekly schedule (auto) or in override mode. 3 different overrides are supported: normal heating, eco heating, away (non-freeze). The overrides are implemented as presets.
| @@ -0,0 +1,72 @@ | |||
| rules: | |||
There was a problem hiding this comment.
Do you have some context for whats overwritten?
There was a problem hiding this comment.
Global override, I am not sure what that does from the docs
There was a problem hiding this comment.
It overrides current mode for all zones. We could add a link to the mobile app manual if it helps:
https://gldi-azure.unco.no/en/user-manual/menus-and-functions/overrides/simple-global-overrides/
| appropriate-polling: done | ||
| brands: done | ||
| common-modules: done | ||
| config-flow-test-coverage: done |
There was a problem hiding this comment.
Please make sure all tests end in CREATE_ENTRY or ABORT
There was a problem hiding this comment.
Fixed in PR #170141 (also updated new tests in other open PRs)
- Flipped async_dependency
Proposed change
Context: this is the last of 6 PRs to bring
nobo_hubto Bronze quality scale.This PR adds the quality scale to
nobo_huband initializes it to bronze.Silver, Gold, and Platinum work will follow in subsequent PRs.
Type 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: