Modbus interface to Picco / KEBA heat pump

Hello

I made a simple interface to my heat pump from Picco. The heat pump uses a controller from KEBA and I expect the interface to work for all KEBA heat pumps.

https://www.keba.com/en/heating-control/heat-pump/heatpump

I have not seen an interface for HA, so I thought I should share it.

The communication is done via Modbus/TCP to the AP440 control unit, and no setup is needed in the heat pump except from establishing a connection to my local router.

Since Modbus/TCP is an integrated part of Home Assistant all setup was done in the configuration.yaml file. The configuration is shown below.

modbus:
  - name: Heatpump
    type: tcp
    host: 192.168.1.173
    port: 502
    sensors:
      - name: Heatpump_selectedSetTemp
        data_type: uint16
        slave: 1
        address: 2
        scale: 0.1
        precision: 1
        unit_of_measurement: °C
      - name: Heatpump_SetpointTemperature
        data_type: uint16
        slave: 1
        address: 3
        scale: 0.1
        precision: 1
        unit_of_measurement: °C
      - name: Heatpump_normalSetTemp
        data_type: uint16
        slave: 1
        address: 4
        scale: 0.1
        precision: 1
        unit_of_measurement: °C
      - name: Heatpump_reducedSetTemp
        data_type: uint16
        slave: 1
        address: 5
        scale: 0.1
        precision: 1
        unit_of_measurement: °C
      - name: Heatpump_offsetRoomTemp
        data_type: uint16
        slave: 1
        address: 6
        scale: 0.1
        precision: 1
        unit_of_measurement: °C
      - name: Heatpump_HotWater_Temperature
        data_type: uint16
        slave: 1
        address: 401
        scale: 0.1
        precision: 1
        unit_of_measurement: °C
      - name: Heatpump_HotWater_SetpointTemperature
        data_type: uint16
        slave: 1
        address: 402
        scale: 0.1
        precision: 1
        unit_of_measurement: °C
      - name: Heatpump_TotalAccumulatedHeatingEnergy
        data_type: uint16
        slave: 1
        address: 701
        scale: 1
        precision: 1
        unit_of_measurement: kWh
      - name: Heatpump_State
        data_type: uint16
        slave: 1
        address: 703
      - name: Heatpump_ActualFlowTemperature
        data_type: uint16
        slave: 1
        address: 705
        scale: 0.1
        precision: 1
        unit_of_measurement: °C
      - name: Heatpump_HeatPower
        data_type: uint16
        slave: 1
        address: 706
        scale: 0.001
        precision: 2
        unit_of_measurement: kW
      - name: Heatpump_RefluxTemperature
        data_type: uint16
        slave: 1
        address: 710
        scale: 0.1
        precision: 1
        unit_of_measurement: °C
      - name: Heatpump_CirculationPump
        data_type: uint16
        slave: 1
        address: 712
        scale: 0.01
        precision: 2
2 Likes

Hello.Thank you for your work. I have Hautec heat pump. Where do you have a complete list of registers?

Hi there.
I have a complete list in an excel sheet. But I cannot seem to attach it here. Can you give an email I can send it to?

And sorry for the late reply.

I found a description of the protocol at another forum. The protocol for the keba heat pump can be found here.

https://forum.iobroker.net/assets/uploads/files/1634464640445-20200610_mtec.modbus_server_variablelist__ib__.xls

Also a link to the forum

1 Like

I got a slightly newer one (20210108_MTec.Modbus_Server_VariableList)), if any one needs it. 20201109 is the “internal” date in the file… - but I can’t upload a .xls file here - how can I share xls files in this forum?