Skip to content

Bring nobo_hub to Bronze quality scale#168638

Merged
joostlek merged 18 commits into
home-assistant:devfrom
oyvindwe:nobo_hub-quality-scale-bronze
May 13, 2026
Merged

Bring nobo_hub to Bronze quality scale#168638
joostlek merged 18 commits into
home-assistant:devfrom
oyvindwe:nobo_hub-quality-scale-bronze

Conversation

@oyvindwe
Copy link
Copy Markdown
Contributor

@oyvindwe oyvindwe commented Apr 20, 2026

Proposed change

Context: this is the last of 6 PRs to bring nobo_hub to Bronze quality scale.

This PR adds the quality scale to nobo_hub and initializes it to bronze.

Silver, Gold, and Platinum work will follow in subsequent PRs.

Type of change

  • Dependency upgrade
  • Bugfix (non-breaking change which fixes an issue)
  • New integration (thank you!)
  • New feature (which adds functionality to an existing integration)
  • Deprecation (breaking change to happen in the future)
  • Breaking change (fix/feature causing existing functionality to break)
  • Code quality improvements to existing code or addition of tests

Additional information

  • This PR fixes or closes issue: fixes #
  • This PR is related to issue:
  • Link to documentation pull request:
  • Link to developer documentation pull request:
  • Link to frontend pull request:

Checklist

  • I understand the code I am submitting and can explain how it works.
  • The code change is tested and works locally.
  • Local tests pass. Your PR cannot be merged unless tests pass
  • There is no commented out code in this PR.
  • I have followed the development checklist
  • I have followed the perfect PR recommendations
  • The code has been formatted using Ruff (ruff format homeassistant tests)
  • Tests have been added to verify that the new code works.
  • Any generated code has been carefully reviewed for correctness and compliance with project standards.

If user exposed functionality or configuration variables are added/changed:

If the code communicates with devices, web services, or third-party tools:

  • The manifest file has all fields filled out correctly.
    Updated and included derived files by running: python3 -m script.hassfest.
  • New or updated dependencies have been added to requirements_all.txt.
    Updated by running python3 -m script.gen_requirements_all.
  • For the updated dependencies a diff between library versions and ideally a link to the changelog/release notes is added to the PR description.

To help with the load of incoming pull requests:

@home-assistant
Copy link
Copy Markdown
Contributor

Hey there @echoromeo, mind taking a look at this pull request as it has been labeled with an integration (nobo_hub) you are listed as a code owner for? Thanks!

Code owner commands

Code owners of nobo_hub can trigger bot actions by commenting:

  • @home-assistant close Closes the pull request.
  • @home-assistant mark-draft Mark the pull request as draft.
  • @home-assistant ready-for-review Remove the draft status from the pull request.
  • @home-assistant rename Awesome new title Renames the pull request.
  • @home-assistant reopen Reopen the pull request.
  • @home-assistant unassign nobo_hub Removes the current integration label and assignees on the pull request, add the integration domain after the command.
  • @home-assistant update-branch Update the pull request branch with the base branch.
  • @home-assistant add-label needs-more-information Add a label (needs-more-information, problem in dependency, problem in custom component, problem in config, problem in device, feature-request) to the pull request.
  • @home-assistant remove-label needs-more-information Remove a label (needs-more-information, problem in dependency, problem in custom component, problem in config, problem in device, feature-request) on the pull request.

Copy link
Copy Markdown
Contributor

Copilot AI left a 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 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.yaml and set "quality_scale": "bronze" in the integration manifest; update hassfest lists accordingly.
  • Introduce NoboBaseEntity and refactor climate, select, and sensor platforms to inherit shared hub callback wiring.
  • Improve UX/test robustness by adding data_description strings and ensuring test config entries have runtime_data populated.

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.

