Conversation
Contributor
There was a problem hiding this comment.
Pull request overview
Adds a new Home Assistant integration (novy_cooker_hood) to control Novy cooker hood lighting via the existing radio_frequency platform (select transmitter + hood code in config flow, then toggle via RF commands).
Changes:
- Introduces the
novy_cooker_hoodintegration (config flow, base entity, and light platform usingrf_protocolscodes sent throughradio_frequency). - Adds translations/strings and quality scale metadata for the new integration.
- Adds a full test suite covering config flow behavior and light state/restore behavior, plus generated-registry updates.
Reviewed changes
Copilot reviewed 13 out of 15 changed files in this pull request and generated 1 comment.
Show a summary per file
| File | Description |
|---|---|
homeassistant/components/novy_cooker_hood/__init__.py |
Sets up/unloads the integration and forwards the light platform. |
homeassistant/components/novy_cooker_hood/config_flow.py |
Implements transmitter+code selection and a “test then confirm” flow. |
homeassistant/components/novy_cooker_hood/const.py |
Defines integration constants (code range, defaults, config keys). |
homeassistant/components/novy_cooker_hood/entity.py |
Base entity wiring: device info + availability tracking tied to the transmitter entity. |
homeassistant/components/novy_cooker_hood/light.py |
Light entity that toggles the hood light via RF command(s). |
homeassistant/components/novy_cooker_hood/manifest.json |
Declares integration metadata and dependency on radio_frequency. |
homeassistant/components/novy_cooker_hood/quality_scale.yaml |
Declares quality scale status for the new integration. |
homeassistant/components/novy_cooker_hood/strings.json |
Adds UI strings for config flow and entity naming. |
tests/components/novy_cooker_hood/__init__.py |
Test package marker. |
tests/components/novy_cooker_hood/conftest.py |
Common fixtures (mock RF codes + config entry + setup). |
tests/components/novy_cooker_hood/test_config_flow.py |
Tests config flow paths: success, retry, failures, and aborts. |
tests/components/novy_cooker_hood/test_light.py |
Tests light toggling behavior and restore-state behavior. |
homeassistant/generated/integrations.json |
Registers the new integration in generated metadata. |
homeassistant/generated/config_flows.py |
Registers the new config flow in generated metadata. |
CODEOWNERS |
Adds code ownership entries for the new integration and tests. |
This was referenced Apr 26, 2026
6f371be to
f00de2c
Compare
21 tasks
joostlek
reviewed
Apr 28, 2026
Comment on lines
+44
to
+48
| _attr_assumed_state = True | ||
| _attr_color_mode = ColorMode.ONOFF | ||
| _attr_supported_color_modes = {ColorMode.ONOFF} | ||
| _attr_translation_key = "light" | ||
| _attr_should_poll = False |
Member
There was a problem hiding this comment.
Assumed state and could poll are base entities I think
Comment on lines
+29
to
+36
| @pytest.fixture(autouse=True) | ||
| def mock_toggle_sleep() -> AsyncMock: | ||
| """Skip the toggle gap during the test step.""" | ||
| with patch( | ||
| "homeassistant.components.novy_cooker_hood.config_flow.asyncio.sleep", | ||
| AsyncMock(), | ||
| ) as mocked: | ||
| yield mocked |
Member
There was a problem hiding this comment.
Can we instead patch that the delay is 0?
balloob
approved these changes
Apr 28, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to subscribe to this conversation on GitHub.
Already have an account?
Sign in.
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Proposed change
Adds a
novy_cooker_hoodintegration that controls the light on Novy cooker hoods using theradio_frequencyplatform.I named the integration Novy Cooker Hood instead of Novy because Novy also have other products (lights, hobs).
During the config flow, the user has to pick an RF transmitter (Broadlink, ESPHome, etc.) and the code their hood is paired with (1-10). Factory code is 1 so it will be 1 for 95% of users.
The config flow then test the hood light. Then it display a
Finish/Retrychoice so the user can confirm the code is right before the entry is saved.Only the
lightplatform is included for now. The same RF code is used for on and off.A PR to add
fanplatform for the extractor will come after this one (#169380)Tested with a Broadlink RM4 Pro and my Novy hood on all codes (1 to 10).
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: