Kronoterm heat pump integration

hello I have heat pump kornoterm, this has a cloud app and also web management.
Has anyone tried to create an integration?
it would be beautiful!

No news? Me too I would love!

I have a Kronoterm heat pump but have not been able to integrate it into Home Assistant. Maybe the only useful solution is the Modbus protocol but I have no idea how to start.

Anyone who got it working?

I just got Etera pump installed and got Kronoterm modbus specs from them.
All you need is RS485 dongle connected to your server and run the following script to test Kronoterm heat pump communication:

#!/usr/bin/env python3                                                                                                                            
import pymodbus.client
pymodbus.pymodbus_apply_logging_config("DEBUG")
client = pymodbus.client.ModbusSerialClient("/dev/ttyUSB0",  baudrate=115200)
try:
    client.connect()
    rr = client.read_holding_registers(2100, 10, slave=20)
    print('KRONOTERM Temperatures:', [u'{:.1f}\N{DEGREE SIGN}C'.format(t/10) for t in rr.registers])
except pymodbus.ModbusException as exc:
    print(f"Received ModbusException({exc}) from library")
client.close()

to get started with the HA integration.

Hello Leon Kos,

Can I have more details? I’m not that technical, how do you connect to an RS485 dongle? where do you buy it?

thank you very much in advance,

The cheapest “USB to RS485 Converter” on Aliexpress with GND will work when connected to TEX (Modbus) port located in the Kronoterm heat pump processor board.
I recommend Raspberry Pi 3+ with Home Assistant to be used inside the heat pump. Otherwise, you will need to have a long 3-wire twisted cable to it or some dongle.

1 Like

Kosl, thank you very much for your help! Do you have a pic how to connect the Dongle to the kronoterm?

My Raspberry is 5/6 meters froim the pump unit, do you think is ok?

thank a lot in advance, Danilo

Unfortunately, my Tex port is used for communication with the external unit. However, on the web module, there is a free port that has been sealed with adhesive tape, but I believe it is used for module configuration. Is there no way to extract the heat pump data in another way? Perhaps via Modbus TCP/IP since it is already connected to the network through the web module?

1 Like

The connection to TEX port is done with RS485 dongle using 3 wires (A, B, GND).

1 Like

If TEX module is occupied with the external unit then I would say you need two RS485 dongles and repeat whatever you receive from external unit and insert your own commands in the middle.

Thank you! Since it is an RS485 Modbus connection, is it enough to connect in parallel and read or write messages without using 2 devices?

Well, in Modbus RTU (serial) mode there can only be one “master”. I assume that your external unit is the master that sends updates to TEX interface. If TEX is the master then the interface can’t be used. The best would be to ask Kronoterm support and maybe you can get some other empty interface configured for Modbus.
I have Etera ground source mono block and TEX is available. In the Kronoterm Modbus document they do not differentiate model and should work with TEX interface for Adapt, Versi, WPLV and Etera models.
My initial version of Kronoterm to MQTT for Home Assistant inegration works fine for now.

I have released kronoterm2mqtt under PyPi so that it is easier to install it in a virtual environment such as:

python -m venv venv
venv/bin/pip install kronoterm2mqtt
venv/bin/kronoterm2mqtt_app edit-settings
venv/bin/kronoterm2mqtt_app print-values

Let me know of the issues you may have.

Hi, I’ve tried your snippet with my Kronoterm heat pump with KSM MD1, but I’m only getting

>>> client.read_holding_registers(2100, 10, slave=20)
2024-08-08 15:30:39,098 DEBUG logging:103 Current transaction state - TRANSACTION_COMPLETE
2024-08-08 15:30:39,099 DEBUG logging:103 Running transaction 8
2024-08-08 15:30:39,099 DEBUG logging:103 Clearing current Frame: - 0x0 0x0 0x0
2024-08-08 15:30:39,099 DEBUG logging:103 Resetting frame - Current Frame in buffer - 0x0 0x0 0x0
2024-08-08 15:30:39,100 DEBUG logging:103 SEND: 0x14 0x3 0x8 0x34 0x0 0xa 0x84 0xa6
2024-08-08 15:30:39,100 DEBUG logging:103 Resetting frame - Current Frame in buffer -
2024-08-08 15:30:39,101 DEBUG logging:103 Changing state to IDLE - Last Frame End - None Current Time stamp - 1723123839.100904
2024-08-08 15:30:39,103 DEBUG logging:103 New Transaction state "SENDING"
2024-08-08 15:30:39,104 DEBUG logging:103 Changing transaction state from "SENDING" to "WAITING FOR REPLY"
2024-08-08 15:30:39,112 DEBUG logging:103 Changing transaction state from "WAITING FOR REPLY" to "PROCESSING REPLY"
2024-08-08 15:30:39,113 DEBUG logging:103 RECV: 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0xae 0xf9 0xef 0x97 0xff 0xff 0xf7 0x16 0x0 0x0 0x0
2024-08-08 15:30:39,114 DEBUG logging:103 Processing: 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0xae 0xf9 0xef 0x97 0xff 0xff 0xf7 0x16 0x0 0x0 0x0
2024-08-08 15:30:39,114 DEBUG logging:103 Getting transaction 0
2024-08-08 15:30:39,116 DEBUG logging:103 Changing transaction state from "PROCESSING REPLY" to "TRANSACTION_COMPLETE"
ModbusIOException('[Input/Output] No Response received from the remote slave/Unable to decode response')

I’m new to Modbus. Is it possible that KSM MD1 uses different registries? From the output it look like there is some communication happening, or am I wrong and my connection is not working?

I would say that your communication is not working. The registers are the same for all Kronoterm heat pumps. I have ETERA with Heat pump manager V3.13-1. The Modbus specification I got from Kronoterm is for the same version.

One thing with pymodbus is that the optional pyserial is not installed and that might be the case for you. to be sure import pyserial before you import pymodbus in the snippet above!

Hi kronoterm heat pump owners!

I found a project from @kosl but must say I don’t like it because it requires messing around with HP hardware and am not sure how it effects device guaranty.

I started working on CLOUD API interface but also don’t like that approach as it requires active internet connection and their API is a disaster.

So today I sent an email to kronoterm support asking them about HP interface options. Hopefully they can provide an insight and point us in the right direction.

1 Like

They called me back from Kronoterm with following information:

  • officially only MODBUS is intended for general population access. From this follows that connecting and using MODBUS does NOT void guaranty.
  • their development team is looking into some better access options - no timeline was given.

Solution from @kosl is on the right track! I’ll fork the repo and try to help.

3 Likes

Would also like to control my heat pump without relying on an internet connection as well as the cloud. I don’t get it, why companies like Daikin move away from an local interface to cloud only. I hope that Kronoterm open a Modbus TCP interface on the existing WebModul.