Last modified by Hera Guo on 2024/11/11 17:08

From version 23.1
edited by Hera Guo
on 2024/11/06 10:50
Change comment: There is no comment for this version
To version 33.1
edited by Hera Guo
on 2024/11/06 14:10
Change comment: There is no comment for this version

Summary

Details

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