[APP][Pro] Luxtronik Heat Pump Manager – Control and monitor your Luxtronik heat pump

Hi everyone :waving_hand:

I’m excited to share my Homey app for Luxtronik-based heat pumps. If you own a heat pump from Alpha Innotec, Novelan, Buderus, Roth, Elco, Nibe, Wolf Heiztechnik or CTA — and it has a Luxtronik 2.0 / 2.1 controller — this app is for you.


:fire: What is this app?

The Luxtronik Heat Pump Manager connects your heat pump directly to Homey via the local TCP interface (port 8889). No cloud, no third-party services — everything runs locally on your network.

:point_right: Install from the Homey App Store


:thermometer: What can it do?

Read all sensor values

The app reads all values exposed by the Luxtronik controller:

  • Heat Pump State — Heating · Hot Water · Defrost · Standby · EVU Lock · Cooling · External · Off · Unknown

  • Heating Status — detailed extended state string from the controller, fully translated (EN/DE):
    Heating · No Request · Grid Startup Delay · Switching Cycle Time · EVU Lock · Hot Water · Screed Program Level X – Y °C · Defrost · Defrost (Reverse Cycle) · Air Defrost · Pump Pre-run · Thermal Disinfection · Cooling · Pool / Photovoltaic · External Heating · External Hot Water · Flow Monitoring · Electric Auxiliary Heating · DHW Reheating

  • Hot Water Status — Lock Period · Heating Up · Temperature OK · Off

  • Temperatures — Outdoor (current + 24h average) · Flow · Return (actual + target) · Hot gas · Hot water (actual + target) · Heat source in/out · Suction air* · Room temperature* (* only shown when available)

  • Energy values — Heating / Hot Water / Total (kWh)

  • Operating hours — Compressor · Heating · Hot Water · Cooling* (* only shown when cooling is enabled)

  • Volume flow — l/h

  • Error alarm — Yes/No

  • Last poll time — local time of last successful connection (24h format)

  • Firmware version

Control your heat pump

All controls write directly to the Luxtronik controller:

  • Hot Water Thermostat — set target temperature 30–65 °C, view current hot water temp

  • Heating Thermostat — set correction value −5 to +5 °C, view current flow temperature

  • Hot Water Mode — Automatic · Auxiliary · Party · Holidays · Off

  • Heating Mode — Automatic · Auxiliary · Party · Holidays · Off

Special functions

:fire: Hot Water Boost (Auxiliary Heating)

Forces immediate hot water heating using the second heat source, ignoring the time schedule:

  1. Sets hot water mode to Auxiliary

  2. Auto-stops when target temperature is reached

  3. Auto-stops after configurable maximum duration (default: 60 min)

  4. Resets to Automatic afterwards

  5. Fires Flow trigger “Hot Water Boost ended”

:fire: Hot Water Boost (Party)

Same behaviour, but uses Party mode on the controller.

:microbe: Thermal Disinfection

Enables continuous disinfection mode (parameter 27) for legionella protection:

  • Auto-stops when hot water reaches configurable target temperature (default: 65 °C)

  • Fires Flow trigger “Thermal Disinfection ended”

  • Note: Requires a second heat source (ZWE) enabled for hot water

:low_battery: Estimated Power Sensor (optional, disabled by default)
Adds a measure_power capability showing estimated electrical consumption based on the current heat pump state:

  • Enable/disable via device settings

  • Configure individual watt values per state (Heating, Hot Water, Standby, Defrost, Cooling, EVU Lock, External, Off, etc.)

  • All values default to 0 — configure for your installation before enabling

  • Updates immediately when settings are changed

  • Useful for Homey Energy and power-based Flow automations

  • Note: values are estimates, not measurements

:locked: Connection Watchdog

  • Poll timeout: No response → device immediately marked unavailable

  • Watchdog timer: Checks every minute if last successful poll was too long ago (threshold: 3× poll interval)

  • Device automatically becomes available again when connection is restored


:repeat_button: Flow Cards

12 Triggers

