Changes for page Demo for Smart Office, Factory
Last modified by Hera Guo on 2024/11/11 17:08
Summary
-
Page properties (1 modified, 0 added, 0 removed)
-
Attachments (0 modified, 0 added, 21 removed)
- 1730857191863-514.png
- 1730857537965-184.png
- 1730857750749-240.png
- 1730862483514-101.png
- 1730862584519-902.png
- 1730863708259-750.png
- 1730863750414-979.png
- 1730864045747-876.png
- 1730864077395-395.png
- 1730864117808-484.png
- 1730864159071-895.png
- 1730864207037-477.png
- 1730864250506-111.png
- 1730864293216-991.png
- 1730864331859-740.png
- 1730864460314-611.png
- 1730864617480-221.png
- 1730864676542-406.png
- 1730864784118-474.png
- 1730865053380-293.png
- 屏幕截图 2024-11-04 135045.png
Details
- Page properties
-
- Content
-
... ... @@ -1,4 +1,4 @@ 1 - 1 +**Table of Contents:** 2 2 3 3 {{toc/}} 4 4 ... ... @@ -5,9 +5,6 @@ 5 5 6 6 7 7 8 - 9 - 10 - 11 11 = 1. About this demo = 12 12 13 13 This demo is to show the installation for various sensors in Dragino Office, Dragino Facotry & ThingsEye Office. It covers various types of sensors such as Temperature, Humidity, CO2, Water Flow, Vibration & many many. ... ... @@ -60,7 +60,7 @@ 60 60 61 61 **device:**This section displays the specific information collected by the device, and different types of sensors have different display interfaces 62 62 63 -[[image: 屏幕截图 2024-11-04 134645.png]]60 +[[image:1730699212334-960.png]] 64 64 65 65 First floor: 66 66 ... ... @@ -85,7 +85,7 @@ 85 85 86 86 High Temperature、Low Temperature、High humidity、Low humidity、Low voltage、Device Disconnected 87 87 88 -[[image: 屏幕截图 2024-11-04 135045.png]]85 +[[image:1730699566023-958.png]] 89 89 90 90 = 4.configuration details = 91 91 ... ... @@ -95,48 +95,58 @@ 95 95 96 96 === 4.1.1.Data source (Entity aliases) === 97 97 98 - detail:Obtaindata based on dashboard status95 +Asset map: 99 99 97 +[[image:1730709409941-536.png||height="729" width="1440"]] 98 + 99 +detail: 100 + 100 100 [[image:1730709424998-915.png||height="729" width="1436"]] 101 101 102 - Alarm:Obtain alarm information103 +devid: 103 103 105 +[[image:1730709442773-502.png||height="738" width="1434"]] 106 + 107 +State: 108 + 109 +[[image:1730709461297-207.png||height="706" width="1434"]] 110 + 111 +Alarm: 112 + 104 104 [[image:1730709479828-595.png||height="696" width="1435"]] 105 105 106 -Dragino&GXHL,Ltd: Obtain data through asset types115 +Dragino&GXHL,Ltd: 107 107 108 108 [[image:1730709511861-439.png||height="714" width="1435"]] 109 109 110 -Selected Supermarket: Retrieve devices by device type119 +Selected Supermarket: 111 111 112 112 [[image:1730709527720-418.png||height="751" width="1433"]] 113 113 114 -Supermarket Devices:Obtain data through device type123 +Supermarkets: 115 115 116 -[[image:173070955 5797-383.png||height="726" width="1434"]]125 +[[image:1730709542597-321.png||height="734" width="1435"]] 117 117 118 - LHT65N Device:Obtaindata based on devicetype127 +Supermarket Devices: 119 119 120 -[[image:1730 857191863-514.png||height="725" width="1433"]]129 +[[image:1730709555797-383.png||height="726" width="1434"]] 121 121 131 + 122 122 === 4.1.2.Page Configuration === 123 123 124 124 ==== 4.1.2.1、Configure the interface of the third layer Davies. ==== 125 125 136 + 126 126 ==== 4.1.2.2、Configure the interface of the second layer asset ==== 127 127 128 - ===== 4.1.2.2.1Equipment distribution diagram:=====139 +**Equipment distribution diagram:** 129 129 130 130 **Data:** 131 131 132 132 [[image:1730770392454-317.png||height="745" width="1439"]] 133 133 134 - **Appearannce:**In this module, we needto arrange our devices in the correspondingpositions anduse icons to display our devices. Therefore, inthe Appearanceinterface, we need toconfigure them145 +Tooltip function: 135 135 136 -**Tooltip function:**This module displays the current information of the device 137 - 138 -[[image:1730857537965-184.png]] 139 - 140 140 {{code language="none"}} 141 141 var msg = data 142 142 if(msg.Label=="gateway" && msg.type == "gateway"){ ... ... @@ -162,12 +162,8 @@ 162 162 } 163 163 {{/code}} 164 164 165 -(% class="wikigeneratedid" id="HMarkerimagefunctionFF1A" %) 166 -**Marker image function:**This module can display different icons based on different types of sensors and their status to achieve its functionality 172 +==== Marker image function: ==== 167 167 168 -(% class="wikigeneratedid" %) 169 -[[image:1730857750749-240.png]] 170 - 171 171 {{code language="none"}} 172 172 var res 173 173 var msg = data ... ... @@ -257,11 +257,9 @@ 257 257 return res; 258 258 {{/code}} 259 259 260 -(% class="wikigeneratedid" %) 261 -[[image:1730770875793-351.png||height="799" width="1474"]] 263 +==== [[image:1730770875793-351.png]] ==== 262 262 263 -(% class="wikigeneratedid" %) 264 -**Actions:**We need to implement the function of entering the details interface through the corresponding device icon, so in this module, we need to add actions to achieve redirection 265 +==== Actions ==== 265 265 266 266 {{code language="none"}} 267 267 var entitySubType; ... ... @@ -320,24 +320,20 @@ 320 320 321 321 {{/code}} 322 322 323 -[[image:1730771103096-522.png ||height="815" width="1503"]]324 +[[image:1730771103096-522.png]] 324 324 325 - ===== 4.1.2.2.2Device List=====326 +Device List 326 326 327 -(% class="wikigeneratedid" id="HDataFF1A" %) 328 -**Data:** 328 +Data: 329 329 330 -[[image:1730771199343-553.png ||height="802" width="1501"]]330 +[[image:1730771199343-553.png]] 331 331 332 - **Actions:**Equipment distribution diagram: In this module, functions need to be implemented such as adding devices, editing devices, deleting devices, and jumping to the device details page. Therefore, the following actions need to be added:332 +Actions: 333 333 334 334 [[image:1730771228766-212.png]] 335 335 336 -(% class="wikigeneratedid" id="HEditdeviceFF1A" %) 337 -**Edit device:**Implementation function: Device editing 336 +==== Edit device: ==== 338 338 339 -[[image:1730771256045-238.png]] 340 - 341 341 {{code language="none"}} 342 342 let $injector = widgetContext.$scope.$injector; 343 343 let customDialog = $injector.get(widgetContext.servicesMap.get('customDialog')); ... ... @@ -434,9 +434,9 @@ 434 434 } 435 435 {{/code}} 436 436 437 - **Deletedevice:**Implementation function: Device deletion434 +==== [[image:1730771256045-238.png]] ==== 438 438 439 - [[image:1730771318657-502.png]]436 +Delete device: 440 440 441 441 {{code language="none"}} 442 442 let $injector = widgetContext.$scope.$injector; ... ... @@ -467,9 +467,9 @@ 467 467 468 468 {{/code}} 469 469 470 - **jump:I**mplementation function: Jump to the device details page467 +[[image:1730771318657-502.png]] 471 471 472 - [[image:1730771386258-676.png]]469 +jump 473 473 474 474 {{code language="none"}} 475 475 console.log(entityName) ... ... @@ -528,10 +528,9 @@ 528 528 } 529 529 {{/code}} 530 530 531 -(% class="wikigeneratedid" id="H-1" %) 532 -**Add device:**Implementation function: Add device 528 +==== [[image:1730771386258-676.png]] ==== 533 533 534 - [[image:1730771441589-122.png]]530 +Add device: 535 535 536 536 {{code language="none"}} 537 537 let $injector = widgetContext.$scope.$injector; ... ... @@ -596,29 +596,27 @@ 596 596 } 597 597 {{/code}} 598 598 599 -==== ==== 595 +==== [[image:1730771441589-122.png]] ==== 600 600 601 -==== =4.1.2.2.3Asset Alarm:=====597 +==== Asset Alarm: ==== 602 602 603 - **Data:**599 +Data: 604 604 605 -[[image:1730771504586-433.png ||height="762" width="1431"]]601 +[[image:1730771504586-433.png]] 606 606 607 607 ==== 4.1.2.3、Configure the first layer menu interface ==== 608 608 609 - ===== 4.1.2.3.1Map:=====605 +**Map:** 610 610 611 - **Data:**607 +Data: 612 612 613 -===== ===== 614 - 615 615 [[image:1730710271230-716.png||height="729" width="1427"]] 616 616 617 - **Actions**:The map interface has two actions, among which Select supermarket can refresh the device list and related alarms on the right side to enter the location, and Supermarket_detail can jump to the second level physical interface to view the details of the location based on the selected location611 +Actions:The map interface has two actions, among which Select supermarket can refresh the device list and related alarms on the right side to enter the location, and Supermarket_detail can jump to the second level physical interface to view the details of the location based on the selected location 618 618 619 619 [[image:1730710850458-781.png||height="770" width="1429"]] 620 620 621 - **Select supermarket:**Implementation function: Refresh the side page615 +Select supermarket: 622 622 623 623 {{code language="none"}} 624 624 var params = widgetContext.stateController.getStateParams(); ... ... @@ -633,7 +633,7 @@ 633 633 634 634 [[image:1730710875401-848.png||height="767" width="1429"]] 635 635 636 - **Supermarket_detail:**Implementation function: Jump to the asset details page630 +Supermarket_detail: 637 637 638 638 {{code language="none"}} 639 639 var params = JSON.parse(JSON.stringify(widgetContext.stateController.getStateParams())); ... ... @@ -650,9 +650,7 @@ 650 650 651 651 [[image:1730710990334-601.png||height="772" width="1433"]] 652 652 653 -* ((( 654 -In this demo, exclusive map icons were set as follows: 655 -))) 647 +* In this demo, exclusive map icons were set as follows: 656 656 657 657 {{code language="none"}} 658 658 var res = { ... ... @@ -664,418 +664,23 @@ 664 664 665 665 [[image:1730710395303-672.png||height="771" width="1438"]] 666 666 667 - ===== 4.1.2.3.2Asset List:=====659 +Asset List: 668 668 669 -**Data:** 670 670 671 671 [[image:1730710693066-349.png||height="772" width="1439"]] 672 672 673 - **Actions:**The Assets List interface has an action, which is the same as the Supermarket_details in the Map. You can jump to the second level entity interface to view the details of the selected location based on its location664 +Actions:The Assets List interface has an action, which is the same as the Supermarket_details in the Map. You can jump to the second level entity interface to view the details of the selected location based on its location 674 674 675 675 [[image:1730712335338-750.png||height="751" width="1423"]] 676 676 677 677 [[image:1730712473941-913.png||height="781" width="1422"]] 678 678 679 - ===== 4.1.2.3.3All Alarms:=====670 +All Alarms: 680 680 681 681 [[image:1730712539209-554.png||height="764" width="1424"]] 682 682 683 683 == 4.2 Alarm configuration details == 684 684 685 -=== 4.2.1 High temperature === 686 - 687 -Creat: 688 - 689 -[[image:1730862483514-101.png||height="750" width="1407"]] 690 - 691 -Clear: 692 - 693 -[[image:1730862584519-902.png||height="758" width="1404"]] 694 - 695 -=== 4.2.2 Low Temperature === 696 - 697 -Creat: 698 - 699 -[[image:1730863708259-750.png||height="752" width="1403"]] 700 - 701 -Clear: 702 - 703 -[[image:1730863750414-979.png||height="746" width="1403"]] 704 - 705 -=== 4.2.3 High humidity === 706 - 707 -Creat: 708 - 709 -[[image:1730864045747-876.png||height="752" width="1396"]] 710 - 711 -Clear: 712 - 713 -[[image:1730864077395-395.png||height="735" width="1393"]] 714 - 715 -=== 4.2.4 Low humidity === 716 - 717 -Creat: 718 - 719 -[[image:1730864117808-484.png||height="741" width="1392"]] 720 - 721 -Clear: 722 - 723 -[[image:1730864159071-895.png||height="745" width="1392"]] 724 - 725 -=== 4.2.5 Low voltage === 726 - 727 -Creat: 728 - 729 -[[image:1730864207037-477.png||height="740" width="1388"]] 730 - 731 -Clear: 732 - 733 -[[image:1730864250506-111.png||height="735" width="1389"]] 734 - 735 -=== 4.2.6 Device Disconnected === 736 - 737 -Creat: 738 - 739 -[[image:1730864293216-991.png||height="739" width="1387"]] 740 - 741 -Clear: 742 - 743 -[[image:1730864331859-740.png||height="735" width="1385"]] 744 - 745 745 == 4.3 Rule chain configuration details == 746 746 747 -[[image:1730864784118-474.png]] 748 - 749 -**Script:**Email configuration for sending device alarm information 750 - 751 -[[image:1730864676542-406.png||height="732" width="1384"]] 752 - 753 -{{code language="none"}} 754 -function locatime(timenumber){ 755 - var date = new Date(timenumber) 756 - return date.toLocaleDateString() + ' ' + date.toLocaleTimeString() 757 -} 758 -var name = msg.name 759 -var devicename = msg.originatorName 760 -var label = msg.originatorLabel 761 -var status = msg.status 762 -var detaildata =JSON.parse(msg.details.data) 763 -var tempswitch 764 - 765 -if (name != "Device Disconnected") { 766 - //detaildata=JSON.parse(msg.details.data) 767 - if (detaildata.Temperature_alarm_switch == true) { 768 - tempswitch = "open" 769 - } else { 770 - tempswitch = "close" 771 - } 772 - var humswitch 773 - if (detaildata.Humidity_alarm_switch == true) { 774 - humswitch = "open" 775 - } else { 776 - humswitch = "close" 777 - } 778 - var batswitch 779 - if (detaildata.Voltage_alarm_switch == true) { 780 - batswitch = "open" 781 - } else { 782 - batswitch = "close" 783 - } 784 - var str2 = "<p>-- Temperature alarm switch status: " + 785 - tempswitch + "</p>" + 786 - "<p>-- Humidity alarm switch status: " + humswitch + 787 - "</p>" + 788 - "<p>-- Voltage alarm switch status: " + batswitch 789 -} 790 - 791 -if (name == "High Temperature" && status == 792 - "ACTIVE_UNACK") { 793 - var emailstr = 794 - "<div><p><span style='color: black; font-weight: bold'>" + 795 - "Device " + label + " has alarm:</span></p>" + 796 - "<p><span style='color: red; font-weight: bold'>-- High Temperature Alarm</span></p>" + 797 - "<p>-- Current Temperature : " + detaildata 798 - .TempC_SHT + "</p><br>" + 799 - "<p>Device Configure:</p>" + 800 - "<p>-- Temperature Threshold : min: " + detaildata 801 - .Low_temperature_alarm + ", max: " + detaildata 802 - .High_temperature_alarm + "</p>" + 803 - "<p>-- Humidity Threshold: min: " + detaildata 804 - .Low_humidity_alarm + ", max:" + detaildata 805 - .High_humidity_alarm + "</p>" + 806 - "<p>-- Battery threshold: min: " + detaildata 807 - .Low_voltage_alarm + "</p>" + str2 + "</div>" 808 - return { 809 - msg: { 810 - "data": emailstr 811 - }, 812 - metadata: metadata, 813 - msgType: msgType 814 - }; 815 -} else if (name == "Low Temperature" && status == 816 - "ACTIVE_UNACK") { 817 - var emailstr = 818 - "<div><p><span style='color: black; font-weight: bold'>" + 819 - "Device " + label + " has alarm:</span></p>" + 820 - "<p><span style='color: red; font-weight: bold'>-- Low Temperature Alarm</span></p>" + 821 - "<p>-- Current Temperature : " + detaildata 822 - .TempC_SHT + "</p><br>" + 823 - "<p>Device Configure:</p>" + 824 - "<p>-- Temperature Threshold : min: " + detaildata 825 - .Low_temperature_alarm + ", max: " + detaildata 826 - .High_temperature_alarm + "</p>" + 827 - "<p>-- Humidity Threshold: min: " + detaildata 828 - .Low_humidity_alarm + ", max:" + detaildata 829 - .High_humidity_alarm + "</p>" + 830 - "<p>-- Battery threshold: min: " + detaildata 831 - .Low_voltage_alarm + "</p>" + str2 + "</div>" 832 - 833 - return { 834 - msg: { 835 - "data": emailstr 836 - }, 837 - metadata: metadata, 838 - msgType: msgType 839 - }; 840 - 841 -} else if (name == "Device Disconnected" && status == 842 - "ACTIVE_UNACK") { 843 - var time1 = locatime(Number(detaildata.lastActivityTime)) 844 - //var time1 = detaildata.lastActivityTime 845 - // var chazhi = parseInt((detaildata.inactivityAlarmTime-detaildata.lastActivityTime)/1000/60) 846 - // var emailstr = 847 - // "<div><p><span style='color: red; font-weight: bold'>" + 848 - // "Device " + label + " has Alarm</span></p><p>Last activity time: "+time1+"</p><p>Last Uplink: 21"+"minutes ago</p></div>" 849 - 850 - var emailstr ="Device " + label + " has Alarm##Last activity time: "+time1+"##Last Uplink: 21minutes ago" 851 - var newType = "POST_TELEMETRY_REQUEST" 852 - return { 853 - msg:emailstr, 854 - metadata: metadata, 855 - msgType: newType 856 - } 857 -} else if (name == "High humidity" && status == 858 - "ACTIVE_UNACK") { 859 - var emailstr = 860 - "<div><p><span style='color: black; font-weight: bold'>" + 861 - "Device " + label + " has alarm:</span></p>" + 862 - "<p><span style='color: red; font-weight: bold'>-- High Humidity Alarm</span></p>" + 863 - "<p>-- Current Temperature : " + detaildata 864 - .Hum_SHT + "</p><br>" + 865 - "<p>Device Configure:</p>" + 866 - "<p>-- Temperature Threshold : min: " + detaildata 867 - .Low_temperature_alarm + ", max: " + detaildata 868 - .High_temperature_alarm + "</p>" + 869 - "<p>-- Humidity Threshold: min: " + detaildata 870 - .Low_humidity_alarm + ", max:" + detaildata 871 - .High_humidity_alarm + "</p>" + 872 - "<p>-- Battery threshold: min: " + detaildata 873 - .Low_voltage_alarm + "</p>" + str2 + "</div>" 874 - 875 - return { 876 - msg: { 877 - "data": emailstr 878 - }, 879 - metadata: metadata, 880 - msgType: msgType 881 - }; 882 -} else if (name == "Low humidity" && status == 883 - "ACTIVE_UNACK") { 884 - var emailstr = 885 - "<div><p><span style='color: black; font-weight: bold'>" + 886 - "Device " + label + " has alarm:</span></p>" + 887 - "<p><span style='color: red; font-weight: bold'>-- Low Humidity Alarm</span></p>" + 888 - "<p>-- Current Temperature : " + detaildata 889 - .Hum_SHT + "</p><br>" + 890 - "<p>Device Configure:</p>" + 891 - "<p>-- Temperature Threshold : min: " + detaildata 892 - .Low_temperature_alarm + ", max: " + detaildata 893 - .High_temperature_alarm + "</p>" + 894 - "<p>-- Humidity Threshold: min: " + detaildata 895 - .Low_humidity_alarm + ", max:" + detaildata 896 - .High_humidity_alarm + "</p>" + 897 - "<p>-- Battery threshold: min: " + detaildata 898 - .Low_voltage_alarm + "</p>" + str2 + "</div>" 899 - 900 - return { 901 - msg: { 902 - "data": emailstr 903 - }, 904 - metadata: metadata, 905 - msgType: msgType 906 - }; 907 -} else if (name == "Low voltage" && status == 908 - "ACTIVE_UNACK") { 909 - var emailstr = 910 - "<div><p><span style='color: black; font-weight: bold'>" + 911 - "Device " + label + " has alarm:</span></p>" + 912 - "<p><span style='color: red; font-weight: bold'>-- Low Voltage Alarm</span></p>" + 913 - "<p>-- Current Temperature : " + detaildata.BatV + 914 - "</p><br>" + 915 - "<p>Device Configure:</p>" + 916 - "<p>-- Temperature Threshold : min: " + detaildata 917 - .Low_temperature_alarm + ", max: " + detaildata 918 - .High_temperature_alarm + "</p>" + 919 - "<p>-- Humidity Threshold: min: " + detaildata 920 - .Low_humidity_alarm + ", max:" + detaildata 921 - .High_humidity_alarm + "</p>" + 922 - "<p>-- Battery threshold: min: " + detaildata 923 - .Low_voltage_alarm + "</p>" + str2 + "</div>" 924 - 925 - return { 926 - msg: { 927 - "data": emailstr 928 - }, 929 - metadata: metadata, 930 - msgType: msgType 931 - }; 932 -} else if (name == "High Temperature" && status == 933 - "CLEARED_UNACK") { 934 - var emailstr = 935 - "<div><p><span style='color: green; font-weight: bold'>Device " + 936 - label + 937 - " High Temperature Alarm Cleared</span></p>" + 938 - "<p>-- Current Temperature : " + detaildata 939 - .TempC_SHT + "</p><br>" + 940 - "<p>Device Configure:</p>" + 941 - "<p>-- Temperature Threshold : min: " + detaildata 942 - .Low_temperature_alarm + ", max: " + detaildata 943 - .High_temperature_alarm + "</p>" + 944 - "<p>-- Humidity Threshold: min: " + detaildata 945 - .Low_humidity_alarm + ", max:" + detaildata 946 - .High_humidity_alarm + "</p>" + 947 - "<p>-- Battery threshold: min: " + detaildata 948 - .Low_voltage_alarm + "</p>" + str2 + "</div>" 949 - 950 - return { 951 - msg: { 952 - "data": emailstr 953 - }, 954 - metadata: metadata, 955 - msgType: msgType 956 - }; 957 -} else if (name == "Low Temperature" && status == 958 - "CLEARED_UNACK") { 959 - var emailstr = 960 - "<div><p><span style='color: green; font-weight: bold'>Device " + 961 - label + 962 - " Low Temperature Alarm Cleared</span></p>" + 963 - "<p>-- Current Temperature : " + detaildata 964 - .TempC_SHT + "</p><br>" + 965 - "<p>Device Configure:</p>" + 966 - "<p>-- Temperature Threshold : min: " + detaildata 967 - .Low_temperature_alarm + ", max: " + detaildata 968 - .High_temperature_alarm + "</p>" + 969 - "<p>-- Humidity Threshold: min: " + detaildata 970 - .Low_humidity_alarm + ", max:" + detaildata 971 - .High_humidity_alarm + "</p>" + 972 - "<p>-- Battery threshold: min: " + detaildata 973 - .Low_voltage_alarm + "</p>" + str2 + "</div>" 974 - 975 - return { 976 - msg: { 977 - "data": emailstr 978 - }, 979 - metadata: metadata, 980 - msgType: msgType 981 - }; 982 -} else if (name == "High humidity" && status == 983 - "CLEARED_UNACK") { 984 - var emailstr = 985 - "<div><p><span style='color: green; font-weight: bold'>Device " + 986 - label + " High Humidity Alarm Cleared</span></p>" + 987 - "<p>-- Current Temperature : " + detaildata 988 - .Hum_SHT + "</p><br>" + 989 - "<p>Device Configure:</p>" + 990 - "<p>-- Temperature Threshold : min: " + detaildata 991 - .Low_temperature_alarm + ", max: " + detaildata 992 - .High_temperature_alarm + "</p>" + 993 - "<p>-- Humidity Threshold: min: " + detaildata 994 - .Low_humidity_alarm + ", max:" + detaildata 995 - .High_humidity_alarm + "</p>" + 996 - "<p>-- Battery threshold: min: " + detaildata 997 - .Low_voltage_alarm + "</p>" + str2 + "</div>" 998 - 999 - return { 1000 - msg: { 1001 - "data": emailstr 1002 - }, 1003 - metadata: metadata, 1004 - msgType: msgType 1005 - }; 1006 -} else if (name == "Low humidity" && status == 1007 - "CLEARED_UNACK") { 1008 - var emailstr = 1009 - "<div><p><span style='color: green; font-weight: bold'>Device " + 1010 - label + " Low Humidity Alarm Cleared</span></p>" + 1011 - "<p>-- Current Temperature : " + detaildata 1012 - .Hum_SHT + "</p><br>" + 1013 - "<p>Device Configure:</p>" + 1014 - "<p>-- Temperature Threshold : min: " + detaildata 1015 - .Low_temperature_alarm + ", max: " + detaildata 1016 - .High_temperature_alarm + "</p>" + 1017 - "<p>-- Humidity Threshold: min: " + detaildata 1018 - .Low_humidity_alarm + ", max:" + detaildata 1019 - .High_humidity_alarm + "</p>" + 1020 - "<p>-- Battery threshold: min: " + detaildata 1021 - .Low_voltage_alarm + "</p>" + str2 + "</div>" 1022 - return { 1023 - msg: { 1024 - "data": emailstr 1025 - }, 1026 - metadata: metadata, 1027 - msgType: msgType 1028 - }; 1029 -} else if (name == "Low voltage" && status == 1030 - "CLEARED_UNACK") { 1031 - 1032 - var emailstr = 1033 - "<div><p><span style='color: green; font-weight: bold'>Device " + 1034 - label + " Low Voltage Alarm Cleared</span></p>" + 1035 - "<p>-- Current Temperature : " + detaildata.BatV + 1036 - "</p><br><br>" + 1037 - "<p>Device Configure:</p>" + 1038 - "<p>-- Temperature Threshold : min: " + detaildata 1039 - .Low_temperature_alarm + ", max: " + detaildata 1040 - .High_temperature_alarm + "</p>" + 1041 - "<p>-- Humidity Threshold: min: " + detaildata 1042 - .Low_humidity_alarm + ", max:" + detaildata 1043 - .High_humidity_alarm + "</p>" + 1044 - "<p>-- Battery threshold: min: " + detaildata 1045 - .Low_voltage_alarm + "</p>" + str2 + "</div>" 1046 - 1047 - return { 1048 - msg: { 1049 - "data": emailstr 1050 - }, 1051 - metadata: metadata, 1052 - msgType: msgType 1053 - }; 1054 -} else if (name == "Device Disconnected" && status == 1055 - "CLEARED_UNACK") { 1056 - var time1 = locatime(Number(detaildata.lastActivityTime)) 1057 - //var time1 = detaildata.lastActivityTime 1058 - // var chazhi = parseInt((detaildata.inactivityAlarmTime-detaildata.lastActivityTime)/1000/60) 1059 - // var emailstr = 1060 - // "<div><p><span style='color: green; font-weight: bold'>" + 1061 - // "Device " + label + " has Alarm Cleared</span></p><p>Last activity time: "+time1+"</p></div>" 1062 - var emailstr ="Device " + label + " has Alarm Cleared##Last activity time: "+time1 1063 - var newType = "POST_TELEMETRY_REQUEST" 1064 - return { 1065 - msg: emailstr, 1066 - metadata: metadata, 1067 - msgType: newType 1068 - } 1069 -} 1070 -{{/code}} 1071 - 1072 -(% class="wikigeneratedid" %) 1073 -**Generate Report:** 1074 - 1075 -(% class="wikigeneratedid" %) 1076 -[[image:1730865053380-293.png]] 1077 - 1078 -= 5.other = 1079 - 1080 -* If you want to create a similar dashboard, after understanding the case, you can download and import the dashboard, device profiles, rule chains, etc. of the case on GitHub, and make modifications based on them. 1081 -* GitHub address:[[https:~~/~~/github.com/ThingsEye-io/te-platform/tree/main/case/Dragino%20Office%20%26%20Factory>>https://github.com/ThingsEye-io/te-platform/tree/main/case/Dragino%20Office%20%26%20Factory]] 678 += 5. =
- 1730857191863-514.png
-
- Author
-
... ... @@ -1,1 +1,0 @@ 1 -XWiki.hera - Size
-
... ... @@ -1,1 +1,0 @@ 1 -354.7 KB - Content
- 1730857537965-184.png
-
- Author
-
... ... @@ -1,1 +1,0 @@ 1 -XWiki.hera - Size
-
... ... @@ -1,1 +1,0 @@ 1 -455.1 KB - Content
- 1730857750749-240.png
-
- Author
-
... ... @@ -1,1 +1,0 @@ 1 -XWiki.hera - Size
-
... ... @@ -1,1 +1,0 @@ 1 -285.9 KB - Content
- 1730862483514-101.png
-
- Author
-
... ... @@ -1,1 +1,0 @@ 1 -XWiki.hera - Size
-
... ... @@ -1,1 +1,0 @@ 1 -195.8 KB - Content
- 1730862584519-902.png
-
- Author
-
... ... @@ -1,1 +1,0 @@ 1 -XWiki.hera - Size
-
... ... @@ -1,1 +1,0 @@ 1 -191.1 KB - Content
- 1730863708259-750.png
-
- Author
-
... ... @@ -1,1 +1,0 @@ 1 -XWiki.hera - Size
-
... ... @@ -1,1 +1,0 @@ 1 -220.1 KB - Content
- 1730863750414-979.png
-
- Author
-
... ... @@ -1,1 +1,0 @@ 1 -XWiki.hera - Size
-
... ... @@ -1,1 +1,0 @@ 1 -210.6 KB - Content
- 1730864045747-876.png
-
- Author
-
... ... @@ -1,1 +1,0 @@ 1 -XWiki.hera - Size
-
... ... @@ -1,1 +1,0 @@ 1 -208.9 KB - Content
- 1730864077395-395.png
-
- Author
-
... ... @@ -1,1 +1,0 @@ 1 -XWiki.hera - Size
-
... ... @@ -1,1 +1,0 @@ 1 -201.4 KB - Content
- 1730864117808-484.png
-
- Author
-
... ... @@ -1,1 +1,0 @@ 1 -XWiki.hera - Size
-
... ... @@ -1,1 +1,0 @@ 1 -203.0 KB - Content
- 1730864159071-895.png
-
- Author
-
... ... @@ -1,1 +1,0 @@ 1 -XWiki.hera - Size
-
... ... @@ -1,1 +1,0 @@ 1 -226.6 KB - Content
- 1730864207037-477.png
-
- Author
-
... ... @@ -1,1 +1,0 @@ 1 -XWiki.hera - Size
-
... ... @@ -1,1 +1,0 @@ 1 -215.3 KB - Content
- 1730864250506-111.png
-
- Author
-
... ... @@ -1,1 +1,0 @@ 1 -XWiki.hera - Size
-
... ... @@ -1,1 +1,0 @@ 1 -209.5 KB - Content
- 1730864293216-991.png
-
- Author
-
... ... @@ -1,1 +1,0 @@ 1 -XWiki.hera - Size
-
... ... @@ -1,1 +1,0 @@ 1 -138.5 KB - Content
- 1730864331859-740.png
-
- Author
-
... ... @@ -1,1 +1,0 @@ 1 -XWiki.hera - Size
-
... ... @@ -1,1 +1,0 @@ 1 -134.4 KB - Content
- 1730864460314-611.png
-
- Author
-
... ... @@ -1,1 +1,0 @@ 1 -XWiki.hera - Size
-
... ... @@ -1,1 +1,0 @@ 1 -256.7 KB - Content
- 1730864617480-221.png
-
- Author
-
... ... @@ -1,1 +1,0 @@ 1 -XWiki.hera - Size
-
... ... @@ -1,1 +1,0 @@ 1 -260.8 KB - Content
- 1730864676542-406.png
-
- Author
-
... ... @@ -1,1 +1,0 @@ 1 -XWiki.hera - Size
-
... ... @@ -1,1 +1,0 @@ 1 -227.7 KB - Content
- 1730864784118-474.png
-
- Author
-
... ... @@ -1,1 +1,0 @@ 1 -XWiki.hera - Size
-
... ... @@ -1,1 +1,0 @@ 1 -148.8 KB - Content
- 1730865053380-293.png
-
- Author
-
... ... @@ -1,1 +1,0 @@ 1 -XWiki.hera - Size
-
... ... @@ -1,1 +1,0 @@ 1 -46.7 KB - Content
- 屏幕截图 2024-11-04 135045.png
-
- Author
-
... ... @@ -1,1 +1,0 @@ 1 -XWiki.hera - Size
-
... ... @@ -1,1 +1,0 @@ 1 -29.4 KB - Content