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
-
... ... @@ -57,7 +57,7 @@ 57 57 58 58 **device:**This section displays the specific information collected by the device, and different types of sensors have different display interfaces 59 59 60 -[[image: 屏幕截图 2024-11-04 134645.png]]60 +[[image:1730699212334-960.png]] 61 61 62 62 First floor: 63 63 ... ... @@ -82,7 +82,7 @@ 82 82 83 83 High Temperature、Low Temperature、High humidity、Low humidity、Low voltage、Device Disconnected 84 84 85 -[[image: 屏幕截图 2024-11-04 135045.png]]85 +[[image:1730699566023-958.png]] 86 86 87 87 = 4.configuration details = 88 88 ... ... @@ -92,48 +92,58 @@ 92 92 93 93 === 4.1.1.Data source (Entity aliases) === 94 94 95 - detail:Obtaindata based on dashboard status95 +Asset map: 96 96 97 +[[image:1730709409941-536.png||height="729" width="1440"]] 98 + 99 +detail: 100 + 97 97 [[image:1730709424998-915.png||height="729" width="1436"]] 98 98 99 - Alarm:Obtain alarm information103 +devid: 100 100 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 + 101 101 [[image:1730709479828-595.png||height="696" width="1435"]] 102 102 103 -Dragino&GXHL,Ltd: Obtain data through asset types115 +Dragino&GXHL,Ltd: 104 104 105 105 [[image:1730709511861-439.png||height="714" width="1435"]] 106 106 107 -Selected Supermarket: Retrieve devices by device type119 +Selected Supermarket: 108 108 109 109 [[image:1730709527720-418.png||height="751" width="1433"]] 110 110 111 -Supermarket Devices:Obtain data through device type123 +Supermarkets: 112 112 113 -[[image:173070955 5797-383.png||height="726" width="1434"]]125 +[[image:1730709542597-321.png||height="734" width="1435"]] 114 114 115 - LHT65N Device:Obtaindata based on devicetype127 +Supermarket Devices: 116 116 117 -[[image:1730 857191863-514.png||height="725" width="1433"]]129 +[[image:1730709555797-383.png||height="726" width="1434"]] 118 118 131 + 119 119 === 4.1.2.Page Configuration === 120 120 121 121 ==== 4.1.2.1、Configure the interface of the third layer Davies. ==== 122 122 136 + 123 123 ==== 4.1.2.2、Configure the interface of the second layer asset ==== 124 124 125 - ===== 4.1.2.2.1Equipment distribution diagram:=====139 +**Equipment distribution diagram:** 126 126 127 127 **Data:** 128 128 129 129 [[image:1730770392454-317.png||height="745" width="1439"]] 130 130 131 - **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: 132 132 133 -**Tooltip function:**This module displays the current information of the device 134 - 135 -[[image:1730857537965-184.png]] 136 - 137 137 {{code language="none"}} 138 138 var msg = data 139 139 if(msg.Label=="gateway" && msg.type == "gateway"){ ... ... @@ -159,12 +159,8 @@ 159 159 } 160 160 {{/code}} 161 161 162 -(% class="wikigeneratedid" id="HMarkerimagefunctionFF1A" %) 163 -**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: ==== 164 164 165 -(% class="wikigeneratedid" %) 166 -[[image:1730857750749-240.png]] 167 - 168 168 {{code language="none"}} 169 169 var res 170 170 var msg = data ... ... @@ -254,11 +254,9 @@ 254 254 return res; 255 255 {{/code}} 256 256 257 -(% class="wikigeneratedid" %) 258 -[[image:1730770875793-351.png]] 263 +==== [[image:1730770875793-351.png]] ==== 259 259 260 -(% class="wikigeneratedid" %) 261 -**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 ==== 262 262 263 263 {{code language="none"}} 264 264 var entitySubType; ... ... @@ -319,22 +319,18 @@ 319 319 320 320 [[image:1730771103096-522.png]] 321 321 322 - ===== 4.1.2.2.2Device List=====326 +Device List 323 323 324 -(% class="wikigeneratedid" id="HDataFF1A" %) 325 -**Data:** 328 +Data: 326 326 327 327 [[image:1730771199343-553.png]] 328 328 329 - **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: 330 330 331 331 [[image:1730771228766-212.png]] 332 332 333 -(% class="wikigeneratedid" id="HEditdeviceFF1A" %) 334 -**Edit device:**Implementation function: Device editing 336 +==== Edit device: ==== 335 335 336 -[[image:1730771256045-238.png]] 337 - 338 338 {{code language="none"}} 339 339 let $injector = widgetContext.$scope.$injector; 340 340 let customDialog = $injector.get(widgetContext.servicesMap.get('customDialog')); ... ... @@ -431,9 +431,9 @@ 431 431 } 432 432 {{/code}} 433 433 434 - **Deletedevice:**Implementation function: Device deletion434 +==== [[image:1730771256045-238.png]] ==== 435 435 436 - [[image:1730771318657-502.png]]436 +Delete device: 437 437 438 438 {{code language="none"}} 439 439 let $injector = widgetContext.$scope.$injector; ... ... @@ -464,9 +464,9 @@ 464 464 465 465 {{/code}} 466 466 467 - **jump:I**mplementation function: Jump to the device details page467 +[[image:1730771318657-502.png]] 468 468 469 - [[image:1730771386258-676.png]]469 +jump 470 470 471 471 {{code language="none"}} 472 472 console.log(entityName) ... ... @@ -525,10 +525,9 @@ 525 525 } 526 526 {{/code}} 527 527 528 -(% class="wikigeneratedid" id="H-1" %) 529 -**Add device:**Implementation function: Add device 528 +==== [[image:1730771386258-676.png]] ==== 530 530 531 - [[image:1730771441589-122.png]]530 +Add device: 532 532 533 533 {{code language="none"}} 534 534 let $injector = widgetContext.$scope.$injector; ... ... @@ -593,31 +593,27 @@ 593 593 } 594 594 {{/code}} 595 595 596 -==== ==== 595 +==== [[image:1730771441589-122.png]] ==== 597 597 598 -==== =**4.1.2.2.3Asset Alarm:**=====597 +==== Asset Alarm: ==== 599 599 600 - **Data:**599 +Data: 601 601 602 602 [[image:1730771504586-433.png]] 603 603 604 604 ==== 4.1.2.3、Configure the first layer menu interface ==== 605 605 605 +**Map:** 606 606 607 +Data: 607 607 608 -===== 4.1.2.3.1 **Map:** ===== 609 - 610 -**Data:** 611 - 612 -===== ===== 613 - 614 614 [[image:1730710271230-716.png||height="729" width="1427"]] 615 615 616 - **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 617 617 618 618 [[image:1730710850458-781.png||height="770" width="1429"]] 619 619 620 - **Select supermarket:**Implementation function: Refresh the side page615 +Select supermarket: 621 621 622 622 {{code language="none"}} 623 623 var params = widgetContext.stateController.getStateParams(); ... ... @@ -632,7 +632,7 @@ 632 632 633 633 [[image:1730710875401-848.png||height="767" width="1429"]] 634 634 635 - **Supermarket_detail:**Implementation function: Jump to the asset details page630 +Supermarket_detail: 636 636 637 637 {{code language="none"}} 638 638 var params = JSON.parse(JSON.stringify(widgetContext.stateController.getStateParams())); ... ... @@ -649,9 +649,7 @@ 649 649 650 650 [[image:1730710990334-601.png||height="772" width="1433"]] 651 651 652 -* ((( 653 -In this demo, exclusive map icons were set as follows: 654 -))) 647 +* In this demo, exclusive map icons were set as follows: 655 655 656 656 {{code language="none"}} 657 657 var res = { ... ... @@ -663,13 +663,12 @@ 663 663 664 664 [[image:1730710395303-672.png||height="771" width="1438"]] 665 665 666 - ===== 4.1.2.3.1Asset List:=====659 +Asset List: 667 667 668 -**Data:** 669 669 670 670 [[image:1730710693066-349.png||height="772" width="1439"]] 671 671 672 - **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 673 673 674 674 [[image:1730712335338-750.png||height="751" width="1423"]] 675 675 ... ... @@ -681,400 +681,6 @@ 681 681 682 682 == 4.2 Alarm configuration details == 683 683 684 -=== 4.2.1 High temperature === 685 - 686 -Creat: 687 - 688 -[[image:1730862483514-101.png||height="750" width="1407"]] 689 - 690 -Clear: 691 - 692 -[[image:1730862584519-902.png||height="758" width="1404"]] 693 - 694 -=== 4.2.2 Low Temperature === 695 - 696 -Creat: 697 - 698 -[[image:1730863708259-750.png||height="752" width="1403"]] 699 - 700 -Clear: 701 - 702 -[[image:1730863750414-979.png||height="746" width="1403"]] 703 - 704 -=== 4.2.3 High humidity === 705 - 706 -Creat: 707 - 708 -[[image:1730864045747-876.png||height="752" width="1396"]] 709 - 710 -Clear: 711 - 712 -[[image:1730864077395-395.png||height="735" width="1393"]] 713 - 714 -=== 4.2.4 Low humidity === 715 - 716 -Creat: 717 - 718 -[[image:1730864117808-484.png||height="741" width="1392"]] 719 - 720 -Clear: 721 - 722 -[[image:1730864159071-895.png||height="745" width="1392"]] 723 - 724 -=== 4.2.5 Low voltage === 725 - 726 -Creat: 727 - 728 -[[image:1730864207037-477.png||height="740" width="1388"]] 729 - 730 -Clear: 731 - 732 -[[image:1730864250506-111.png||height="735" width="1389"]] 733 - 734 -=== 4.2.6 Device Disconnected === 735 - 736 -Creat: 737 - 738 -[[image:1730864293216-991.png||height="739" width="1387"]] 739 - 740 -Clear: 741 - 742 -[[image:1730864331859-740.png||height="735" width="1385"]] 743 - 744 744 == 4.3 Rule chain configuration details == 745 745 746 -[[image:1730864784118-474.png]] 747 - 748 -**Script:**Email configuration for sending device alarm information 749 - 750 -[[image:1730864676542-406.png||height="732" width="1384"]] 751 - 752 -{{code language="none"}} 753 -function locatime(timenumber){ 754 - var date = new Date(timenumber) 755 - return date.toLocaleDateString() + ' ' + date.toLocaleTimeString() 756 -} 757 -var name = msg.name 758 -var devicename = msg.originatorName 759 -var label = msg.originatorLabel 760 -var status = msg.status 761 -var detaildata =JSON.parse(msg.details.data) 762 -var tempswitch 763 - 764 -if (name != "Device Disconnected") { 765 - //detaildata=JSON.parse(msg.details.data) 766 - if (detaildata.Temperature_alarm_switch == true) { 767 - tempswitch = "open" 768 - } else { 769 - tempswitch = "close" 770 - } 771 - var humswitch 772 - if (detaildata.Humidity_alarm_switch == true) { 773 - humswitch = "open" 774 - } else { 775 - humswitch = "close" 776 - } 777 - var batswitch 778 - if (detaildata.Voltage_alarm_switch == true) { 779 - batswitch = "open" 780 - } else { 781 - batswitch = "close" 782 - } 783 - var str2 = "<p>-- Temperature alarm switch status: " + 784 - tempswitch + "</p>" + 785 - "<p>-- Humidity alarm switch status: " + humswitch + 786 - "</p>" + 787 - "<p>-- Voltage alarm switch status: " + batswitch 788 -} 789 - 790 -if (name == "High Temperature" && status == 791 - "ACTIVE_UNACK") { 792 - var emailstr = 793 - "<div><p><span style='color: black; font-weight: bold'>" + 794 - "Device " + label + " has alarm:</span></p>" + 795 - "<p><span style='color: red; font-weight: bold'>-- High Temperature Alarm</span></p>" + 796 - "<p>-- Current Temperature : " + detaildata 797 - .TempC_SHT + "</p><br>" + 798 - "<p>Device Configure:</p>" + 799 - "<p>-- Temperature Threshold : min: " + detaildata 800 - .Low_temperature_alarm + ", max: " + detaildata 801 - .High_temperature_alarm + "</p>" + 802 - "<p>-- Humidity Threshold: min: " + detaildata 803 - .Low_humidity_alarm + ", max:" + detaildata 804 - .High_humidity_alarm + "</p>" + 805 - "<p>-- Battery threshold: min: " + detaildata 806 - .Low_voltage_alarm + "</p>" + str2 + "</div>" 807 - return { 808 - msg: { 809 - "data": emailstr 810 - }, 811 - metadata: metadata, 812 - msgType: msgType 813 - }; 814 -} else if (name == "Low Temperature" && status == 815 - "ACTIVE_UNACK") { 816 - var emailstr = 817 - "<div><p><span style='color: black; font-weight: bold'>" + 818 - "Device " + label + " has alarm:</span></p>" + 819 - "<p><span style='color: red; font-weight: bold'>-- Low Temperature Alarm</span></p>" + 820 - "<p>-- Current Temperature : " + detaildata 821 - .TempC_SHT + "</p><br>" + 822 - "<p>Device Configure:</p>" + 823 - "<p>-- Temperature Threshold : min: " + detaildata 824 - .Low_temperature_alarm + ", max: " + detaildata 825 - .High_temperature_alarm + "</p>" + 826 - "<p>-- Humidity Threshold: min: " + detaildata 827 - .Low_humidity_alarm + ", max:" + detaildata 828 - .High_humidity_alarm + "</p>" + 829 - "<p>-- Battery threshold: min: " + detaildata 830 - .Low_voltage_alarm + "</p>" + str2 + "</div>" 831 - 832 - return { 833 - msg: { 834 - "data": emailstr 835 - }, 836 - metadata: metadata, 837 - msgType: msgType 838 - }; 839 - 840 -} else if (name == "Device Disconnected" && status == 841 - "ACTIVE_UNACK") { 842 - var time1 = locatime(Number(detaildata.lastActivityTime)) 843 - //var time1 = detaildata.lastActivityTime 844 - // var chazhi = parseInt((detaildata.inactivityAlarmTime-detaildata.lastActivityTime)/1000/60) 845 - // var emailstr = 846 - // "<div><p><span style='color: red; font-weight: bold'>" + 847 - // "Device " + label + " has Alarm</span></p><p>Last activity time: "+time1+"</p><p>Last Uplink: 21"+"minutes ago</p></div>" 848 - 849 - var emailstr ="Device " + label + " has Alarm##Last activity time: "+time1+"##Last Uplink: 21minutes ago" 850 - var newType = "POST_TELEMETRY_REQUEST" 851 - return { 852 - msg:emailstr, 853 - metadata: metadata, 854 - msgType: newType 855 - } 856 -} else if (name == "High humidity" && status == 857 - "ACTIVE_UNACK") { 858 - var emailstr = 859 - "<div><p><span style='color: black; font-weight: bold'>" + 860 - "Device " + label + " has alarm:</span></p>" + 861 - "<p><span style='color: red; font-weight: bold'>-- High Humidity Alarm</span></p>" + 862 - "<p>-- Current Temperature : " + detaildata 863 - .Hum_SHT + "</p><br>" + 864 - "<p>Device Configure:</p>" + 865 - "<p>-- Temperature Threshold : min: " + detaildata 866 - .Low_temperature_alarm + ", max: " + detaildata 867 - .High_temperature_alarm + "</p>" + 868 - "<p>-- Humidity Threshold: min: " + detaildata 869 - .Low_humidity_alarm + ", max:" + detaildata 870 - .High_humidity_alarm + "</p>" + 871 - "<p>-- Battery threshold: min: " + detaildata 872 - .Low_voltage_alarm + "</p>" + str2 + "</div>" 873 - 874 - return { 875 - msg: { 876 - "data": emailstr 877 - }, 878 - metadata: metadata, 879 - msgType: msgType 880 - }; 881 -} else if (name == "Low humidity" && status == 882 - "ACTIVE_UNACK") { 883 - var emailstr = 884 - "<div><p><span style='color: black; font-weight: bold'>" + 885 - "Device " + label + " has alarm:</span></p>" + 886 - "<p><span style='color: red; font-weight: bold'>-- Low Humidity Alarm</span></p>" + 887 - "<p>-- Current Temperature : " + detaildata 888 - .Hum_SHT + "</p><br>" + 889 - "<p>Device Configure:</p>" + 890 - "<p>-- Temperature Threshold : min: " + detaildata 891 - .Low_temperature_alarm + ", max: " + detaildata 892 - .High_temperature_alarm + "</p>" + 893 - "<p>-- Humidity Threshold: min: " + detaildata 894 - .Low_humidity_alarm + ", max:" + detaildata 895 - .High_humidity_alarm + "</p>" + 896 - "<p>-- Battery threshold: min: " + detaildata 897 - .Low_voltage_alarm + "</p>" + str2 + "</div>" 898 - 899 - return { 900 - msg: { 901 - "data": emailstr 902 - }, 903 - metadata: metadata, 904 - msgType: msgType 905 - }; 906 -} else if (name == "Low voltage" && status == 907 - "ACTIVE_UNACK") { 908 - var emailstr = 909 - "<div><p><span style='color: black; font-weight: bold'>" + 910 - "Device " + label + " has alarm:</span></p>" + 911 - "<p><span style='color: red; font-weight: bold'>-- Low Voltage Alarm</span></p>" + 912 - "<p>-- Current Temperature : " + detaildata.BatV + 913 - "</p><br>" + 914 - "<p>Device Configure:</p>" + 915 - "<p>-- Temperature Threshold : min: " + detaildata 916 - .Low_temperature_alarm + ", max: " + detaildata 917 - .High_temperature_alarm + "</p>" + 918 - "<p>-- Humidity Threshold: min: " + detaildata 919 - .Low_humidity_alarm + ", max:" + detaildata 920 - .High_humidity_alarm + "</p>" + 921 - "<p>-- Battery threshold: min: " + detaildata 922 - .Low_voltage_alarm + "</p>" + str2 + "</div>" 923 - 924 - return { 925 - msg: { 926 - "data": emailstr 927 - }, 928 - metadata: metadata, 929 - msgType: msgType 930 - }; 931 -} else if (name == "High Temperature" && status == 932 - "CLEARED_UNACK") { 933 - var emailstr = 934 - "<div><p><span style='color: green; font-weight: bold'>Device " + 935 - label + 936 - " High Temperature Alarm Cleared</span></p>" + 937 - "<p>-- Current Temperature : " + detaildata 938 - .TempC_SHT + "</p><br>" + 939 - "<p>Device Configure:</p>" + 940 - "<p>-- Temperature Threshold : min: " + detaildata 941 - .Low_temperature_alarm + ", max: " + detaildata 942 - .High_temperature_alarm + "</p>" + 943 - "<p>-- Humidity Threshold: min: " + detaildata 944 - .Low_humidity_alarm + ", max:" + detaildata 945 - .High_humidity_alarm + "</p>" + 946 - "<p>-- Battery threshold: min: " + detaildata 947 - .Low_voltage_alarm + "</p>" + str2 + "</div>" 948 - 949 - return { 950 - msg: { 951 - "data": emailstr 952 - }, 953 - metadata: metadata, 954 - msgType: msgType 955 - }; 956 -} else if (name == "Low Temperature" && status == 957 - "CLEARED_UNACK") { 958 - var emailstr = 959 - "<div><p><span style='color: green; font-weight: bold'>Device " + 960 - label + 961 - " Low Temperature Alarm Cleared</span></p>" + 962 - "<p>-- Current Temperature : " + detaildata 963 - .TempC_SHT + "</p><br>" + 964 - "<p>Device Configure:</p>" + 965 - "<p>-- Temperature Threshold : min: " + detaildata 966 - .Low_temperature_alarm + ", max: " + detaildata 967 - .High_temperature_alarm + "</p>" + 968 - "<p>-- Humidity Threshold: min: " + detaildata 969 - .Low_humidity_alarm + ", max:" + detaildata 970 - .High_humidity_alarm + "</p>" + 971 - "<p>-- Battery threshold: min: " + detaildata 972 - .Low_voltage_alarm + "</p>" + str2 + "</div>" 973 - 974 - return { 975 - msg: { 976 - "data": emailstr 977 - }, 978 - metadata: metadata, 979 - msgType: msgType 980 - }; 981 -} else if (name == "High humidity" && status == 982 - "CLEARED_UNACK") { 983 - var emailstr = 984 - "<div><p><span style='color: green; font-weight: bold'>Device " + 985 - label + " High Humidity Alarm Cleared</span></p>" + 986 - "<p>-- Current Temperature : " + detaildata 987 - .Hum_SHT + "</p><br>" + 988 - "<p>Device Configure:</p>" + 989 - "<p>-- Temperature Threshold : min: " + detaildata 990 - .Low_temperature_alarm + ", max: " + detaildata 991 - .High_temperature_alarm + "</p>" + 992 - "<p>-- Humidity Threshold: min: " + detaildata 993 - .Low_humidity_alarm + ", max:" + detaildata 994 - .High_humidity_alarm + "</p>" + 995 - "<p>-- Battery threshold: min: " + detaildata 996 - .Low_voltage_alarm + "</p>" + str2 + "</div>" 997 - 998 - return { 999 - msg: { 1000 - "data": emailstr 1001 - }, 1002 - metadata: metadata, 1003 - msgType: msgType 1004 - }; 1005 -} else if (name == "Low humidity" && status == 1006 - "CLEARED_UNACK") { 1007 - var emailstr = 1008 - "<div><p><span style='color: green; font-weight: bold'>Device " + 1009 - label + " Low Humidity Alarm Cleared</span></p>" + 1010 - "<p>-- Current Temperature : " + detaildata 1011 - .Hum_SHT + "</p><br>" + 1012 - "<p>Device Configure:</p>" + 1013 - "<p>-- Temperature Threshold : min: " + detaildata 1014 - .Low_temperature_alarm + ", max: " + detaildata 1015 - .High_temperature_alarm + "</p>" + 1016 - "<p>-- Humidity Threshold: min: " + detaildata 1017 - .Low_humidity_alarm + ", max:" + detaildata 1018 - .High_humidity_alarm + "</p>" + 1019 - "<p>-- Battery threshold: min: " + detaildata 1020 - .Low_voltage_alarm + "</p>" + str2 + "</div>" 1021 - return { 1022 - msg: { 1023 - "data": emailstr 1024 - }, 1025 - metadata: metadata, 1026 - msgType: msgType 1027 - }; 1028 -} else if (name == "Low voltage" && status == 1029 - "CLEARED_UNACK") { 1030 - 1031 - var emailstr = 1032 - "<div><p><span style='color: green; font-weight: bold'>Device " + 1033 - label + " Low Voltage Alarm Cleared</span></p>" + 1034 - "<p>-- Current Temperature : " + detaildata.BatV + 1035 - "</p><br><br>" + 1036 - "<p>Device Configure:</p>" + 1037 - "<p>-- Temperature Threshold : min: " + detaildata 1038 - .Low_temperature_alarm + ", max: " + detaildata 1039 - .High_temperature_alarm + "</p>" + 1040 - "<p>-- Humidity Threshold: min: " + detaildata 1041 - .Low_humidity_alarm + ", max:" + detaildata 1042 - .High_humidity_alarm + "</p>" + 1043 - "<p>-- Battery threshold: min: " + detaildata 1044 - .Low_voltage_alarm + "</p>" + str2 + "</div>" 1045 - 1046 - return { 1047 - msg: { 1048 - "data": emailstr 1049 - }, 1050 - metadata: metadata, 1051 - msgType: msgType 1052 - }; 1053 -} else if (name == "Device Disconnected" && status == 1054 - "CLEARED_UNACK") { 1055 - var time1 = locatime(Number(detaildata.lastActivityTime)) 1056 - //var time1 = detaildata.lastActivityTime 1057 - // var chazhi = parseInt((detaildata.inactivityAlarmTime-detaildata.lastActivityTime)/1000/60) 1058 - // var emailstr = 1059 - // "<div><p><span style='color: green; font-weight: bold'>" + 1060 - // "Device " + label + " has Alarm Cleared</span></p><p>Last activity time: "+time1+"</p></div>" 1061 - var emailstr ="Device " + label + " has Alarm Cleared##Last activity time: "+time1 1062 - var newType = "POST_TELEMETRY_REQUEST" 1063 - return { 1064 - msg: emailstr, 1065 - metadata: metadata, 1066 - msgType: newType 1067 - } 1068 -} 1069 -{{/code}} 1070 - 1071 -(% class="wikigeneratedid" %) 1072 -**Generate Report:** 1073 - 1074 -(% class="wikigeneratedid" %) 1075 -[[image:1730865053380-293.png]] 1076 - 1077 -= 5.other = 1078 - 1079 -* 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. 1080 -* 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