Comment thread homeassistant/components/nobo_hub/entity.py Outdated
Copilot AI review requested due to automatic review settings April 20, 2026 18:37
Copy link
Copy Markdown
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Copilot reviewed 10 out of 10 changed files in this pull request and generated 2 comments.

Comment thread tests/components/nobo_hub/test_init.py Outdated
Comment thread tests/components/nobo_hub/conftest.py Outdated
Copy link
Copy Markdown
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Copilot reviewed 10 out of 10 changed files in this pull request and generated no new comments.

Copy link
Copy Markdown
Member

@joostlek joostlek left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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

@home-assistant home-assistant Bot marked this pull request as draft April 21, 2026 15:04
@home-assistant
Copy link
Copy Markdown
Contributor

Please take a look at the requested changes, and use the Ready for review button when you are done, thanks 👍

Learn more about our pull request process.

@oyvindwe
Copy link
Copy Markdown
Contributor Author

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

Of course:

I'll rebase this PR onto dev as soon as those are merged.

oyvindwe and others added 3 commits April 22, 2026 00:03
- 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>
@oyvindwe oyvindwe force-pushed the nobo_hub-quality-scale-bronze branch from 870d22e to 4710737 Compare April 21, 2026 22:07
Copilot AI review requested due to automatic review settings April 21, 2026 22:09
Copy link
Copy Markdown
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Copilot reviewed 3 out of 3 changed files in this pull request and generated no new comments.

Copilot AI review requested due to automatic review settings May 8, 2026 11:16
Comment thread homeassistant/components/nobo_hub/quality_scale.yaml Outdated
Copy link
Copy Markdown
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Copilot reviewed 3 out of 3 changed files in this pull request and generated no new comments.

test-coverage: done

# Gold
devices: done
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

why is nobo ecohub the model, nobo sounds like the manufacturer

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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:
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

_attr_target_temperature_step = 1 could use STEP_WHOLE, just a nit

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Did you mean PRECISION_WHOLE or as a local constant?

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

yes, precision

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Done in this PR

@@ -0,0 +1,72 @@
rules:
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It would be cool if we can look into more typing

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

In the works - waiting for final review on the upstream library: echoromeo/pynobo#43

Comment thread homeassistant/components/nobo_hub/quality_scale.yaml Outdated
@@ -0,0 +1,72 @@
rules:
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Why is the HVAC mode linked hard to the preset mode?

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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:
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

What's the overwrite part for?

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Do you have some context for whats overwritten?

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Global override, I am not sure what that does from the docs

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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/

Comment thread homeassistant/components/nobo_hub/quality_scale.yaml
Comment thread homeassistant/components/nobo_hub/quality_scale.yaml
appropriate-polling: done
brands: done
common-modules: done
config-flow-test-coverage: done
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Please make sure all tests end in CREATE_ENTRY or ABORT

Copy link
Copy Markdown
Contributor Author

@oyvindwe oyvindwe May 8, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Fixed in PR #170141 (also updated new tests in other open PRs)

Comment thread homeassistant/components/nobo_hub/quality_scale.yaml Outdated
- Flipped async_dependency
Copilot AI review requested due to automatic review settings May 8, 2026 17:20
Copy link
Copy Markdown
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Copilot reviewed 3 out of 3 changed files in this pull request and generated no new comments.

@oyvindwe oyvindwe marked this pull request as ready for review May 8, 2026 19:09
Copilot AI review requested due to automatic review settings May 8, 2026 19:09
@home-assistant home-assistant Bot requested a review from joostlek May 8, 2026 19:09
Copy link
Copy Markdown
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Copilot encountered an error and was unable to review this pull request. You can try again by re-requesting a review.

@joostlek joostlek merged commit ff971ce into home-assistant:dev May 13, 2026
33 checks passed
@oyvindwe oyvindwe deleted the nobo_hub-quality-scale-bronze branch May 14, 2026 06:29
@github-actions github-actions Bot locked and limited conversation to collaborators May 15, 2026
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants