20.05.2024, 07:20
You need to restart the script when heating/cooling mode changes because PID instance (p variable) is only created once the script starts.
Attach an event script to 1/6/4:
Resident script can be simplified:
Attach an event script to 1/6/4:
Code:
name = 'pid' -- resident script name
script.disable(name)
script.enable(name)
Resident script can be simplified:
Code:
-- init pid algorithm
if not p then
inverted = not grp.getvalue('1/6/4')
p = PID:init({
current = '5/2/8', -- actual temperature
setpoint = '1/4/11', -- desired temperature
output = '1/4/4', -- valve
inverted = inverted,
})
end
-- run algorithm
p:run()