Changes for page 2 Script

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

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

Summary

Details

Page properties
Content
... ... @@ -27,63 +27,37 @@
27 27  
28 28  == **1.4 Short message** ==
29 29  
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.
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.
32 +When the alarm condition is released,then send an  "alarm release" sms. Script is as below:
33 33  
34 -Real-time tags setting
35 -[[image:1757401730077-284.png]]
36 -
37 -Script is as below:
38 -
39 39  {{code language="lua"}}
40 40  function sms.main()
41 41  ------send condition------
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)
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)
56 56   end
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
56 +elseif tag == 1 then
57 +send_sms_ira("19859254700","alarm release")
58 +addr_setbit("@Tag",0)
86 86  end
60 +end
87 87  {{/code}}
88 88  
89 89  == **1.5 Telegram notification** ==
... ... @@ -590,7 +590,7 @@
590 590  
591 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 592  
593 -**Real-time tags configuration**
567 +**Register configuration**
594 594  
595 595  [[image:1757043722849-910.png]]
596 596  
... ... @@ -599,8 +599,11 @@
599 599  (% style="text-align:center" %)
600 600  [[image:1757043900216-610.png||height="412" width="439"]]
601 601  
576 +
602 602  **Script**
603 603  
579 +
580 +
604 604  {{code language="lua"}}
605 605  function time.main()
606 606  
... ... @@ -635,77 +635,6 @@
635 635  (% style="text-align:center" %)
636 636  [[image:1757044137457-543.png||height="468" width="708"]]
637 637  
638 -== **1.13 JSON encoding and decoding** ==
639 -
640 -This demo shows how to encode tag values into JSON format and decode the JSON to assign data to new tags.
641 -
642 -**Real-time tags configuration**
643 -
644 -(% style="text-align:center" %)
645 -[[image:PixPin_2025-11-05_09-21-33.png]]
646 -
647 -(% class="wikigeneratedid" %)
648 -**Script configuration**
649 -
650 -(% style="text-align:center" %)
651 -[[image:PixPin_2025-11-05_09-23-03.png||height="376" width="400"]]
652 -
653 -(% class="wikigeneratedid" %)
654 -**Script**
655 -
656 -{{code language="lua"}}
657 -function json_test.main()
658 -
659 --- Load JSON module for encoding and decoding JSON data
660 -local json = require("json")
661 -
662 --- Read values from different types of address tags
663 -local a = addr_getbit("@bit") -- Read a bit (boolean) value
664 -local b = addr_getword("@word") -- Read a word (integer) value
665 -local c = addr_getfloat("@floating number") -- Read a floating point value
666 -local d = addr_getstring("@string",10) -- Read a string value with max length 10
667 -local e = json.null -- JSON null value constant
668 -
669 --- Encode the data into JSON format
670 -local jsondata = json.encode({
671 - bit = a or 0, -- Bit value with default 0
672 - word = b or 0, -- Word value with default 0
673 - float = c or 0, -- Float value with default 0
674 - str = d or 0, -- String value with default 0
675 - {none= e} -- Nested table with null value
676 - })
677 -print("json encode:", jsondata) -- Print the encoded JSON data
678 -print(".......................")
679 -
680 --- Decode the JSON string back to Lua table
681 -local data = json.decode(jsondata)
682 -
683 --- Check if decoding was successful and print the results
684 -if type(data) == 'table' then
685 - print("json decode:")
686 - -- Iterate through all key-value pairs in the decoded table
687 - for k, v in pairs(data) do
688 - print(k, v)
689 - end
690 -end
691 --- Write the decoded values back to corresponding address tags
692 -addr_setbit("@bit_copy", data["bit"] or 0) -- Write bit value
693 -addr_setword("@word_copy", data["word"] or 0) -- Write word value
694 -addr_setfloat("@floating number_copy", data["float"] or 0) -- Write float value
695 -addr_setstring("@string_copy", data["str"], 10) -- Write string value
696 -
697 -print("-----------------------")
698 -
699 -end
700 -{{/code}}
701 -
702 -(% class="wikigeneratedid" %)
703 -**Result**
704 -
705 -(% style="text-align:center" %)
706 -[[image:1762306008662-362.png||height="485" width="1228"]]
707 -
708 -
709 709  = **2 Third part server** =
710 710  
711 711  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.
1757387490907-390.png
Author
... ... @@ -1,1 +1,0 @@
1 -XWiki.DevinChen
Size
... ... @@ -1,1 +1,0 @@
1 -47.9 KB
Content
1757401730077-284.png
Author
... ... @@ -1,1 +1,0 @@
1 -XWiki.DevinChen
Size
... ... @@ -1,1 +1,0 @@
1 -92.2 KB
Content
1762306008662-362.png
Author
... ... @@ -1,1 +1,0 @@
1 -XWiki.DevinChen
Size
... ... @@ -1,1 +1,0 @@
1 -66.9 KB
Content
PixPin_2025-11-05_09-21-33.png
Author
... ... @@ -1,1 +1,0 @@
1 -XWiki.DevinChen
Size
... ... @@ -1,1 +1,0 @@
1 -65.8 KB
Content
PixPin_2025-11-05_09-23-03.png
Author
... ... @@ -1,1 +1,0 @@
1 -XWiki.DevinChen
Size
... ... @@ -1,1 +1,0 @@
1 -60.9 KB
Content