Trigger Description
Heating mode changed Token: new mode
Hot water mode changed Token: new mode
Heat pump state changed Token: new state
Error occurred Token: error message
Error cleared When error disappears
Hot Water Boost (Auxiliary) ended On auto-stop
Hot Water Boost (Party) ended On auto-stop
Thermal Disinfection ended On auto-stop
Device became unavailable Watchdog triggered
Device became available again Connection restored
Outdoor temperature dropped below … °C Configurable threshold
Outdoor temperature rose above … °C Configurable threshold

13 Conditions

Heating/hot water mode · Heat pump state · Heating status (free text) · Hot water status (dropdown) · Hot water temperature above/below · Outdoor temperature above/below · Thermal Disinfection active · Hot Water Boost (Auxiliary/Party) active · Device available

11 Actions

Set heating/hot water mode · Set heating correction · Set hot water target temperature (absolute or relative offset) · Start/Stop Hot Water Boost (Auxiliary) · Start/Stop Hot Water Boost (Party) · Enable/Disable Thermal Disinfection


:gear: Setup

Requirements:

  • Luxtronik 2.0 / 2.1 controller reachable on your local network

  • Static IP address (or DHCP reservation) recommended

  • Port 8889 or 8888 (TCP) must be reachable

Installation:

  1. Install the app from the Homey App Store

  2. Add device: Devices → + → Luxtronik Heat Pump Manager

  3. Enter IP address and port (default: 8889)

  4. Done — all values and controls are immediately available

add heatpump (1)

Device settings:

Setting Default Description
IP Address Luxtronik controller IP
Port 8889 TCP port
Poll interval 60 s How often values are read (min. 10 s)
Boost duration 60 min Max duration for both boost modes
Disinfection target temp. 65 °C Auto-stop temperature for thermal disinfection (60–70 °C)
Poll timeout 30 s Max wait for controller response before marking unavailable
Watchdog threshold Missed poll intervals before watchdog triggers
Watchdog check interval 60 s How often the watchdog checks for a successful poll
Power sensor disabled Enable estimated power consumption sensor
Power per state 0 W Configurable watt value per heat pump state (0–20000 W)

:factory: Compatible manufacturers

Manufacturer Example models
Alpha Innotec LW / SW / WZS series
Siemens Novelan WPR NET
Roth ThermoAura, ThermoTerra
Elco Aquatop, Aerotop
Buderus Logamatic HMC20
Nibe AP-AW10
Wolf Heiztechnik BWL / BWS
CTA Aeroheat AH CI

:warning: Important notes

Changing settings writes directly to the controller. Incorrect values can put the heat pump into an error state. Only change settings if you know what you’re doing — consult your heat pump’s manual.

  • The heating correction shifts the heating curve. Positive = warmer, negative = cooler

  • All writes are protected against immediate polling overwrite (120s write protection window)

  • The app requires Homey Pro with firmware >= 11.0.0


:robot: About this app

This app was developed entirely with the help of Claude (Anthropic AI). All code, configuration and documentation were generated and iteratively refined through AI-assisted development.

Special thanks to Robin Flikkema for his original Luxtronik Homey App which served as the foundation and inspiration for this project.

The app is open source: :point_right: GitHub – com.luxtronik.heatpump

If you find this app useful, I’d appreciate a beer: :point_right: PayPal – Support development


:speech_balloon: Feedback welcome!

I’m happy to hear from you:

  • Does it work with your heat pump model?

  • What features are missing?

  • Any bugs or unexpected behaviour?

Drop a comment below or open an issue on GitHub.

Hi Andi,

I found your app, something i was looking out for a long time. I used the previous app for luxtronik but that can only read values not setting them.

So i installed the app, adds a device but that goes wrong. It says the connection is established and the device should be created (Wärmepumpe erfolgreich hinzugefügt), but it is not.

Could the fact that the old heatpump, same ip address, is still present at homey

Hi Ronald,

Thanks for reaching out and glad you found the app!

The issue is most likely caused by the old app still being active and holding the TCP connection to the heat pump. Since both apps try to connect to the same IP address and port, they can interfere with each other during pairing.

Here’s what I’d recommend:

  1. Pause the old Luxtronik app before pairing the new one
  2. Pair the new Luxtronik Heat Pump Manager app

Please let me know if that solves the problem!

Andi

