Thermia Heatpump MODBUS on Genesis Platform

Control and monitor your Thermia heat pump from Homey, entirely locally over Modbus TCP, no cloud and no extra hardware.

App Store: Thermia Heat Pump | Homey

Compatibility

Thermia heat pumps on the Genesis platform 16 (Atlas, Calibra, Calibra Eco, Calibra Cool, Diplomat Inverter). Developed and tested on a ground-source (brine) unit. Other models should work, but are untested.

Getting started

  1. On the heat pump display: Settings / BMS, enable Modbus TCP/IP.
  2. Connect the RJ45 port on the display unit to your network.
  3. Add the device in Homey. You can search the network, or enter the IP address (port 502) yourself.

What you get

  • Heat pump and hot water on/off, main heating temperature, hot water start/stop temperature
  • Status (heating, hot water, cooling, defrost, standby, anti-legionella, …)
  • Outdoor, indoor, flow, return, brine and hot water tank temperatures
  • Circulation and brine pump speed
  • Power and total energy, plus energy split per heating / hot water / cooling (anti-legionella counts as hot water, passive cooling as cooling)

Flow cards

  • Triggers: hot water turned on / off, status changed (with the status text and a language-independent status code as tokens)
  • Actions: hot water on/off, set hot water start/stop temperature
  • Actions to feed in values from other devices: outdoor temperature, indoor temperature, power and total energy

No room sensor or power meter?

Many units have no room sensor or “Current limiter” accessory, so the heat pump cannot report power and energy itself. In that case, feed the values in with the “Update …” Flow cards, for example from a Shelly or a P1 meter: a flow with the Shelly’s power as trigger and “Update power” as action. The first time such a card runs, the source switches to “Flow card” in the device settings.

Good to know

  • The energy per function is calculated by the app: the heat pump has no separate meters for it, so the real meter readings are split by what the heat pump is doing.
  • For safety reasons, Anti-legionella cannot be switched in the Homey App. Setting can be changed on the heat pump display itself. You can see it in the status when the anti-legionella program is running.
  • Registers on a real unit sometimes differ from the Thermia documentation. If a value looks wrong on your model, please tell me which register and what you expect to see.

Feedback

Questions, bug reports and model reports are very welcome in this topic. If you like the app, a donation is appreciated but never required (see the Donate button on the App Store page).

Disclaimer: this app is not affiliated with or endorsed by Thermia AB. Use at your own risk.

Version 1.0.6 available: Swedish, German and French, and I need your help checking the language

Version 1.0.6 is now available as a certified version:

What’s new compared to the current live version

  • Fixed a crash when the heat pump cannot be reached, for example after a network interruption or with a wrong IP address. If you have seen a crash report for this app, this should fix it.
  • The connection to the heat pump now recovers automatically. While the heat pump cannot be reached, the device shows as unavailable instead of keeping old values.
  • Swedish, German and French translations (app, pairing screen, status texts and readme), next to English and Dutch
  • A link to this topic on the App Store page

Language check wanted
The Swedish, German and French translations were made with AI, so I would really like native speakers to have a look. Heat pump terms in particular can be tricky (for example flow/return, brine in/out, hot water, anti-legionella), and I would like them to match what you see on your own Thermia display and in the Thermia app.

If you set your Homey is set to Swedish, German or French, you can check:

  • the device capabilities (temperatures, pumps, energy) and the device settings
  • the Flow cards, including the hints in the settings
  • the pairing screen
  • the status texts (heating, hot water, cooling, defrost, standby, anti-legionella, no demand, …)

Please reply here with the language, where you saw the text, and what it should say. Small things are welcome too, like a wrong word, an odd sentence, or something still in English. If everything looks fine in your language, a short “German OK” is already very helpful.

Feedback on the rest of the app is also welcome, of course.

Thanks in advance!