I don't know if this is really an issue, or just the standard way that LUA works, but I found out that script that contains multiple if...then functions, only the last one seems to be triggered.
I have a script like this:
Code: Select all
commandArray = {}
sNestSetpointHeatOn = tonumber(uservariables["uNestSetpointHeatOn"])
sNestSetpointHeatOff = tonumber(uservariables["uNestSetpointHeatOff"])
if ( uservariables["DV_Keuken_Heat"] == 1 or uservariables["DV_Woonkamer_Heat"] == 1 or uservariables["DV_Hal_Heat"] == 1 or uservariables["DV_PC-Kamer_Heat"] == 1 or uservariables["DV_BadKamer_Heat"] == 1 or uservariables["DV_KleedKamer_Heat"] == 1 ) and uservariables["DV_Nest_Heat"] == 0 then
commandArray['Variable:DV_Nest_Heat']='1'
commandArray['Nest Verwarmen'] = "On"
commandArray['SendNotification']='[Nest Verwarmen Aan#[Nest Verwarmen Aan]#0#Classical'
print('<font color="RED">[DV Nest Aan]</font>')
commandArray [ 'UpdateDevice'] = "29 | 0 | "..sNestSetpointHeatOn
end
if ( uservariables["DV_Keuken_Heat"] == 0 and uservariables["DV_Woonkamer_Heat"] == 0 and uservariables["DV_Hal_Heat"] == 0 and uservariables["DV_PC-Kamer_Heat"] == 0 and uservariables["DV_Badkamer_Heat"] == 0 and uservariables["DV_Kleedkamer_Heat"] == 0 ) and uservariables["DV_Nest_Heat"] == 1 then
commandArray['Variable:DV_Nest_Heat']='0'
commandArray['Nest Verwarmen'] = "Off"
commandArray['SendNotification']='[Nest Verwarmen Uit]#[Nest Verwarmen Uit]#0#Classical'
print('<font color="RED">[DV Nest Uit]</font>')
commandArray [ 'UpdateDevice'] = "29 | 0 | "..sNestSetpointHeatOff
end
return commandArray
When i split it into 2 seperate scripts, like:
Code: Select all
commandArray = {}
sNestSetpointHeatOn = tonumber(uservariables["uNestSetpointHeatOn"])
sNestSetpointHeatOff = tonumber(uservariables["uNestSetpointHeatOff"])
if (uservariables["DV_Keuken_Heat"] == 1 or uservariables["DV_Woonkamer_Heat"] == 1 or uservariables["DV_Hal_Heat"] == 1 or uservariables["DV_PC-Kamer_Heat"] == 1 or uservariables["DV_Badkamer_Heat"] == 1 or uservariables["DV_Kleedkamer_Heat"] == 1) and uservariables["DV_Nest_Heat"] == 0 then
commandArray['Variable:DV_Nest_Heat']='1'
commandArray['Nest Verwarmen'] = "On"
commandArray['SendNotification']='[Nest Verwarmen Aan#[Nest Verwarmen Aan]#0#Classical'
print('<font color="RED">[DV Nest Aan]</font>')
commandArray [ 'UpdateDevice'] = "29 | 0 | "..sNestSetpointHeatOn
end
return commandArray
Code: Select all
commandArray = {}
sNestSetpointHeatOn = tonumber(uservariables["uNestSetpointHeatOn"])
sNestSetpointHeatOff = tonumber(uservariables["uNestSetpointHeatOff"])
if (uservariables["DV_Keuken_Heat"] == 0 and uservariables["DV_Woonkamer_Heat"] == 0 and uservariables["DV_Hal_Heat"] == 0 and uservariables["DV_PC-Kamer_Heat"] == 0 and uservariables["DV_Badkamer_Heat"] == 0 and uservariables["DV_Kleedkamer_Heat"] == 0) and uservariables["DV_Nest_Heat"] == 1 then
commandArray['Variable:DV_Nest_Heat']='0'
commandArray['Nest Verwarmen'] = "Off"
commandArray['SendNotification']='[Nest Verwarmen Uit]#[Nest Verwarmen Uit]#0#Classical'
print('<font color="RED">[DV Nest Uit]</font>')
commandArray [ 'UpdateDevice'] = "29 | 0 | "..sNestSetpointHeatOff
end
return commandArray
Is there an explanation for this?
Martijn