Heating control by using PID controller

Platform Information:
Hardware: Raspberry Pi 4
Operating system: openhabian
openHAB Version: openHAB 3.2.0 - Release Build
Temperature sensors: Shelly H&T
Actuator: Möhlenhoff Alpha 5, controlled with Shelly 2.5

Problem of the topic:
In my house with underfloor heating, I would like to be able to monitor and adjust the temperature of each room individually using Main UI. For this purpose I would like to use a PID controller.

Since the PID controller rule integrated in OpenHAB is still relatively new, I haven’t found any beginner-friendly examples yet. I have tried to fill everything in as good as possible, but am failing and I don’t know why. I hope someone can put me on the right track.

The actuator is normally closed.so if the PID Controller triggers, the command ON should be sent to the Shelly and the valve should open.
But no matter what setpoint I enter, the actuator is always open.

Any ideas, hints, help or further ideas on how I could program the underfloor heating are greatly appreciated.

Hi D00mi,

issue is caused by the output of the PID-Controller. This is a numeric value and not an ON/OFF state. If you have a heating valve which just supports ON/OFF state you need to combine the PID-Controller with a PWM output (Pulse Width Modulation (PWM) Automation - Automation | openHAB). Do not forget to limit the PID-Controller output to a range of [0-100%].


hi Matthias,
one question… is it enough to set the output (the send command in the first picture) to the valve dimmer item of a heating regulator?

I´m quite new to OH and just found this thread. I´d also like to control my underfloor heating using the PID module together with the PWM module. My actuator can only be switched ON and OFF and has a deadtime of ~2min.
Can anyone of you help me with this?

Another question:
How can the Cell from the first post be created? (Büro 23.9°C with target temp. setting arrows)

I´d be glad to get any hint of how I can proceed with these topics.
Many thanks in advance!
Cheers, Andre