Local control of Helty Flow decentralised heat-recovery ventilation units (MVHR / VMC) that have the smart Wi-Fi interface.
The integration talks to the unit directly on your LAN (TCP, default port
5001) through the pyhelty
library — no cloud, local_polling.
Any unit in the Helty Flow line that has the smart Wi-Fi interface speaks the same TCP protocol and is expected to work:
- FlowPLUS
- FlowULTRA
- Flow40
- Flow120
- FlowMANHATTAN
The integration was developed and verified live against a FlowPLUS; the other models share the same Wi-Fi interface and are expected to be compatible. If you run it on a model not listed here, please open an issue with the result.
Units without the smart Wi-Fi module (e.g. RS-485/Modbus-only models) are not supported, as they do not expose this network protocol.
| Entity | Type | Description |
|---|---|---|
| Ventilation | fan |
On/off, four speeds (low → max), and presets (boost, night, free cooling) |
| Indoor temperature | sensor |
Extracted-air temperature |
| Outdoor temperature | sensor |
Intake-air temperature |
| Indoor humidity | sensor |
Relative humidity |
| LED panel | switch |
Front LED panel on/off (config category) |
| Reset filter | button |
Reset the filter-life counter (config category) |
- In HACS, add this repository as a custom repository (category Integration).
- Install Helty Flow and restart Home Assistant.
- Go to Settings → Devices & services → Add integration, search for Helty Flow.
- Enter the unit's host (IP address) and port (default
5001). The connection is tested before the entry is created.
Copy custom_components/helty into your Home Assistant config/custom_components
directory and restart, then add the integration as above.
- Host: IP address or hostname of the unit on your network. A static DHCP lease is recommended.
- Port: TCP port of the smart interface, usually
5001.
If the unit's IP changes, you do not need to remove and re-add it. Open the integration, choose Reconfigure, and enter the new host/port. The integration verifies it is still the same unit before saving.
Entities are refreshed by a single coordinator that polls the unit every 60 seconds. Commands (changing speed, toggling the LED, resetting the filter) request an immediate refresh so the UI updates promptly.
- The protocol is reverse-engineered; there is no official Helty specification.
- The unit exposes no serial number or MAC over the protocol, so the device name is used as its unique identifier. If you rename the unit in the Helty app you will need to re-add it in Home Assistant.
- Only temperature and humidity are exposed today. The
VMGIreply carries additional, not-yet-decoded fields (possible air-quality/VOC values) that may be surfaced in a future release. - The unit occasionally returns an empty reply on rapid/cold connections; the library retries transparently.
Remove the integration from Settings → Devices & services. No data is left on the unit.
MIT