Photovoltaic: Sending fed-in energy amount from Kostal Smart Energy Meter to iDM Heat Pump using TCP Modbus

Robert Diers
2 min readNov 9, 2020

After putting the new heating and the new solar system into operation, I still had to establish the necessary data exchange. I didn’t want to buy additional expensive components and a small OrangePi Zero runs 24/7 anyway — so it made sense to me to build my own little solution via Linux Shell (or Docker).


  • Kostal Plenticore Plus 10 Hybrid + Kostal Smart Energy Meter (KSEM)
  • iDM AERO SLM 6–17
  • OrangePi Zero running Armbian Buster

KSEM is able to send data using TCP Modbus, but sadly it is not possible to send one single register value to the iDM slave, supporting TCP Modbus, too.

I decided to use an already existing solution to read and write TCP Modbus registers using Linux shell:

[EDIT 11/2022] here you can find an updates version using Python:

In addition I have created a Dockerfile (and an separate one for armhf) to create a container and execute it on my OrangePi Zero.

Transfer is executed every 30 sec, as iDM is using average value from 2 minutes. That was the easiest solution for me, output is in the Docker log.

09.11.2020 16:17:31 - current fed-in energy from KSEM (kW):  0
09.11.2020 16:17:31 - successfully send 0 (kW) to iDM
09.11.2020 16:17:31 - read value iDM (kW): 0
09.11.2020 16:17:31 - read load iDM (kW): 0
09.11.2020 16:18:01 - current fed-in energy from KSEM (kW): 0
09.11.2020 16:18:01 - successfully send 0 (kW) to iDM
09.11.2020 16:18:02 - read value iDM (kW): 0
09.11.2020 16:18:02 - read load iDM (kW): 0