02.04.2020, 14:21
The KNX address returns an outdoor temperature value,If I want to set a scene at 0-10℃, set a scene at 10-25℃, set a scene above 25℃, how do I set it?
How to script the control logic of air conditioner?
|
02.04.2020, 14:21
The KNX address returns an outdoor temperature value,If I want to set a scene at 0-10℃, set a scene at 10-25℃, set a scene above 25℃, how do I set it?
value = event.getvalue()
if value > 0 and value < 10 then --do something elseif value > 10 and < 25 then --do something elseif value < 25 then --do something end You can also use >= 10 instead of > 10 for example. In the first example also the value 10 itself is included in the second example only every value higher then 10.
04.04.2020, 07:14
(This post was last modified: 04.04.2020, 07:17 by liangming011.)
local temp=knxdatatype.decode(event.datahex,dt.float16)
local heat=knxobject.get('address','1/3/5') local ac=knxobject.get('address','3/5/37') local heat_on=toboolean(heat.data) local ac_on=toboolean(ac.data) --heating off if not heat_on then --制冷 if temp>24 and not ac_on then alert('BR temp:%f,A/C ON',temp) ac:write (1) end --过度季节制冷 if temp>15 and temp<24 and not ac_on then alert('BR temp:%f,A/C ON',temp) ac:write (2) end --过度季节制暖 if temp>10 and temp<15 and not ac_on then alert('BR temp:%f,A/C ON',temp) ac:write (3) end --制暖 if temp<10 and not ac_on then alert('BR temp:%f,A/C OFF',temp) ac:write(4) end end Like this, would it work 1 value is refrigeration;2 value is Overmode refrigeration;3 value is Excessive mode heating;4 value is Making the model。
07.04.2020, 06:33
3/5/37 will only change when current value of 3/5/37 is 0 and 1/3/5 is 0. Is there some external logic that sets 3/5/37 to 0? If not then you need to change your script. Can you write an algorithm of how the system should work? Then we can help you with a script.
08.04.2020, 01:16
(This post was last modified: 08.04.2020, 01:59 by liangming011.)
I'm just beginning to learn how to write.3/5/37 will only change to Turn off air conditioning when current value of 3/5/37 is 0.1/3/5 is Temperature detection module.The program written above, is to imitate the example of the official website to rewrite, so I would like to ask, if I achieve this function, where do I need to modify to use?
local temp=knxdatatype.decode(event.datahex,dt.float16) local heat=knxobject.get('address','1/3/5') local ac=knxobject.get('address','3/5/37') local heat_on=toboolean(heat.data) local ac_on=toboolean(ac.data) --heating off if not a_on then --制冷 temp>24 then grp.write('3/5/37', 1) --过度季节制冷 elseif temp>15 and temp<24 then grp.write('3/5/37', 2) --过度季节制暖 elseif temp>10 and temp<15 then grp.write('3/5/37', 3) --制暖 elseif temp<10 and not ac_on then grp.write('3/5/37', 4) end -- object mapped to this event must have its data type set temp = event.getvalue('1/3/5') if not a_on==0 then --制冷 temp>24 then grp.write('3/5/37', 1) --过度季节制冷 elseif temp>15 and temp<24 then grp.write('3/5/37', 2) --过度季节制暖 elseif temp>10 and temp<15 then grp.write('3/5/37', 3) --制暖 elseif temp<10 and not ac_on then grp.write('3/5/37', 4) end -- object mapped to this event must have its data type set temp = event.getvalue('1/3/5') if not a_on==0 then --制冷 temp>24 then grp.write('3/5/37', 1) --过度季节制冷 elseif temp>15 and temp<24 then grp.write('3/5/37', 2) --过度季节制暖 elseif temp>10 and temp<15 then grp.write('3/5/37', 3) --制暖 elseif temp<10 and not ac_on then grp.write('3/5/37', 4) end Two writes, that works?
09.04.2020, 06:39
This example will set out_value depending on input temperature. This should be an event script attached to temperature sensor object so it executes each time temperature value changes.
Code: value = event.getvalue()
13.04.2020, 05:46
temp ,How to read the value 1/3/5?
temp = event.getvalue('1/3/5')?
13.04.2020, 07:06
event.getvalue() returns the value of an object that triggered the event. If your event script is attached to 1/3/5 then value variable will contain current temperature sensor value.
|
« Next Oldest | Next Newest »
|