Changes for page 2 Script

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

From version 1.1
edited by Wecon
on 2025/09/03 21:04
Change comment: Imported from XAR
To version 8.2
edited by Devin Chen
on 2025/11/05 09:27
Change comment: There is no comment for this version

Summary

Details

Page properties
Author
... ... @@ -1,1 +1,1 @@
1 -XWiki.Wecon
1 +XWiki.DevinChen
Content
... ... @@ -27,37 +27,63 @@
27 27  
28 28  == **1.4 Short message** ==
29 29  
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.
30 +The following demo shows that when the alarm condition is reached: temp1 > 50 (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 +Real-time tags 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** ==
... ... @@ -560,6 +560,127 @@
560 560  end
561 561  {{/code}}
562 562  
589 +== **1.12 Get UTC timestamp and local timezone timestamp** ==
590 +
591 +This demo shows how to obtain UTC standard time from the V-Box and get the local time based on the device's time zone.
592 +
593 +**Real-time tags configuration**
594 +
595 +[[image:1757043722849-910.png]]
596 +
597 +**Script configuration**
598 +
599 +(% style="text-align:center" %)
600 +[[image:1757043900216-610.png||height="412" width="439"]]
601 +
602 +**Script**
603 +
604 +{{code language="lua"}}
605 +function time.main()
606 +
607 + --Get Coordinated Universal Time
608 + local timestamp = os.time()
609 + local utcTimeTable = os.date("!*t", timestamp)
610 + local utcTimestamp = os.time(utcTimeTable)
611 + local formattedTime = os.date("%Y-%m-%d %H:%M:%S", utcTimestamp)
612 +
613 + print("UTC: " ..formattedTime)
614 +
615 + --Calculate the local time at the device's location
616 + local utc_7Timestamp = os.time(utcTimeTable) + 25200 -- Enter the corresponding number of seconds based on the time difference,used UTC+7 as an example..
617 + local formattedTime1 = os.date("%Y-%m-%d %H:%M:%S", utc_7Timestamp)
618 + print("UTC+7: " .. formattedTime1)
619 +
620 +
621 + --Assign the decomposed timestamp to the specified register
622 + addr_setword("@UTC+7_Second",os.date("%S", utc_7Timestamp))
623 + addr_setword("@UTC+7_Minute",os.date("%M", utc_7Timestamp))
624 + addr_setword("@UTC+7_Hour",os.date("%H", utc_7Timestamp))
625 + addr_setword("@UTC+7_Day",os.date("%d", utc_7Timestamp))
626 + addr_setword("@UTC+7_Month",os.date("%m", utc_7Timestamp))
627 + addr_setword("@UTC+7_Year",os.date("%Y", utc_7Timestamp))
628 + print("--------------------------------------")
629 +
630 +end
631 +{{/code}}
632 +
633 +**Result**
634 +
635 +(% style="text-align:center" %)
636 +[[image:1757044137457-543.png||height="468" width="708"]]
637 +
638 +
639 +== **1.13 JSON encoding and decoding** ==
640 +
641 +This demo shows how to encode tag values into JSON format and decode the JSON to assign data to new tags.
642 +
643 +**Real-time tags configuration**
644 +
645 +(% style="text-align:center" %)
646 +[[image:PixPin_2025-11-05_09-21-33.png]]
647 +
648 +(% class="wikigeneratedid" %)
649 +**Script configuration**
650 +
651 +(% style="text-align:center" %)
652 +[[image:PixPin_2025-11-05_09-23-03.png||height="376" width="400"]]
653 +
654 +(% class="wikigeneratedid" %)
655 +**Script**
656 +
657 +{{code language="lua"}}
658 +function json_test.main()
659 +
660 +-- Load JSON module for encoding and decoding JSON data
661 +local json = require("json")
662 +
663 +-- Read values from different types of address tags
664 +local a = addr_getbit("@bit") -- Read a bit (boolean) value
665 +local b = addr_getword("@word") -- Read a word (integer) value
666 +local c = addr_getfloat("@floating number") -- Read a floating point value
667 +local d = addr_getstring("@string",10) -- Read a string value with max length 10
668 +local e = json.null -- JSON null value constant
669 +
670 +-- Encode the data into JSON format
671 +local jsondata = json.encode({
672 + bit = a or 0, -- Bit value with default 0
673 + word = b or 0, -- Word value with default 0
674 + float = c or 0, -- Float value with default 0
675 + str = d or 0, -- String value with default 0
676 + {none= e} -- Nested table with null value
677 + })
678 +print("json encode:", jsondata) -- Print the encoded JSON data
679 +print(".......................")
680 +
681 +-- Decode the JSON string back to Lua table
682 +local data = json.decode(jsondata)
683 +
684 +-- Check if decoding was successful and print the results
685 +if type(data) == 'table' then
686 + print("json decode:")
687 + -- Iterate through all key-value pairs in the decoded table
688 + for k, v in pairs(data) do
689 + print(k, v)
690 + end
691 +end
692 +-- Write the decoded values back to corresponding address tags
693 +addr_setbit("@bit_copy", data["bit"] or 0) -- Write bit value
694 +addr_setword("@word_copy", data["word"] or 0) -- Write word value
695 +addr_setfloat("@floating number_copy", data["float"] or 0) -- Write float value
696 +addr_setstring("@string_copy", data["str"], 10) -- Write string value
697 +
698 +print("-----------------------")
699 +
700 +end
701 +{{/code}}
702 +
703 +(% class="wikigeneratedid" %)
704 +**Result**
705 +
706 +(% style="text-align:center" %)
707 +[[image:1762306008662-362.png||height="485" width="1228"]]
708 +
709 +
563 563  = **2 Third part server** =
564 564  
565 565  V-Box have two mode.One is for V-Net,User need to use WECON server to store data.We call this V-NET platform.
1757043722849-910.png
Author
... ... @@ -1,0 +1,1 @@
1 +XWiki.DevinChen
Size
... ... @@ -1,0 +1,1 @@
1 +74.4 KB
Content
1757043900216-610.png
Author
... ... @@ -1,0 +1,1 @@
1 +XWiki.DevinChen
Size
... ... @@ -1,0 +1,1 @@
1 +62.9 KB
Content
1757044137457-543.png
Author
... ... @@ -1,0 +1,1 @@
1 +XWiki.DevinChen
Size
... ... @@ -1,0 +1,1 @@
1 +99.4 KB
Content
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
1762306008662-362.png
Author
... ... @@ -1,0 +1,1 @@
1 +XWiki.DevinChen
Size
... ... @@ -1,0 +1,1 @@
1 +66.9 KB
Content
PixPin_2025-11-05_09-21-33.png
Author
... ... @@ -1,0 +1,1 @@
1 +XWiki.DevinChen
Size
... ... @@ -1,0 +1,1 @@
1 +65.8 KB
Content
PixPin_2025-11-05_09-23-03.png
Author
... ... @@ -1,0 +1,1 @@
1 +XWiki.DevinChen
Size
... ... @@ -1,0 +1,1 @@
1 +60.9 KB
Content