Changes for page 2 Script

Last modified by Devin Chen on 2025/12/10 10:32

From version 3.1
edited by Devin Chen
on 2025/09/05 11:51
Change comment: There is no comment for this version
To version 6.1
edited by Devin Chen
on 2025/09/09 15:10
Change comment: There is no comment for this version

Summary

Details

Page properties
Content
... ... @@ -29,35 +29,61 @@
29 29  
30 30  The following demo shows that when the alarm condition is reached: temp1 > 5 & temp2 >10 & temp3 < 20(lasts more than 5 seconds) , then send an "alarm trigger" sms.
31 31  
32 -When the alarm condition is released,then send an  "alarm release" sms. Script is as below:
32 +When the alarm condition is released,then send an  "alarm release" sms.
33 33  
34 +Registers setting
35 +[[image:1757401730077-284.png]]
36 +
37 +Script is as below:
38 +
34 34  {{code language="lua"}}
35 35  function sms.main()
36 36  ------send condition------
37 -local temp1 = addr_getword("@Temperature1")
38 -local temp2 = addr_getword("@Temperature2")
39 -local temp3 = addr_getword("@Temperature3")
40 -local timer = addr_getword("@Timer")
41 -local tag = addr_getbit("@Tag")
42 -------lasting time------
43 -if temp1 > 5 and temp2 > 10 and temp3 < 20 then
44 - timer = timer + 1
45 - addr_setword("@Timer",timer)
46 -else
47 - timer = 0
48 - addr_setword("@Timer",timer)
49 -end
50 -------send sms & output Y0------
51 -if timer > 5 then
52 - if tag == 0 then
53 - send_sms_ira("19859254700","alarm trigger")
54 - addr_setbit("@Tag",1)
42 + local temp1 = addr_getword("@Temperature1")
43 + local timer = addr_getword("@Timer")
44 + local tag = addr_getbit("@Tag")
45 + local tag2 = addr_getbit("@Y0")
46 + local sms_timer = addr_getword("@SMSTimer")
47 + local sms_id = addr_getword("@id") -- SMS ID
48 +
49 + ------lasting time------
50 + if temp1 > 50 then
51 + timer = timer + 1
52 + addr_setword("@Timer", timer)
53 + else
54 + timer = 0
55 + addr_setword("@Timer", timer)
55 55   end
56 -elseif tag == 1 then
57 -send_sms_ira("19859254700","alarm release")
58 -addr_setbit("@Tag",0)
57 +
58 + ------send sms & output Y0------
59 + if timer > 5 then
60 + if tag == 0 then
61 + --send SMS to 2 number
62 + local id = send_sms_ira("198****4800", "alarm trigger")
63 + local id = send_sms_ira("187****3130", "alarm trigger")
64 + addr_setword("@id", id) -- Store SMS ID to dedicated variable
65 + addr_setbit("@Tag", 1)
66 + addr_setword("@SMSTimer", 0) -- Reset SMS status check timer
67 + else
68 + -- If SMS already sent, increment timer
69 + sms_timer = sms_timer + 1
70 + addr_setword("@SMSTimer", sms_timer)
71 +
72 + -- Check SMS status after 20 seconds
73 + if sms_timer >= 20 then
74 + local state = sms_get_state(sms_id)
75 + addr_setword("@state", state)
76 + addr_setword("@SMSTimer", 0) -- Reset timer
77 + end
78 + end
79 + elseif tag == 1 then
80 + -- Send alarm release SMS
81 + send_sms_ira("198****4800","alarm release")
82 + send_sms_ira("187****3130", "alarm release")
83 + addr_setbit("@Tag", 0)
84 + addr_setword("@SMSTimer", 0) -- Reset timer
85 + end
59 59  end
60 -end
61 61  {{/code}}
62 62  
63 63  == **1.5 Telegram notification** ==
1757387490907-390.png
Author
... ... @@ -1,0 +1,1 @@
1 +XWiki.DevinChen
Size
... ... @@ -1,0 +1,1 @@
1 +47.9 KB
Content
1757401730077-284.png
Author
... ... @@ -1,0 +1,1 @@
1 +XWiki.DevinChen
Size
... ... @@ -1,0 +1,1 @@
1 +92.2 KB
Content