20.01.2025, 13:55
(20.01.2025, 12:24)admin Wrote: If there are two setpoints then you need to know which one is currently used. Does your heating actuator have a setpoint status output?yes and i tryed now but it work only for first one room of the script here is the full script!
Code:
if event.getvalue() then
local actual_temp1 = grp.getvalue('12/0/5')
local fake_temp_addr1 = '3/3/1'
local offsetvalue = grp.getvalue('32/1/69')
local value_temp = grp.getvalue('12/1/0')
local value_temp1 = grp.getvalue('3/1/1')
local offset = value_temp - offsetvalue * 0.01
local temp_dif = value_temp - actual_temp1
local setpointstatus1 = grp.getvalue('4/2/1')
if actual_temp1 >= setpointstatus1
then
grp.write(fake_temp_addr1,offset)
else
grp.write(fake_temp_addr1,actual_temp1)
local actual_temp2 = grp.getvalue('12/0/3')
local fake_temp_addr2 = '3/3/2'
local offsetvalue = grp.getvalue('32/1/69')
local value_temp = grp.getvalue('12/1/0')
local value_temp2 = grp.getvalue('3/1/2')
local offset = value_temp - offsetvalue * 0.01
local temp_dif = value_temp - actual_temp2
local setpointstatus2 = grp.getvalue('4/2/2')
if actual_temp2 >= setpointstatus2
then
grp.write(fake_temp_addr2,offset)
else
grp.write(fake_temp_addr2,actual_temp2)
local actual_temp3 = grp.getvalue('12/0/4')
local fake_temp_addr3 = '3/3/3'
local offsetvalue = grp.getvalue('32/1/69')
local value_temp = grp.getvalue('12/1/0')
local value_temp3 = grp.getvalue('3/1/3')
local offset = value_temp - offsetvalue * 0.01
local temp_dif = value_temp - actual_temp3
local setpointstatus3 = grp.getvalue('4/2/3')
if actual_temp3 > setpointstatus3
then
grp.write(fake_temp_addr3,offset)
else
grp.write(fake_temp_addr3,actual_temp3)
local actual_temp4 = grp.getvalue('12/0/4')
local fake_temp_addr4 = '3/3/4'
local offsetvalue = grp.getvalue('32/1/69')
local value_temp = grp.getvalue('12/1/0')
local value_temp4 = grp.getvalue('3/1/4')
local offset = value_temp - offsetvalue * 0.01
local temp_dif = value_temp - actual_temp4
local setpointstatus4 = grp.getvalue('4/2/4')
if actual_temp4 >= setpointstatus4
then
grp.write(fake_temp_addr4,offset)
else
grp.write(fake_temp_addr4,actual_temp4)
local actual_temp5 = grp.getvalue('12/0/1')
local fake_temp_addr5 = '3/3/5'
local offsetvalue = grp.getvalue('32/1/69')
local value_temp = grp.getvalue('12/1/0')
local value_temp5 = grp.getvalue('3/1/5')
local offset = value_temp - offsetvalue * 0.01
local temp_dif = value_temp - actual_temp5
local setpointstatus5 = grp.getvalue('4/2/5')
if actual_temp5 >= setpointstatus5
then
grp.write(fake_temp_addr5,offset)
else
grp.write(fake_temp_addr5,actual_temp5)
local actual_temp6 = grp.getvalue('12/0/3')
local fake_temp_addr6 = '3/3/6'
local offsetvalue = grp.getvalue('32/1/69')
local value_temp = grp.getvalue('12/1/0')
local value_temp6 = grp.getvalue('3/1/6')
local offset = value_temp - offsetvalue * 0.01
local temp_dif = value_temp - actual_temp6
local setpointstatus6 = grp.getvalue('4/2/6')
if actual_temp5 >= setpointstatus6
then
grp.write(fake_temp_addr6,offset)
else
grp.write(fake_temp_addr6,actual_temp6)
local actual_temp7 = grp.getvalue('12/0/2')
local fake_temp_addr7 = '3/3/7'
local offsetvalue = grp.getvalue('32/1/69')
local value_temp = grp.getvalue('12/1/0')
local value_temp7 = grp.getvalue('3/1/7')
local offset = value_temp - offsetvalue * 0.01
local temp_dif = value_temp - actual_temp7
local setpointstatus7 = grp.getvalue('4/2/7')
if actual_temp7 >= value_temp or value_temp7
then
grp.write(fake_temp_addr7,offset)
else
grp.write(fake_temp_addr7,actual_temp7)
local actual_temp8 = grp.getvalue('12/0/3')
local fake_temp_addr8 = '3/3/8'
local offsetvalue = grp.getvalue('32/1/69')
local value_temp = grp.getvalue('12/1/0')
local value_temp8 = grp.getvalue('3/1/8')
local offset = value_temp - offsetvalue * 0.01
local temp_dif = value_temp - actual_temp8
local setpointstatus8 = grp.getvalue('4/2/8')
if actual_temp8 >= setpointstatus8
then
grp.write(fake_temp_addr8,offset)
else
grp.write(fake_temp_addr8,actual_temp8)
local actual_temp9 = grp.getvalue('12/0/3')
local fake_temp_addr9 = '3/3/9'
local offsetvalue = grp.getvalue('32/1/69')
local value_temp = grp.getvalue('12/1/0')
local value_temp9 = grp.getvalue('3/1/9')
local offset = value_temp - offsetvalue * 0.01
local temp_dif = value_temp - actual_temp9
local setpointstatus9 = grp.getvalue('4/2/9')
if actual_temp9 >= setpointstatus9 then
grp.write(fake_temp_addr9,offset)
else
grp.write(fake_temp_addr9,actual_temp9)
end
end
end
end
end
end
end
end
end
end