PI climate module for floor heating

Is it possible to get a logic module that can control floor heating valves.

Inputs

No. Name Initialisation Description
1 Setpoint Temp. (in °C) 0 Setpoint (e.g. setpoint temperature in °C)
2 Actual value (in °C) 0 Actual value (e.g. actual temperature in °C)
3 100% range 0 Information on the size of the control range or 100 percent range in temperature units area (e.g. °C) in which variable control takes place. The range within which control takes place is limited by “setpoint temperature” (upper limit) and “setpoint temperature minus input value control range” (lower limit). Note The lower limit belongs to the range, the upper limit does not. If the actual temperature lies above this range, the fixed correcting variable = 0%. If the actual temperature lies within this range, the correcting variable is calculated. If the actual temperature lies below this range, the fixed correcting variable = 100%. See also the value table below.
4 Factor (Initialisation==1) 1 Control factor (minimum 1) The control factor influences the slope of the control curve in the control range, i.e., the time until the setpoint temperature is reached. Lower values lead to a flat control curve (longer duration). Higher values lead to a steep control curve (shorter duration).
5 Cycle (sec.) 0 Calculation cycle in seconds. A zero as cycle time calculate on every new Actual value input.

Outputs

No. Name Initialisation SBC Description
1 Correcting variable 0 s Correcting variable (0 to 100%)
2 Correcting variable (sbc) 0 sbc Correcting variable (0 to 100%)

s = [send], sbc = [send by change]

Value table as an example

E1 - Target temp (°C) E2 - Actual temp (°C) E3 - Control range 100% (°C) E4 - Factor A1 - Correcting variable (%) Comment
28 28 3 1 0 Actual temperature (28) = Setpoint temperature (28) = Upper limit (28): Heating not taking place.
28 29 3 1 0 Actual temperature lies above the setpoint temperature: : Heating not taking place.
28 27 3 1 16.52 The setpoint temperature being slightly undershot leads to moderate heating up.
28 27 3 2 75.54 A higher factor leads to a steeper control curve. This means that the setpoint temperature is reached quicker
28 25 3 1 56.54 Actual temperature (25) = Setpoint temperature (28) - Input value control range (3) = Lower limit (25): High heating up
28 24 3 1 100 Actual temperature (24) < Setpoint temperature (28) - Input value control range (3) = Lower limit (25): Maximum heating up
28 24 5 1 54.32 Through the extension of the control range, 100% heating up is no longer set, even at 24 degrees.

In KNX this is typically done by hardware - heating actuator.
You can try to implement a PI or even PID Controller in a home-assistant automation or have a look here: Thermostat with PID controller

If you want to use electrothermal valve drives Please note that normal switching actuators may not be appropriate for this application because of the amount of switch cycles a pwm Signal will cause.

I have a Valve Drive Actuator that takes care of the PWM in the backend to my electrothermal valve drives. I just need a HA KNX module that provide the Actuator with (0 to 100%) in DPT 5.001
Link to my Valve Drive Actuator: https://library.e.abb.com/public/84bb6f7ef2524f3e92d9b9979153c4d9/VAAS_X23021_PH_EN_V1-0_2CDC508101D0202.pdf

You can use Knx expose function.

knx:
  expose:
    - type: "percent"
      entity_id: ...
      address: ...

So you can erase “Knx” of your requirement. Just look for a generic PI controller in HA and expose its value.

But I would still advise to get the hardware equivalent of this for stability. Eg. https://www.mdt.de/Temperaturregler.html
Many Knx displays, servers and even switches provide this functionality too.
Last but not least you can try to sell your abb actuators and replace them with ones that have a regulator built in like eg. https://katalog.gira.de/de_AT/datenblatt.html?id=671355 - many modern heating actuators have this feature now.
(Links are in German, you can Google for the model no though)

Good thinking, using the expose. Did not know that existed.
Pointers to any good PI controller would be helpful.

I have 18 individual floor zones to control, and the MDT regulator only support 6.
So need three of them… but thanks for the help and tips, its appreciated!