Multiple Value true - Printable Version +- Logic Machine Forum (https://forum.logicmachine.net) +-- Forum: LogicMachine eco-system (https://forum.logicmachine.net/forumdisplay.php?fid=1) +--- Forum: Scripting (https://forum.logicmachine.net/forumdisplay.php?fid=8) +--- Thread: Multiple Value true (/showthread.php?tid=1860) |
Multiple Value true - Gadjoken - 24.01.2019 Hello, I would like to make an event script on an alarm address. This script sent the status of the windows that would be open at this time. The problem in the script I could create is that as soon as the first window is open then the script stops. alarm grp.getvalue = ( '...') windows1 = grp.getvalue ( '...') w2 = w3 = ... w50 = if alarm == true and windows1 == true then log (test) elseif alarm == true and windows 2 == true then log (test2) ..... etc I would like to be able to send an email indicating the window 1, the window 2 and the window 32 are open. Best regards. RE: Multiple Value true - demeur - 24.01.2019 First use (for) and increment adress for knx (its better for script) exemple : -------------------------------------------------------- windows_number = 50 windows{} For a = 0,Windows_number,1 do windows[a] = grp.getvalue('0/0/'..tonumber(a)) os.sleep(0.2) end message = windows if windows[1] == true then message =message + ' 1' end if windows[2] == true then message =message + ', 2' end if windows[32] == true then message =message + ' ,32' end message = message + ' is open' -------------------------------------------------------- then use mail function Best regard Give me the knx adress (alarme and all windows ) and i will write a script for you (whith mail ) RE: Multiple Value true - admin - 24.01.2019 You should tag window status objects and use grp.tag to find out if which ones are open. RE: Multiple Value true - Daniel - 24.01.2019 As admin mention do it like that. Tag all windows and put tag in this script. Add description to windows object, this will be displayed in email as window name. Code: tagname = 'windows' RE: Multiple Value true - Gadjoken - 24.01.2019 (24.01.2019, 15:14)Daniel. Wrote: As admin mention do it like that. Tag all windows and put tag in this script. Add description to windows object, this will be displayed in email as window name. Perfect Thank you. B.R. RE: Multiple Value true - Gadjoken - 25.01.2019 I have a second question about comparing an address with its old value. I explain myself I have an event script (on TAG) with two addresses. I send an email as soon as the address goes to 10 (2 Byte signed integer). The value 10 indicates a fault. I would like to send the return to the proper functioning after the passage of 10 to some other value. For example value 10 then sending mail, change to value 5 (after value 10) then send a second mail. On the other hand passage from 5 to 0 or 0 to 5 we do nothing ... FAULT1 = grp.getvalue('14/1/34') -- Status FAULT1 FAULT2 = grp.getvalue('13/1/34') -- Status FAULT2 subject = 'FAULT' message = 'FAULT' subject1 = 'OK' message1 = 'OK' if FAULT1 == 10 or FAULT2 == 10 then mail('@', subject, message) --elseif FAULT1 ~= 10 and FAULT2 ~= 10 then -- mail('alertes@test', subject1, message1) end with this script the sending of the second mail is systematic during a change of state different from 10 Do you have to compare the event.dst value with the old value given that I have several group addresses on this tag? Thank you. Best regards RE: Multiple Value true - admin - 25.01.2019 You need to use storage to save current fault state so message is sent only once on status change: Code: FAULT1 = grp.getvalue('14/1/34') -- Status FAULT1 RE: Multiple Value true - Gadjoken - 25.01.2019 (25.01.2019, 08:58)admin Wrote: You need to use storage to save current fault state so message is sent only once on status change: Perfect as always. Thank you so much. B.R. |