Home Assistant integration for WarmLink/Zealux heat pumps.
Monitor and control your WarmLink/Zealux heat pump directly from Home Assistant with comprehensive sensor coverage, fault code monitoring, and real-time updates.
✅ 391 Sensors - Complete monitoring of your heat pump ✅ Fault Code Detection - 41 fault codes including critical E035 ✅ Real-time Updates - Automatic updates every 5 minutes ✅ Manual Refresh - On-demand data refresh button ✅ Multi-language - Danish and English support ✅ No Data Gaps - Intelligent caching for continuous graphs ✅ Async Operations - Non-blocking file I/O for performance
- Water inlet/outlet temperatures
- Ambient temperature
- Coil temperatures
- Discharge/suction temperatures
- DHW temperatures
- Zone temperatures
- System pressures
- Water flow rate
- Pump speeds
- Fan speeds
- Heating curves
- Temperature targets
- Operating modes
- Mode settings
- Start/end times
- Temperature targets
- Power limits
- Weekly schedules
- Time slots
- Mode configurations
- Pressure protection (E001, E002, E035, E036)
- Compressor errors (E003, E025, E028, E040, E043)
- Temperature sensors (E005, E006, E015, E016, E020-E024, E029, E031, E032)
- Flow/Pump alarms (E004, E030)
- Electrical protection (E012, E026, E027, E041, E042)
- Communication errors (E011, E038)
- Inverter/Driver errors (E033, E037, E039, E044, E045)
- Smart grid parameters
- Energy management
- Software versions
- Hardware information
- Operating hours
- System status
- Open HACS in Home Assistant
- Click the three dots in the top right corner
- Select "Custom repositories"
- Add this repository URL:
https://github.com/srbjessen/ha-warmlink - Category:
Integration - Click "Add"
- Click "Install" on the WarmLink integration
- Restart Home Assistant
- Download the latest release from Releases
- Extract the files
- Copy the
custom_components/warmlinkfolder to your Home Assistantconfig/custom_components/directory - Restart Home Assistant
- Go to Settings → Devices & Services
- Click + Add Integration
- Search for WarmLink
- Enter your WarmLink credentials:
- Email: Your WarmLink account email
- Password: Your WarmLink account password
- Language:
da(Danish) oren(English)
- Click Submit
After setup, 391 sensors will be created automatically:
sensor.warmlink_water_inlet_temp_t01
sensor.warmlink_water_outlet_temp_t02
sensor.warmlink_ambient_temp_t04
sensor.warmlink_mode_state_modestate
sensor.warmlink_high_pressure_switch_protection_e035
button.warmlink_refresh_data
...and 385 more!
type: entities
title: Varmepumpe Temperaturer
entities:
- entity: sensor.warmlink_water_inlet_temp_t01
name: Indløb
- entity: sensor.warmlink_water_outlet_temp_t02
name: Udløb
- entity: sensor.warmlink_ambient_temp_t04
name: Udetemperaturtype: button
entity: button.warmlink_refresh_data
name: Opdater Nu
icon: mdi:refresh
tap_action:
action: call-service
service: button.press
target:
entity_id: button.warmlink_refresh_dataautomation:
- alias: "Alarm Ved E035 Fejl"
trigger:
- platform: state
entity_id: sensor.warmlink_high_pressure_switch_protection_e035
to: '1'
action:
- service: notify.mobile_app
data:
title: "⚠️ Varmepumpe Alarm!"
message: "E035 Højtrykskontakt beskyttelse aktiveret!"
data:
priority: hightemplate:
- sensor:
- name: "Varmepumpe COP"
unique_id: warmlink_cop
unit_of_measurement: ""
state_class: measurement
device_class: power_factor
state: >
{% set voltage = states('sensor.warmlink_ac_input_voltage_t34') | float(0) %}
{% set current = states('sensor.warmlink_ac_input_current_t35') | float(0) %}
{% set power = (voltage * current * 1.732 / 1000) %}
{% set delta_t = states('sensor.varmepumpe_delta_t') | float(0) %}
{% set flow = states('sensor.warmlink_water_flow_t39') | float(0) %}
{% if power > 0 and delta_t > 0 %}
{{ ((delta_t * flow * 1.163) / power) | round(2) }}
{% else %}
0
{% endif %}Problem:
- If you use the WarmLink mobile app AND Home Assistant with the same account, one will be logged out
- Guest accounts (invited users) can see devices in the app but API returns no devices in Home Assistant.
Solutions:
Option 1: Dedicated Home Assistant Account (Recommended)
If you want to use BOTH the mobile app and Home Assistant:
- Create a second WarmLink account (Account B)
- Keep your primary account (Account A) as owner
- Invite Account B to your home (from Account A in the app)
- Use Account A credentials in Home Assistant integration
- Use Account B to log into the mobile app
Result:
- ✅ Home Assistant works with Account A
- ✅ Mobile app works with Account B
- ✅ Both can monitor the heat pump
- ✅ No session conflicts
Option 2: Home Assistant Only
If you don't need the mobile app:
- Use your primary account in Home Assistant
- Log out of the mobile app (or don't install it)
- Single session - no conflicts
Option 3: Mobile App Only
If you prefer the mobile app and don't need Home Assistant integration, just use the app.
Technical Details:
- The WarmLink API uses session-based authentication
- Each login invalidates the previous session
- Guest accounts have limited API access (view-only in app, no API device list)
- This is a WarmLink API limitation, not an integration issue
- Check logs: Settings → System → Logs
- Search for "warmlink"
- Common issues:
- Wrong credentials
- Network connectivity
- API changes
- Press the refresh button:
button.warmlink_refresh_data - Check coordinator is updating (logs should show "Starting scheduled update")
- Verify API credentials are correct
If you upgraded to v70, entity IDs for 61 sensors changed. See CHANGELOG.md for migration guide.
Error Message:
Failed setup, will retry: No devices returned from API
Causes:
-
Using a guest/invited account - Guest accounts cannot access devices via API
- Solution: Use the owner account credentials in Home Assistant
-
Session conflict - Another session (mobile app) is active
- Solution: Use dedicated accounts (see Known Limitations)
-
Account has no devices - No heat pump associated with account
- Solution: Verify the account owns or has been invited to a home with a heat pump
-
API connection issues
- Solution: Check network connectivity and credentials
Quick Fix:
- Use the owner account (the account that created the home)
- Log out of the mobile app before configuring Home Assistant
- After HA setup, create a second account for the mobile app
custom_components/warmlink/
├── __init__.py # Integration setup
├── sensor.py # Sensor platform
├── button.py # Button platform (refresh)
├── coordinator.py # DataUpdateCoordinator
├── config_flow.py # Configuration flow
├── manifest.json # Integration metadata
├── const.py # Constants
├── codes.json # Sensor code list
├── icons.json # Icon mappings
├── units.json # Unit mappings
├── common/
│ └── endpoints.py # API endpoints
├── managers/
│ └── warmlink_api.py # API client
└── translations/
├── da.json # Danish config translations
├── en.json # English config translations
├── sensor_da.json # Danish sensor names
└── sensor_en.json # English sensor names
Contributions are welcome! Please:
- Fork the repository
- Create a feature branch
- Make your changes
- Test thoroughly
- Submit a pull request
- Original API Reverse Engineering: zyznos321/warmlink
- Home Assistant Integration: srbjessen
This project is licensed under the MIT License - see the LICENSE file for details.
See CHANGELOG.md for version history and migration guides.
- Issues: GitHub Issues
- Discussions: GitHub Discussions
This integration is not officially affiliated with or endorsed by WarmLink or Zealux. Use at your own risk.
Current Version: 70.0
Total Sensors: 391
Supported Languages: Danish, English
Update Interval: 5 minutes