Thermia Genesis

Thermia Genesis is the platform used by several heat-pump models produced by Thermia. I have a Thermia Calibra Cool 7 on which I have tested all of this.

Thermia Heatpump

Official website:

Used versions of the specification can be found here.

Official Modbus mappings:

  • I have 3 versions of the Thermia Genesis modbus schema definitions.

    • Platform versions 10, 12 and 13
  • There were some fields added and removed between those versions.

    • I have chosen to include all of them.
  • There are many fields that only work

    • on specific heat pump models
    • if specific modules have been installed (you’ll see for example (EM) or (EM3 only) in the description of a Field).
    • if specific functionality is used (like swimming pool)
  • Status: All registers and discretes in the documentation have been put into the schema definition.

  • Schema as YAML: ThermiaGenesis101213.yaml

I have also created for version 13 a schema where all Fields have been put into blocks based on the area of use (the “Reference to” column in the original PDFs)

The schema is also available as pre generated Kotlin code.

<dependency>
  <groupId>nl.basjes.modbus.devices</groupId>
  <artifactId>modbus-device-thermia-genesis</artifactId>
  <version>0.6.2</version>
</dependency>

With that the code to use the values can be as simple as this Kotlin Script:

GetThermia.main.kts

This script produced this output:

Outdoor Temperature            : 22.83 °C
Room Temperature               : 22.5 °C
Comfort Wheel Setting          : 20.5 °C
Tap Water Weighted Temperature : 53.2 °C

Repo location of this Schema: https://github.com/nielsbasjes/modbus-devices/tree/main/modbus-device-thermia-genesis