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, 17 added, 0 removed)
- 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
Details
- Page properties
-
- Content
-
... ... @@ -256,11 +256,8 @@ 256 256 {{/code}} 257 257 258 258 (% class="wikigeneratedid" id="H" %) 259 -[[image:1730770875793-351.png]] 259 +[[image:1730770875793-351.png]]**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 260 260 261 -(% class="wikigeneratedid" id="HActions" %) 262 -**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 263 - 264 264 {{code language="none"}} 265 265 var entitySubType; 266 266 var $injector = widgetContext.$scope.$injector; ... ... @@ -679,6 +679,400 @@ 679 679 680 680 == 4.2 Alarm configuration details == 681 681 679 +=== 4.2.1 High temperature === 680 + 681 +Creat: 682 + 683 +[[image:1730862483514-101.png||height="750" width="1407"]] 684 + 685 +Clear: 686 + 687 +[[image:1730862584519-902.png||height="758" width="1404"]] 688 + 689 +=== 4.2.2 Low Temperature === 690 + 691 +Creat: 692 + 693 +[[image:1730863708259-750.png||height="752" width="1403"]] 694 + 695 +Clear: 696 + 697 +[[image:1730863750414-979.png||height="746" width="1403"]] 698 + 699 +=== 4.2.3 High humidity === 700 + 701 +Creat: 702 + 703 +[[image:1730864045747-876.png||height="752" width="1396"]] 704 + 705 +Clear: 706 + 707 +[[image:1730864077395-395.png||height="735" width="1393"]] 708 + 709 +=== 4.2.4 Low humidity === 710 + 711 +Creat: 712 + 713 +[[image:1730864117808-484.png||height="741" width="1392"]] 714 + 715 +Clear: 716 + 717 +[[image:1730864159071-895.png||height="745" width="1392"]] 718 + 719 +=== 4.2.5 Low voltage === 720 + 721 +Creat: 722 + 723 +[[image:1730864207037-477.png||height="740" width="1388"]] 724 + 725 +Clear: 726 + 727 +[[image:1730864250506-111.png||height="735" width="1389"]] 728 + 729 +=== 4.2.6 Device Disconnected === 730 + 731 +Creat: 732 + 733 +[[image:1730864293216-991.png||height="739" width="1387"]] 734 + 735 +Clear: 736 + 737 +[[image:1730864331859-740.png||height="735" width="1385"]] 738 + 682 682 == 4.3 Rule chain configuration details == 683 683 684 -= 5. = 741 +[[image:1730864784118-474.png]] 742 + 743 +**Script:**Email configuration for sending device alarm information 744 + 745 +[[image:1730864676542-406.png||height="732" width="1384"]] 746 + 747 +{{code language="none"}} 748 +function locatime(timenumber){ 749 + var date = new Date(timenumber) 750 + return date.toLocaleDateString() + ' ' + date.toLocaleTimeString() 751 +} 752 +var name = msg.name 753 +var devicename = msg.originatorName 754 +var label = msg.originatorLabel 755 +var status = msg.status 756 +var detaildata =JSON.parse(msg.details.data) 757 +var tempswitch 758 + 759 +if (name != "Device Disconnected") { 760 + //detaildata=JSON.parse(msg.details.data) 761 + if (detaildata.Temperature_alarm_switch == true) { 762 + tempswitch = "open" 763 + } else { 764 + tempswitch = "close" 765 + } 766 + var humswitch 767 + if (detaildata.Humidity_alarm_switch == true) { 768 + humswitch = "open" 769 + } else { 770 + humswitch = "close" 771 + } 772 + var batswitch 773 + if (detaildata.Voltage_alarm_switch == true) { 774 + batswitch = "open" 775 + } else { 776 + batswitch = "close" 777 + } 778 + var str2 = "<p>-- Temperature alarm switch status: " + 779 + tempswitch + "</p>" + 780 + "<p>-- Humidity alarm switch status: " + humswitch + 781 + "</p>" + 782 + "<p>-- Voltage alarm switch status: " + batswitch 783 +} 784 + 785 +if (name == "High Temperature" && status == 786 + "ACTIVE_UNACK") { 787 + var emailstr = 788 + "<div><p><span style='color: black; font-weight: bold'>" + 789 + "Device " + label + " has alarm:</span></p>" + 790 + "<p><span style='color: red; font-weight: bold'>-- High Temperature Alarm</span></p>" + 791 + "<p>-- Current Temperature : " + detaildata 792 + .TempC_SHT + "</p><br>" + 793 + "<p>Device Configure:</p>" + 794 + "<p>-- Temperature Threshold : min: " + detaildata 795 + .Low_temperature_alarm + ", max: " + detaildata 796 + .High_temperature_alarm + "</p>" + 797 + "<p>-- Humidity Threshold: min: " + detaildata 798 + .Low_humidity_alarm + ", max:" + detaildata 799 + .High_humidity_alarm + "</p>" + 800 + "<p>-- Battery threshold: min: " + detaildata 801 + .Low_voltage_alarm + "</p>" + str2 + "</div>" 802 + return { 803 + msg: { 804 + "data": emailstr 805 + }, 806 + metadata: metadata, 807 + msgType: msgType 808 + }; 809 +} else if (name == "Low Temperature" && status == 810 + "ACTIVE_UNACK") { 811 + var emailstr = 812 + "<div><p><span style='color: black; font-weight: bold'>" + 813 + "Device " + label + " has alarm:</span></p>" + 814 + "<p><span style='color: red; font-weight: bold'>-- Low Temperature Alarm</span></p>" + 815 + "<p>-- Current Temperature : " + detaildata 816 + .TempC_SHT + "</p><br>" + 817 + "<p>Device Configure:</p>" + 818 + "<p>-- Temperature Threshold : min: " + detaildata 819 + .Low_temperature_alarm + ", max: " + detaildata 820 + .High_temperature_alarm + "</p>" + 821 + "<p>-- Humidity Threshold: min: " + detaildata 822 + .Low_humidity_alarm + ", max:" + detaildata 823 + .High_humidity_alarm + "</p>" + 824 + "<p>-- Battery threshold: min: " + detaildata 825 + .Low_voltage_alarm + "</p>" + str2 + "</div>" 826 + 827 + return { 828 + msg: { 829 + "data": emailstr 830 + }, 831 + metadata: metadata, 832 + msgType: msgType 833 + }; 834 + 835 +} else if (name == "Device Disconnected" && status == 836 + "ACTIVE_UNACK") { 837 + var time1 = locatime(Number(detaildata.lastActivityTime)) 838 + //var time1 = detaildata.lastActivityTime 839 + // var chazhi = parseInt((detaildata.inactivityAlarmTime-detaildata.lastActivityTime)/1000/60) 840 + // var emailstr = 841 + // "<div><p><span style='color: red; font-weight: bold'>" + 842 + // "Device " + label + " has Alarm</span></p><p>Last activity time: "+time1+"</p><p>Last Uplink: 21"+"minutes ago</p></div>" 843 + 844 + var emailstr ="Device " + label + " has Alarm##Last activity time: "+time1+"##Last Uplink: 21minutes ago" 845 + var newType = "POST_TELEMETRY_REQUEST" 846 + return { 847 + msg:emailstr, 848 + metadata: metadata, 849 + msgType: newType 850 + } 851 +} else if (name == "High humidity" && status == 852 + "ACTIVE_UNACK") { 853 + var emailstr = 854 + "<div><p><span style='color: black; font-weight: bold'>" + 855 + "Device " + label + " has alarm:</span></p>" + 856 + "<p><span style='color: red; font-weight: bold'>-- High Humidity Alarm</span></p>" + 857 + "<p>-- Current Temperature : " + detaildata 858 + .Hum_SHT + "</p><br>" + 859 + "<p>Device Configure:</p>" + 860 + "<p>-- Temperature Threshold : min: " + detaildata 861 + .Low_temperature_alarm + ", max: " + detaildata 862 + .High_temperature_alarm + "</p>" + 863 + "<p>-- Humidity Threshold: min: " + detaildata 864 + .Low_humidity_alarm + ", max:" + detaildata 865 + .High_humidity_alarm + "</p>" + 866 + "<p>-- Battery threshold: min: " + detaildata 867 + .Low_voltage_alarm + "</p>" + str2 + "</div>" 868 + 869 + return { 870 + msg: { 871 + "data": emailstr 872 + }, 873 + metadata: metadata, 874 + msgType: msgType 875 + }; 876 +} else if (name == "Low humidity" && status == 877 + "ACTIVE_UNACK") { 878 + var emailstr = 879 + "<div><p><span style='color: black; font-weight: bold'>" + 880 + "Device " + label + " has alarm:</span></p>" + 881 + "<p><span style='color: red; font-weight: bold'>-- Low Humidity Alarm</span></p>" + 882 + "<p>-- Current Temperature : " + detaildata 883 + .Hum_SHT + "</p><br>" + 884 + "<p>Device Configure:</p>" + 885 + "<p>-- Temperature Threshold : min: " + detaildata 886 + .Low_temperature_alarm + ", max: " + detaildata 887 + .High_temperature_alarm + "</p>" + 888 + "<p>-- Humidity Threshold: min: " + detaildata 889 + .Low_humidity_alarm + ", max:" + detaildata 890 + .High_humidity_alarm + "</p>" + 891 + "<p>-- Battery threshold: min: " + detaildata 892 + .Low_voltage_alarm + "</p>" + str2 + "</div>" 893 + 894 + return { 895 + msg: { 896 + "data": emailstr 897 + }, 898 + metadata: metadata, 899 + msgType: msgType 900 + }; 901 +} else if (name == "Low voltage" && status == 902 + "ACTIVE_UNACK") { 903 + var emailstr = 904 + "<div><p><span style='color: black; font-weight: bold'>" + 905 + "Device " + label + " has alarm:</span></p>" + 906 + "<p><span style='color: red; font-weight: bold'>-- Low Voltage Alarm</span></p>" + 907 + "<p>-- Current Temperature : " + detaildata.BatV + 908 + "</p><br>" + 909 + "<p>Device Configure:</p>" + 910 + "<p>-- Temperature Threshold : min: " + detaildata 911 + .Low_temperature_alarm + ", max: " + detaildata 912 + .High_temperature_alarm + "</p>" + 913 + "<p>-- Humidity Threshold: min: " + detaildata 914 + .Low_humidity_alarm + ", max:" + detaildata 915 + .High_humidity_alarm + "</p>" + 916 + "<p>-- Battery threshold: min: " + detaildata 917 + .Low_voltage_alarm + "</p>" + str2 + "</div>" 918 + 919 + return { 920 + msg: { 921 + "data": emailstr 922 + }, 923 + metadata: metadata, 924 + msgType: msgType 925 + }; 926 +} else if (name == "High Temperature" && status == 927 + "CLEARED_UNACK") { 928 + var emailstr = 929 + "<div><p><span style='color: green; font-weight: bold'>Device " + 930 + label + 931 + " High Temperature Alarm Cleared</span></p>" + 932 + "<p>-- Current Temperature : " + detaildata 933 + .TempC_SHT + "</p><br>" + 934 + "<p>Device Configure:</p>" + 935 + "<p>-- Temperature Threshold : min: " + detaildata 936 + .Low_temperature_alarm + ", max: " + detaildata 937 + .High_temperature_alarm + "</p>" + 938 + "<p>-- Humidity Threshold: min: " + detaildata 939 + .Low_humidity_alarm + ", max:" + detaildata 940 + .High_humidity_alarm + "</p>" + 941 + "<p>-- Battery threshold: min: " + detaildata 942 + .Low_voltage_alarm + "</p>" + str2 + "</div>" 943 + 944 + return { 945 + msg: { 946 + "data": emailstr 947 + }, 948 + metadata: metadata, 949 + msgType: msgType 950 + }; 951 +} else if (name == "Low Temperature" && status == 952 + "CLEARED_UNACK") { 953 + var emailstr = 954 + "<div><p><span style='color: green; font-weight: bold'>Device " + 955 + label + 956 + " Low Temperature Alarm Cleared</span></p>" + 957 + "<p>-- Current Temperature : " + detaildata 958 + .TempC_SHT + "</p><br>" + 959 + "<p>Device Configure:</p>" + 960 + "<p>-- Temperature Threshold : min: " + detaildata 961 + .Low_temperature_alarm + ", max: " + detaildata 962 + .High_temperature_alarm + "</p>" + 963 + "<p>-- Humidity Threshold: min: " + detaildata 964 + .Low_humidity_alarm + ", max:" + detaildata 965 + .High_humidity_alarm + "</p>" + 966 + "<p>-- Battery threshold: min: " + detaildata 967 + .Low_voltage_alarm + "</p>" + str2 + "</div>" 968 + 969 + return { 970 + msg: { 971 + "data": emailstr 972 + }, 973 + metadata: metadata, 974 + msgType: msgType 975 + }; 976 +} else if (name == "High humidity" && status == 977 + "CLEARED_UNACK") { 978 + var emailstr = 979 + "<div><p><span style='color: green; font-weight: bold'>Device " + 980 + label + " High Humidity Alarm Cleared</span></p>" + 981 + "<p>-- Current Temperature : " + detaildata 982 + .Hum_SHT + "</p><br>" + 983 + "<p>Device Configure:</p>" + 984 + "<p>-- Temperature Threshold : min: " + detaildata 985 + .Low_temperature_alarm + ", max: " + detaildata 986 + .High_temperature_alarm + "</p>" + 987 + "<p>-- Humidity Threshold: min: " + detaildata 988 + .Low_humidity_alarm + ", max:" + detaildata 989 + .High_humidity_alarm + "</p>" + 990 + "<p>-- Battery threshold: min: " + detaildata 991 + .Low_voltage_alarm + "</p>" + str2 + "</div>" 992 + 993 + return { 994 + msg: { 995 + "data": emailstr 996 + }, 997 + metadata: metadata, 998 + msgType: msgType 999 + }; 1000 +} else if (name == "Low humidity" && status == 1001 + "CLEARED_UNACK") { 1002 + var emailstr = 1003 + "<div><p><span style='color: green; font-weight: bold'>Device " + 1004 + label + " Low Humidity Alarm Cleared</span></p>" + 1005 + "<p>-- Current Temperature : " + detaildata 1006 + .Hum_SHT + "</p><br>" + 1007 + "<p>Device Configure:</p>" + 1008 + "<p>-- Temperature Threshold : min: " + detaildata 1009 + .Low_temperature_alarm + ", max: " + detaildata 1010 + .High_temperature_alarm + "</p>" + 1011 + "<p>-- Humidity Threshold: min: " + detaildata 1012 + .Low_humidity_alarm + ", max:" + detaildata 1013 + .High_humidity_alarm + "</p>" + 1014 + "<p>-- Battery threshold: min: " + detaildata 1015 + .Low_voltage_alarm + "</p>" + str2 + "</div>" 1016 + return { 1017 + msg: { 1018 + "data": emailstr 1019 + }, 1020 + metadata: metadata, 1021 + msgType: msgType 1022 + }; 1023 +} else if (name == "Low voltage" && status == 1024 + "CLEARED_UNACK") { 1025 + 1026 + var emailstr = 1027 + "<div><p><span style='color: green; font-weight: bold'>Device " + 1028 + label + " Low Voltage Alarm Cleared</span></p>" + 1029 + "<p>-- Current Temperature : " + detaildata.BatV + 1030 + "</p><br><br>" + 1031 + "<p>Device Configure:</p>" + 1032 + "<p>-- Temperature Threshold : min: " + detaildata 1033 + .Low_temperature_alarm + ", max: " + detaildata 1034 + .High_temperature_alarm + "</p>" + 1035 + "<p>-- Humidity Threshold: min: " + detaildata 1036 + .Low_humidity_alarm + ", max:" + detaildata 1037 + .High_humidity_alarm + "</p>" + 1038 + "<p>-- Battery threshold: min: " + detaildata 1039 + .Low_voltage_alarm + "</p>" + str2 + "</div>" 1040 + 1041 + return { 1042 + msg: { 1043 + "data": emailstr 1044 + }, 1045 + metadata: metadata, 1046 + msgType: msgType 1047 + }; 1048 +} else if (name == "Device Disconnected" && status == 1049 + "CLEARED_UNACK") { 1050 + var time1 = locatime(Number(detaildata.lastActivityTime)) 1051 + //var time1 = detaildata.lastActivityTime 1052 + // var chazhi = parseInt((detaildata.inactivityAlarmTime-detaildata.lastActivityTime)/1000/60) 1053 + // var emailstr = 1054 + // "<div><p><span style='color: green; font-weight: bold'>" + 1055 + // "Device " + label + " has Alarm Cleared</span></p><p>Last activity time: "+time1+"</p></div>" 1056 + var emailstr ="Device " + label + " has Alarm Cleared##Last activity time: "+time1 1057 + var newType = "POST_TELEMETRY_REQUEST" 1058 + return { 1059 + msg: emailstr, 1060 + metadata: metadata, 1061 + msgType: newType 1062 + } 1063 +} 1064 +{{/code}} 1065 + 1066 +(% class="wikigeneratedid" %) 1067 +**Generate Report:** 1068 + 1069 +(% class="wikigeneratedid" %) 1070 +[[image:1730865053380-293.png]] 1071 + 1072 += 5.other = 1073 + 1074 +* 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. 1075 +* 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]]
- 1730862483514-101.png
-
- Author
-
... ... @@ -1,0 +1,1 @@ 1 +XWiki.hera - Size
-
... ... @@ -1,0 +1,1 @@ 1 +195.8 KB - Content
- 1730862584519-902.png
-
- Author
-
... ... @@ -1,0 +1,1 @@ 1 +XWiki.hera - Size
-
... ... @@ -1,0 +1,1 @@ 1 +191.1 KB - Content
- 1730863708259-750.png
-
- Author
-
... ... @@ -1,0 +1,1 @@ 1 +XWiki.hera - Size
-
... ... @@ -1,0 +1,1 @@ 1 +220.1 KB - Content
- 1730863750414-979.png
-
- Author
-
... ... @@ -1,0 +1,1 @@ 1 +XWiki.hera - Size
-
... ... @@ -1,0 +1,1 @@ 1 +210.6 KB - Content
- 1730864045747-876.png
-
- Author
-
... ... @@ -1,0 +1,1 @@ 1 +XWiki.hera - Size
-
... ... @@ -1,0 +1,1 @@ 1 +208.9 KB - Content
- 1730864077395-395.png
-
- Author
-
... ... @@ -1,0 +1,1 @@ 1 +XWiki.hera - Size
-
... ... @@ -1,0 +1,1 @@ 1 +201.4 KB - Content
- 1730864117808-484.png
-
- Author
-
... ... @@ -1,0 +1,1 @@ 1 +XWiki.hera - Size
-
... ... @@ -1,0 +1,1 @@ 1 +203.0 KB - Content
- 1730864159071-895.png
-
- Author
-
... ... @@ -1,0 +1,1 @@ 1 +XWiki.hera - Size
-
... ... @@ -1,0 +1,1 @@ 1 +226.6 KB - Content
- 1730864207037-477.png
-
- Author
-
... ... @@ -1,0 +1,1 @@ 1 +XWiki.hera - Size
-
... ... @@ -1,0 +1,1 @@ 1 +215.3 KB - Content
- 1730864250506-111.png
-
- Author
-
... ... @@ -1,0 +1,1 @@ 1 +XWiki.hera - Size
-
... ... @@ -1,0 +1,1 @@ 1 +209.5 KB - Content
- 1730864293216-991.png
-
- Author
-
... ... @@ -1,0 +1,1 @@ 1 +XWiki.hera - Size
-
... ... @@ -1,0 +1,1 @@ 1 +138.5 KB - Content
- 1730864331859-740.png
-
- Author
-
... ... @@ -1,0 +1,1 @@ 1 +XWiki.hera - Size
-
... ... @@ -1,0 +1,1 @@ 1 +134.4 KB - Content
- 1730864460314-611.png
-
- Author
-
... ... @@ -1,0 +1,1 @@ 1 +XWiki.hera - Size
-
... ... @@ -1,0 +1,1 @@ 1 +256.7 KB - Content
- 1730864617480-221.png
-
- Author
-
... ... @@ -1,0 +1,1 @@ 1 +XWiki.hera - Size
-
... ... @@ -1,0 +1,1 @@ 1 +260.8 KB - Content
- 1730864676542-406.png
-
- Author
-
... ... @@ -1,0 +1,1 @@ 1 +XWiki.hera - Size
-
... ... @@ -1,0 +1,1 @@ 1 +227.7 KB - Content
- 1730864784118-474.png
-
- Author
-
... ... @@ -1,0 +1,1 @@ 1 +XWiki.hera - Size
-
... ... @@ -1,0 +1,1 @@ 1 +148.8 KB - Content
- 1730865053380-293.png
-
- Author
-
... ... @@ -1,0 +1,1 @@ 1 +XWiki.hera - Size
-
... ... @@ -1,0 +1,1 @@ 1 +46.7 KB - Content