Andi,

I tried but it was not successfull. But something else I saw supprised me. The first time I tried

adding the heatpump was on my mobile, today I tried it on my laptop. The message that is was succesfull popped up, but at the same time the message that I should check the IP and port was visible .
I am sure the IP is correct, how can I check if the port is defined at the heatpump?

Hi Ronald

The luxtronik2 library actually defaults to port 8888, but the app uses 8889. Some Luxtronik controller firmware versions use one or the other. To check which port your controller is listening on, the user can run this from a terminal on the same network:

# Try port 8889 (app default)
telnet 192.168.1.106 8889

# Or try port 8888 (library default)
telnet 192.168.1.106 8888

If telnet is not available on Windows, you can use PowerShell:

Test-NetConnection -ComputerName 192.168.1.106 -Port 8889
Test-NetConnection -ComputerName 192.168.1.106 -Port 8888

A TcpTestSucceeded : True result tells them which port is open. If port 8889 fails and 8888 succeeds, they should enter 8888 in the pairing form.

Andi, the problem was fixed IP. Although the heat pump itself was at fixed IP and not DHCP, when looking at my network (Unifi) I noticed that the IP was flipping. I changed it there also at fixed IP and that was the trick.
Now the portscanner could reach te heatpump at 8889 and I now could add the heat pump to Homey without setting the old app to standby.

Thanx for the support. Now I dive in the flows:-)

I just installed it on my alpha innotec heat pump. The app looks great, thanks for the work

Looking forward to people sharing their flows here. Especially flows that help to save energy e.g. when abundant solar power is availlable

Two remarks for andi:

- in the charts there are some duplicates, e.g hot water target appears twice.

-some fields still in german

Hi, thanks for installing the app and for the kind words — great to hear it works on your Alpha Innotec! :tada:

Both issues you mentioned are already fixed and will be included in the next release: 2.0.21

Test version is ready: Luxtronik Heat Pump Manager | Homey

Duplicate charts (e.g. “Hot Water Target” appearing twice)
This was caused by two capabilities sharing the same title — one is the settable thermostat control, the other a read-only sensor. They have been renamed to clearly distinguish them:

  • “Hot Water Setpoint” → the value you can set

  • “Hot Water Target” → what the pump reports back as its current target

Fields showing in German
The status values like “Heizbetrieb” or “Aufheizen” were coming directly from the underlying luxtronik2 library, which returns German strings hardcoded in its source. The app now translates all known states to English (and keeps German for German-language users). Three Insights chart titles (Room Temperature, Room Target Temperature, Suction Air Temperature) were also still stored in German on existing devices — this is now corrected on app startup automatically.


Regarding energy-saving flows: great idea to collect those here! A few obvious starting points others might build on:

  • Switch hot water operation mode to Party when solar yield exceeds a threshold (e.g. via a power meter capability)

  • Trigger a hot water boost during peak solar hours

  • Reduce heating curve correction at night or when away

Would love to see what the community comes up with! If anyone shares a working solar-surplus flow, feel free to post it here.

I’ve added a new feature: Power‑Sensor Estimation as Luxtronik has no Sensors.

You have to enable it manually under settings and set estimated usage in Watt per state:

Thanks for your App, I like it very much.

It would be great if we could set the Cooling Mode, too.

Could you please open a issue on github for the feature request with detailed requirements?

Thank you

New features implemented: TEST Version

2.0.29
Apr 18, 2026
add estimated meter_power

2.0.28
Apr 18, 2026
fix Invalid Flow Card cooling_operation_mode_changed

2.0.27
Apr 18, 2026
Add control for cooling mode

New features implemented in 2.0.34: TEST Version

Added: Added 21 new read‑only sensor capabilities, new flow actions, reorganized device settings into 7 groups, and updated the in‑app help page.

Changed: Replaced target_temperature.tdi with tdi_target_temperature and now use the controller as the single source of truth.

Fixed: Synced all settings after each poll, blocked writes before first poll, and added _shouldWrite to prevent unintended controller writes.

2.0.35

Fixed: Room temperature (measure_temp_room) and room target temperature (measure_temp_room_target) now correctly read from the controller when an RBE room display is connected.