Add flow it integration#175076
Conversation
There was a problem hiding this comment.
Pull request overview
This PR introduces a brand-new Home Assistant integration, Flow-it, for controlling VMC ventilation units from the FLOW-IT company. As stated in the description, it intentionally ships only the fan platform plus the setup/config-flow scaffolding, with other platforms to follow in later PRs. The integration wraps the third-party flow-it-api library, supports user/zeroconf/YAML-import configuration, and combines a 30-second polling coordinator with a websocket push channel.
Changes:
- Adds the
flow_itintegration (__init__.py,config_flow.py,entity.py,fan.py,const.py,manifest.json,strings.json,quality_scale.yaml) plus config-flow tests and generated/registry updates (zeroconf, integrations.json, config_flows, CODEOWNERS, requirements, mypy, strict-typing, codespell ignore). - Several unrelated files were committed by mistake and must be removed (
index.html,index.html.1,=3.8.1,test_out.txt,test_out2.txt, and.github/workflows/manual-build-armv7.yml). - A few integration-level concerns: YAML import for a new integration,
UpdateFailedraised during setup instead ofConfigEntryNotReady, reliance on private library internals, an inline coordinator, a shared base unique ID, and leftoverswitch/reauthstrings.
Reviewed changes
Copilot reviewed 21 out of 27 changed files in this pull request and generated 13 comments.
Show a summary per file
| File | Description |
|---|---|
homeassistant/components/flow_it/__init__.py |
Integration setup; flagged YAML import, UpdateFailed misuse, private websocket/state access, inline coordinator |
homeassistant/components/flow_it/config_flow.py |
User/import/zeroconf flow; private _state access and manual already-configured check |
homeassistant/components/flow_it/entity.py |
Base entity; shared unique ID across entities |
homeassistant/components/flow_it/fan.py |
Fan platform; minor redundant bool() |
homeassistant/components/flow_it/strings.json |
Strings; unused switch and reauth_successful entries |
homeassistant/components/flow_it/{const,manifest,quality_scale}.{py,json,yaml} |
Constants, manifest (beta dep), quality scale |
tests/components/flow_it/* |
Config-flow tests; helper missing type annotations |
| Generated/registry files | zeroconf, integrations.json, config_flows, CODEOWNERS, requirements_all, mypy.ini, .strict-typing, .pre-commit-config |
.github/workflows/manual-build-armv7.yml, index.html, index.html.1, =3.8.1, test_out.txt, test_out2.txt |
Unrelated/stray files committed by mistake — remove |
9a0b4c1 to
5e4e2ce
Compare
erwindouna
left a comment
There was a problem hiding this comment.
Thanks for contributing, @albertogeniola! Here's an initial review. :)
|
Please take a look at the requested changes, and use the Ready for review button when you are done, thanks 👍 |
Co-authored-by: Erwin Douna <e.douna@gmail.com>
Co-authored-by: Erwin Douna <e.douna@gmail.com>
Co-authored-by: Erwin Douna <e.douna@gmail.com>
Co-authored-by: Erwin Douna <e.douna@gmail.com>
| self._attr_device_info = DeviceInfo( | ||
| identifiers={(DOMAIN, coordinator.data.state.name)}, | ||
| name=coordinator.data.state.name, | ||
| manufacturer="FLOW-IT", | ||
| model="VMC", | ||
| sw_version=coordinator.data.state.data.alert.version, | ||
| ) |
Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
|
Hi @erwindouna , |
| info = await vmc.get_info() | ||
| await vmc.refresh_state() | ||
| if TYPE_CHECKING: | ||
| assert vmc.state is not None | ||
| return { | ||
| "title": info.hostname, | ||
| "unique_id": vmc.state.name, | ||
| } |
| """Config flow for Flow-it integration.""" | ||
|
|
||
| import logging | ||
| from typing import TYPE_CHECKING, Any, override |
| { | ||
| "config": { | ||
| "abort": { | ||
| "already_configured": "[%key:common::config_flow::abort::already_configured_device%]" | ||
| }, |
| def __init__( | ||
| self, | ||
| hass: HomeAssistant, | ||
| config_entry: ConfigEntry, | ||
| vmc: FlowItVMCMachine, | ||
| ) -> None: |
Proposed change
Add a new integration named FLOW-IT, for controlling VMC produced by the FLOW-IT company.
This is the first PR for this integration. As per perfect PR recommendations, I've only included a single PLATFORM (fan), on top of the necessary setup and config logic. As soon as this PR is merged, I'll add other platforms (sensor, binary_sensor, switch).
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: