Integration for Kamstrup Multical 403 modbus TCP/IP and Carlo Gavazzi EM24 kWh meter

Dear all,

Just new here, installed HA on an Intel NUC celeron yesterday.
Found my Nibe heatpump and will be busy finding out te right one of the 1300! register values.

My queste is: how can i log the energy data of a Kamstrup Multical403 with modbus over TCP/IP option card in it.
The modbus registers are known.

Same for the Carlo Gavazzi energy meter.

Goal: logging the COP of my Nibe F2120-16, the temperature of the 300 liter parallel buffer and making nice graphs of these numbers.

Any hint is much appreciated.

Hi,
I’ve done it via the Python script on a virtual machine…
I’ll try to set it up directly in HomeAssistant…
If I get it to work, I’ll post the config.
Fred

Here how to do that:

  • create a file modbustcp.yaml
  • add modbus: !include modbustcp.yaml in the configuration.yaml

Content of modbustcp.yaml:

- name: mc_403
  type: tcp
  host: # ip_from_multical
  port: 502
  sensors:
    - name: "Énergie calorifique PAC"
      unique_id: heatpump_heat_mwhLifetime
      unit_of_measurement: "MWh"
      device_class: energy
      state_class: total_increasing
      precision: 3
      input_type: input
      address: 0
      data_type: float32
      swap: word

    - name: "Débit"
      unique_id: heatpump_flowrate
      unit_of_measurement: "l/h"
      state_class: measurement
      input_type: input
      address: 4
      data_type: float32
      swap: word

    - name: "Volume"
      unique_id: heatpump_m3Lifetime
      unit_of_measurement: "m³"
      state_class: total_increasing
      precision: 3
      input_type: input
      address: 8
      data_type: float32
      swap: word

    - name: "Puissance calorifique"
      unique_id: heatpump_heat_kwNow
      unit_of_measurement: "kW"
      device_class: power
      state_class: measurement
      precision: 3
      input_type: input
      address: 12
      data_type: float32
      swap: word

    - name: "Température source"
      unique_id: heatpump_flowT
      unit_of_measurement: "°C"
      device_class: temperature
      state_class: measurement
      precision: 2
      input_type: input
      address: 16
      data_type: float32
      swap: word

    - name: "Température retour"
      unique_id: heatpump_returnT
      unit_of_measurement: "°C"
      device_class: temperature
      state_class: measurement
      precision: 2
      input_type: input
      address: 20
      data_type: float32
      swap: word

To be tuned depending on the exact model, all register are described in the doc.