Custom Home Assistant integration for MyHeat.net heating controllers.
The integration is configured from the Home Assistant UI. It polls the MyHeat cloud API, creates Home Assistant entities for the selected controller, and can optionally enrich/control supported devices through the controller's local LAN API.
| Platform | What is exposed |
|---|---|
binary_sensor |
Controller data freshness, overall severity, alarm summary, individual alarms, per-environment and per-engineering severity, heater disabled/burner states, and engineering component on/off state. |
climate |
Room and floor temperature environments with current temperature, target temperature, heat/off mode, heating action, and preset modes. |
sensor |
Outdoor/weather temperature, heater flow/return/target temperatures, pressure, modulation, and optional local GSM RSSI/balance diagnostics. |
switch |
Security alarm switch and local heater enable switches when local control is available. |
water_heater |
Non-room temperature environments such as boiler, DHW, and heating circuit temperatures with target temperature and on/off control. |
Entity availability depends on the objects returned by your MyHeat controller.
- Open the repository in HACS and install it.
- Restart Home Assistant.
- Go to Settings -> Devices & services -> Add integration.
- Search for MyHeat.net.
- Open your Home Assistant configuration directory, the one containing
configuration.yaml. - Create
custom_componentsif it does not already exist. - Copy this repository's
custom_components/myheatdirectory tocustom_components/myheatin your Home Assistant configuration directory. - Restart Home Assistant.
- Go to Settings -> Devices & services -> Add integration.
- Search for MyHeat.net.
The installed layout should look like this:
custom_components/myheat/translations/*.json
custom_components/myheat/*.py
custom_components/myheat/manifest.json
YAML configuration is not supported. Add and manage the integration from the Home Assistant UI.
During setup, enter:
- MyHeat username.
- API key from
https://my.myheat.netuser preferences. - The controller to add, selected from devices returned by the MyHeat cloud API.
- A Home Assistant display name for the controller.
Only one config entry can be created for the same MyHeat controller.
The integration can use the controller's local web API as a fallback/enrichment source and for supported local write operations. Configure it from the integration's Options flow.
Local API options:
| Option | Default | Notes |
|---|---|---|
| Enable local API | disabled | Turns on LAN polling and local writes where supported. |
| Host | none | Controller LAN hostname or IP address. |
| Protocol | http |
http or https. |
| Username/password | none | Credentials accepted by the controller local UI. |
| Request timeout | 15 seconds |
Valid range: 1-60 seconds. |
| Local poll interval | 10 seconds |
Valid range: 5-300 seconds. |
Cloud polling runs every 30 seconds. When local API is enabled, the coordinator polls at the shorter of the cloud interval and configured local interval, while the hybrid client separately caches cloud and local data according to their respective intervals.
Supported local writes are used automatically when the local API is configured and the requested object is available locally. Otherwise the integration falls back to the cloud API where that operation is supported.
The integration registers these services under the myheat domain:
| Service | Purpose |
|---|---|
myheat.get_devices |
Return controllers available for the configured MyHeat account. |
myheat.get_device_info |
Return current state for the target controller. |
myheat.set_env_goal |
Set or clear an environment target temperature. |
myheat.set_env_curve |
Set an environment to use a heating curve. |
myheat.set_eng_goal |
Set an engineering component goal/mode. |
myheat.set_heater_enabled |
Enable or disable a heater through the local API. |
myheat.set_heating_mode |
Select a heating mode or schedule. |
myheat.set_security_mode |
Arm or disarm security mode. |
myheat.refresh |
Force a data coordinator refresh. |
Most services target a MyHeat entity. Some accept alt_device_id when you need
to call the cloud API for a different MyHeat device ID than the configured
controller.
This repository contains tests for the cloud API client, local API client, config flow, setup, and entity platforms.
uv run pytestThe integration metadata currently targets Home Assistant 2026.5.0 or newer
for HACS installs.
Contributions are welcome. Please read the contribution guidelines before opening a pull request.
This project was originally generated from @oncleben31's Home Assistant Custom Component Cookiecutter template.
The initial code template was mainly taken from @Ludeeus's integration_blueprint template.