updated alarms
@ -0,0 +1,15 @@
|
||||
{
|
||||
"updateMode": "Instant",
|
||||
"updateMessage": "This project has been changed. Please save your work, this session will automatically update in {timeLeft} seconds.",
|
||||
"updateTimeout": 30,
|
||||
"locale": "Browser",
|
||||
"idp": null,
|
||||
"timezone": "Gateway Timezone",
|
||||
"desktopPageTimeoutSeconds": 60,
|
||||
"mobilePageTimeoutSeconds": 600,
|
||||
"hideFromLaunchListings": false,
|
||||
"thumbnailPath": "",
|
||||
"sessionClosedMessage": "This Perspective session has been closed.",
|
||||
"pageClosedMessage": "This Perspective page has been closed.",
|
||||
"loggedOutMessage": "You are now logged out of your Perspective session. If you are on a shared device, it is recommended to log out of all other sessions before walking away."
|
||||
}
|
||||
@ -221,7 +221,7 @@
|
||||
}
|
||||
},
|
||||
"props": {
|
||||
"address": "127.0.0.1",
|
||||
"address": "[0:0:0:0:0:0:0:1]",
|
||||
"device": {},
|
||||
"geolocation": {},
|
||||
"locale": "en-US",
|
||||
|
||||
@ -9,8 +9,8 @@
|
||||
"attributes": {
|
||||
"lastModification": {
|
||||
"actor": "admin",
|
||||
"timestamp": "2025-09-30T10:04:26Z"
|
||||
"timestamp": "2025-10-01T10:13:13Z"
|
||||
},
|
||||
"lastModificationSignature": "95051ce3d0db6d2a151ba9b6c8ceb96dbbb8938f6e4693321c33477cf3cc0422"
|
||||
"lastModificationSignature": "60fb9957e5858b89917d8cb99fa83d3b6bbf8243d51e2b4d33cd3c86030eaf62"
|
||||
}
|
||||
}
|
||||
@ -10,8 +10,8 @@
|
||||
"attributes": {
|
||||
"lastModification": {
|
||||
"actor": "admin",
|
||||
"timestamp": "2025-09-30T10:05:09Z"
|
||||
"timestamp": "2025-10-01T12:11:45Z"
|
||||
},
|
||||
"lastModificationSignature": "1fd04d570a4c9993a058ef644020eb66bb6a2881aeaf316e9b3d3d9959a95be8"
|
||||
"lastModificationSignature": "8b3250bd65d1c5c62d6992352ca872434f34f6524bfce631ffa4446eb751adaa"
|
||||
}
|
||||
}
|
||||
|
Before Width: | Height: | Size: 67 KiB After Width: | Height: | Size: 30 KiB |
@ -0,0 +1,731 @@
|
||||
{
|
||||
"custom": {},
|
||||
"params": {},
|
||||
"props": {
|
||||
"defaultSize": {
|
||||
"height": 1080,
|
||||
"width": 1920
|
||||
}
|
||||
},
|
||||
"root": {
|
||||
"children": [
|
||||
{
|
||||
"meta": {
|
||||
"name": "MCM01"
|
||||
},
|
||||
"position": {
|
||||
"height": 1080,
|
||||
"width": 1920
|
||||
},
|
||||
"props": {
|
||||
"elements": [
|
||||
{
|
||||
"elements": [
|
||||
{
|
||||
"clipPathUnits": "userSpaceOnUse",
|
||||
"elements": [
|
||||
{
|
||||
"d": "M 1126,0 H 3737 V 5796 H 1126 V 0",
|
||||
"id": "path6",
|
||||
"name": "path6",
|
||||
"transform": "translate(-2.0833334e-5)",
|
||||
"type": "path"
|
||||
},
|
||||
{
|
||||
"type": "group"
|
||||
}
|
||||
],
|
||||
"id": "clipPath6",
|
||||
"name": "clipPath6",
|
||||
"type": "clipPath"
|
||||
},
|
||||
{
|
||||
"clipPathUnits": "userSpaceOnUse",
|
||||
"elements": [
|
||||
{
|
||||
"d": "M 1126,0 H 3737 V 5796 H 1126 V 0",
|
||||
"id": "path8",
|
||||
"name": "path8",
|
||||
"transform": "translate(-2.0833334e-5)",
|
||||
"type": "path"
|
||||
}
|
||||
],
|
||||
"id": "clipPath8",
|
||||
"name": "clipPath8",
|
||||
"type": "clipPath"
|
||||
},
|
||||
{
|
||||
"clipPathUnits": "userSpaceOnUse",
|
||||
"elements": [
|
||||
{
|
||||
"d": "M 1126,0 H 3737 V 5796 H 1126 V 0",
|
||||
"id": "path9",
|
||||
"name": "path9",
|
||||
"transform": "matrix(1,0,0,-1,-2796,3847)",
|
||||
"type": "path"
|
||||
}
|
||||
],
|
||||
"id": "clipPath9",
|
||||
"name": "clipPath9",
|
||||
"type": "clipPath"
|
||||
},
|
||||
{
|
||||
"clipPathUnits": "userSpaceOnUse",
|
||||
"elements": [
|
||||
{
|
||||
"d": "M 1126,0 H 3737 V 5796 H 1126 V 0",
|
||||
"id": "path10",
|
||||
"name": "path10",
|
||||
"transform": "matrix(1,0,0,-1,-2822,3855)",
|
||||
"type": "path"
|
||||
}
|
||||
],
|
||||
"id": "clipPath10",
|
||||
"name": "clipPath10",
|
||||
"type": "clipPath"
|
||||
},
|
||||
{
|
||||
"clipPathUnits": "userSpaceOnUse",
|
||||
"elements": [
|
||||
{
|
||||
"d": "M 1126,0 H 3737 V 5796 H 1126 V 0",
|
||||
"id": "path12",
|
||||
"name": "path12",
|
||||
"transform": "translate(-2.0833334e-5)",
|
||||
"type": "path"
|
||||
}
|
||||
],
|
||||
"id": "clipPath12",
|
||||
"name": "clipPath12",
|
||||
"type": "clipPath"
|
||||
},
|
||||
{
|
||||
"clipPathUnits": "userSpaceOnUse",
|
||||
"elements": [
|
||||
{
|
||||
"d": "M 1126,0 H 3737 V 5796 H 1126 V 0",
|
||||
"id": "path13",
|
||||
"name": "path13",
|
||||
"transform": "matrix(1,0,0,-1,-2822,3839)",
|
||||
"type": "path"
|
||||
}
|
||||
],
|
||||
"id": "clipPath13",
|
||||
"name": "clipPath13",
|
||||
"type": "clipPath"
|
||||
},
|
||||
{
|
||||
"clipPathUnits": "userSpaceOnUse",
|
||||
"elements": [
|
||||
{
|
||||
"d": "M 1126,0 H 3737 V 5796 H 1126 V 0",
|
||||
"id": "path14",
|
||||
"name": "path14",
|
||||
"transform": "matrix(1,0,0,-1,-2831,3847)",
|
||||
"type": "path"
|
||||
}
|
||||
],
|
||||
"id": "clipPath14",
|
||||
"name": "clipPath14",
|
||||
"type": "clipPath"
|
||||
},
|
||||
{
|
||||
"clipPathUnits": "userSpaceOnUse",
|
||||
"elements": [
|
||||
{
|
||||
"d": "M 1126,0 H 3737 V 5796 H 1126 V 0",
|
||||
"id": "path16",
|
||||
"name": "path16",
|
||||
"transform": "translate(-2.0833334e-5)",
|
||||
"type": "path"
|
||||
}
|
||||
],
|
||||
"id": "clipPath16",
|
||||
"name": "clipPath16",
|
||||
"type": "clipPath"
|
||||
},
|
||||
{
|
||||
"clipPathUnits": "userSpaceOnUse",
|
||||
"elements": [
|
||||
{
|
||||
"d": "M 1126,0 H 3737 V 5796 H 1126 V 0",
|
||||
"id": "path18",
|
||||
"name": "path18",
|
||||
"transform": "translate(-2.0833334e-5)",
|
||||
"type": "path"
|
||||
}
|
||||
],
|
||||
"id": "clipPath18",
|
||||
"name": "clipPath18",
|
||||
"type": "clipPath"
|
||||
},
|
||||
{
|
||||
"clipPathUnits": "userSpaceOnUse",
|
||||
"elements": [
|
||||
{
|
||||
"d": "M 1126,0 H 3737 V 5796 H 1126 V 0",
|
||||
"id": "path20",
|
||||
"name": "path20",
|
||||
"transform": "translate(-2.0833334e-5)",
|
||||
"type": "path"
|
||||
}
|
||||
],
|
||||
"id": "clipPath20",
|
||||
"name": "clipPath20",
|
||||
"type": "clipPath"
|
||||
},
|
||||
{
|
||||
"clipPathUnits": "userSpaceOnUse",
|
||||
"elements": [
|
||||
{
|
||||
"d": "M 1126,0 H 3737 V 5796 H 1126 V 0",
|
||||
"id": "path22",
|
||||
"name": "path22",
|
||||
"transform": "translate(-2.0833334e-5)",
|
||||
"type": "path"
|
||||
}
|
||||
],
|
||||
"id": "clipPath22",
|
||||
"name": "clipPath22",
|
||||
"type": "clipPath"
|
||||
},
|
||||
{
|
||||
"clipPathUnits": "userSpaceOnUse",
|
||||
"elements": [
|
||||
{
|
||||
"d": "M 1126,0 H 3737 V 5796 H 1126 V 0",
|
||||
"id": "path24",
|
||||
"name": "path24",
|
||||
"transform": "translate(-2.0833334e-5)",
|
||||
"type": "path"
|
||||
}
|
||||
],
|
||||
"id": "clipPath24",
|
||||
"name": "clipPath24",
|
||||
"type": "clipPath"
|
||||
},
|
||||
{
|
||||
"clipPathUnits": "userSpaceOnUse",
|
||||
"elements": [
|
||||
{
|
||||
"d": "M 1126,0 H 3737 V 5796 H 1126 V 0",
|
||||
"id": "path26",
|
||||
"name": "path26",
|
||||
"transform": "translate(-2.0833334e-5)",
|
||||
"type": "path"
|
||||
}
|
||||
],
|
||||
"id": "clipPath26",
|
||||
"name": "clipPath26",
|
||||
"type": "clipPath"
|
||||
},
|
||||
{
|
||||
"clipPathUnits": "userSpaceOnUse",
|
||||
"elements": [
|
||||
{
|
||||
"d": "M 1126,0 H 3737 V 5796 H 1126 V 0",
|
||||
"id": "path27",
|
||||
"name": "path27",
|
||||
"transform": "matrix(0,-1,-1,0,5714,1994)",
|
||||
"type": "path"
|
||||
}
|
||||
],
|
||||
"id": "clipPath27",
|
||||
"name": "clipPath27",
|
||||
"type": "clipPath"
|
||||
},
|
||||
{
|
||||
"clipPathUnits": "userSpaceOnUse",
|
||||
"elements": [
|
||||
{
|
||||
"d": "M 1126,0 H 3737 V 5796 H 1126 V 0",
|
||||
"id": "path29",
|
||||
"name": "path29",
|
||||
"transform": "translate(-2.0833334e-5)",
|
||||
"type": "path"
|
||||
}
|
||||
],
|
||||
"id": "clipPath29",
|
||||
"name": "clipPath29",
|
||||
"type": "clipPath"
|
||||
},
|
||||
{
|
||||
"clipPathUnits": "userSpaceOnUse",
|
||||
"elements": [
|
||||
{
|
||||
"d": "M 1126,0 H 3737 V 5796 H 1126 V 0",
|
||||
"id": "path31",
|
||||
"name": "path31",
|
||||
"transform": "translate(-2.0833334e-5)",
|
||||
"type": "path"
|
||||
}
|
||||
],
|
||||
"id": "clipPath31",
|
||||
"name": "clipPath31",
|
||||
"type": "clipPath"
|
||||
},
|
||||
{
|
||||
"clipPathUnits": "userSpaceOnUse",
|
||||
"elements": [
|
||||
{
|
||||
"d": "M 1126,0 H 3737 V 5796 H 1126 V 0",
|
||||
"id": "path33",
|
||||
"name": "path33",
|
||||
"transform": "translate(-2.0833334e-5)",
|
||||
"type": "path"
|
||||
}
|
||||
],
|
||||
"id": "clipPath33",
|
||||
"name": "clipPath33",
|
||||
"type": "clipPath"
|
||||
},
|
||||
{
|
||||
"clipPathUnits": "userSpaceOnUse",
|
||||
"elements": [
|
||||
{
|
||||
"d": "M 1126,0 H 3737 V 5796 H 1126 V 0",
|
||||
"id": "path35",
|
||||
"name": "path35",
|
||||
"transform": "translate(-2.0833334e-5)",
|
||||
"type": "path"
|
||||
}
|
||||
],
|
||||
"id": "clipPath35",
|
||||
"name": "clipPath35",
|
||||
"type": "clipPath"
|
||||
},
|
||||
{
|
||||
"clipPathUnits": "userSpaceOnUse",
|
||||
"elements": [
|
||||
{
|
||||
"d": "M 1126,0 H 3737 V 5796 H 1126 V 0",
|
||||
"id": "path37",
|
||||
"name": "path37",
|
||||
"transform": "translate(-2.0833334e-5)",
|
||||
"type": "path"
|
||||
}
|
||||
],
|
||||
"id": "clipPath37",
|
||||
"name": "clipPath37",
|
||||
"type": "clipPath"
|
||||
},
|
||||
{
|
||||
"clipPathUnits": "userSpaceOnUse",
|
||||
"elements": [
|
||||
{
|
||||
"d": "M 1126,0 H 3737 V 5796 H 1126 V 0",
|
||||
"id": "path39",
|
||||
"name": "path39",
|
||||
"transform": "translate(-2.0833334e-5)",
|
||||
"type": "path"
|
||||
}
|
||||
],
|
||||
"id": "clipPath39",
|
||||
"name": "clipPath39",
|
||||
"type": "clipPath"
|
||||
},
|
||||
{
|
||||
"clipPathUnits": "userSpaceOnUse",
|
||||
"elements": [
|
||||
{
|
||||
"d": "M 1126,0 H 3737 V 5796 H 1126 V 0",
|
||||
"id": "path40",
|
||||
"name": "path40",
|
||||
"transform": "matrix(0,-1,-1,0,4932,2183)",
|
||||
"type": "path"
|
||||
}
|
||||
],
|
||||
"id": "clipPath40",
|
||||
"name": "clipPath40",
|
||||
"type": "clipPath"
|
||||
},
|
||||
{
|
||||
"clipPathUnits": "userSpaceOnUse",
|
||||
"elements": [
|
||||
{
|
||||
"d": "M 1126,0 H 3737 V 5796 H 1126 V 0",
|
||||
"id": "path23935",
|
||||
"name": "path23935",
|
||||
"transform": "matrix(0,-1,-1,0,5714,2172)",
|
||||
"type": "path"
|
||||
}
|
||||
],
|
||||
"id": "clipPath23935",
|
||||
"name": "clipPath23935",
|
||||
"type": "clipPath"
|
||||
}
|
||||
],
|
||||
"id": "defs1",
|
||||
"name": "defs1",
|
||||
"type": "defs"
|
||||
},
|
||||
{
|
||||
"elements": [
|
||||
{
|
||||
"d": "m 17.513137,116.02606 h 7.883849 v 35.33131 h -7.925563 z",
|
||||
"fill": {
|
||||
"opacity": "1",
|
||||
"paint": "#ffffff"
|
||||
},
|
||||
"id": "path25072",
|
||||
"name": "path25072",
|
||||
"stroke": {
|
||||
"dasharray": "none",
|
||||
"opacity": "1",
|
||||
"paint": "#000000",
|
||||
"width": "0.25"
|
||||
},
|
||||
"type": "path"
|
||||
},
|
||||
{
|
||||
"d": "m 17.578237,115.55245 0.185181,-7.76481 c 1.517289,-4.83339 4.580567,-7.799271 8.864116,-10.344944 l 3.914525,6.935164 c -2.984985,1.33473 -4.229119,3.34824 -4.999076,6.51743 l -0.08744,4.67802 z",
|
||||
"fill": {
|
||||
"opacity": "1",
|
||||
"paint": "#ffffff"
|
||||
},
|
||||
"id": "path26615",
|
||||
"name": "path26615",
|
||||
"stroke": {
|
||||
"dasharray": "none",
|
||||
"opacity": "1",
|
||||
"paint": "#000000",
|
||||
"width": "0.25"
|
||||
},
|
||||
"type": "path"
|
||||
},
|
||||
{
|
||||
"d": "m 72.20209,125.20076 h 7.883848 v 53.73674 h -7.925561 z",
|
||||
"fill": {
|
||||
"opacity": "1",
|
||||
"paint": "#ffffff"
|
||||
},
|
||||
"id": "path26618",
|
||||
"name": "path26618",
|
||||
"stroke": {
|
||||
"dasharray": "none",
|
||||
"opacity": "1",
|
||||
"paint": "#000000",
|
||||
"width": "0.25"
|
||||
},
|
||||
"type": "path"
|
||||
},
|
||||
{
|
||||
"d": "m 72.261082,115.88006 h 7.883848 v 8.72601 h -7.925561 z",
|
||||
"fill": {
|
||||
"opacity": "1",
|
||||
"paint": "#ffffff"
|
||||
},
|
||||
"id": "path27070",
|
||||
"name": "path27070",
|
||||
"stroke": {
|
||||
"dasharray": "none",
|
||||
"opacity": "1",
|
||||
"paint": "#000000",
|
||||
"width": "0.25"
|
||||
},
|
||||
"type": "path"
|
||||
},
|
||||
{
|
||||
"d": "m 72.231586,106.67734 h 7.883848 v 8.72601 h -7.925561 z",
|
||||
"fill": {
|
||||
"opacity": "1",
|
||||
"paint": "#ffffff"
|
||||
},
|
||||
"id": "path27071",
|
||||
"name": "path27071",
|
||||
"stroke": {
|
||||
"dasharray": "none",
|
||||
"opacity": "1",
|
||||
"paint": "#000000",
|
||||
"width": "0.25"
|
||||
},
|
||||
"type": "path"
|
||||
},
|
||||
{
|
||||
"d": "m 72.219369,106.20226 c -0.03623,-9.238512 0.460678,-12.796916 8.960808,-17.991777 l 4.047256,6.905673 c -5.529025,2.473147 -5.25942,6.010384 -5.145507,11.136454 z",
|
||||
"fill": {
|
||||
"opacity": "1",
|
||||
"paint": "#ffffff"
|
||||
},
|
||||
"id": "path27072",
|
||||
"name": "path27072",
|
||||
"stroke": {
|
||||
"dasharray": "none",
|
||||
"opacity": "1",
|
||||
"paint": "#000000",
|
||||
"width": "0.25"
|
||||
},
|
||||
"type": "path"
|
||||
},
|
||||
{
|
||||
"d": "m 34.461924,92.956423 3.944478,6.826134 -7.555316,4.365833 -3.965348,-6.862253 z",
|
||||
"fill": {
|
||||
"opacity": "1",
|
||||
"paint": "#ffffff"
|
||||
},
|
||||
"id": "path27074",
|
||||
"name": "path27074",
|
||||
"stroke": {
|
||||
"dasharray": "none",
|
||||
"opacity": "1",
|
||||
"paint": "#000000",
|
||||
"width": "0.25"
|
||||
},
|
||||
"type": "path"
|
||||
},
|
||||
{
|
||||
"d": "m 42.425813,88.355065 3.944478,6.826134 -7.555316,4.365833 -3.965348,-6.862253 z",
|
||||
"fill": {
|
||||
"opacity": "1",
|
||||
"paint": "#ffffff"
|
||||
},
|
||||
"id": "path27080",
|
||||
"name": "path27080",
|
||||
"stroke": {
|
||||
"dasharray": "none",
|
||||
"opacity": "1",
|
||||
"paint": "#000000",
|
||||
"width": "0.25"
|
||||
},
|
||||
"type": "path"
|
||||
},
|
||||
{
|
||||
"d": "m 60.100764,87.570756 -13.376385,7.447713 -3.959823,-6.887292 1.504291,-0.553046 z",
|
||||
"fill": {
|
||||
"opacity": "1",
|
||||
"paint": "#ffffff"
|
||||
},
|
||||
"id": "path27081",
|
||||
"name": "path27081",
|
||||
"stroke": {
|
||||
"dasharray": "none",
|
||||
"opacity": "1",
|
||||
"paint": "#000000",
|
||||
"width": "0.25"
|
||||
},
|
||||
"type": "path"
|
||||
},
|
||||
{
|
||||
"d": "m 99.030276,87.61753 -13.464875,7.359226 -3.952449,-7.020023 1.430551,-0.368698 z",
|
||||
"fill": {
|
||||
"opacity": "1",
|
||||
"paint": "#ffffff"
|
||||
},
|
||||
"id": "path27082",
|
||||
"name": "path27082",
|
||||
"stroke": {
|
||||
"dasharray": "none",
|
||||
"opacity": "1",
|
||||
"paint": "#000000",
|
||||
"width": "0.25"
|
||||
},
|
||||
"type": "path"
|
||||
},
|
||||
{
|
||||
"d": "m 158.56005,79.566794 -0.016,7.760334 -120.794639,-0.04735 0.0159,-7.801393 z",
|
||||
"fill": {
|
||||
"opacity": "1",
|
||||
"paint": "#ffffff"
|
||||
},
|
||||
"id": "path27083",
|
||||
"name": "path27083",
|
||||
"stroke": {
|
||||
"dasharray": "none",
|
||||
"opacity": "1",
|
||||
"paint": "#000000",
|
||||
"width": "0.244431"
|
||||
},
|
||||
"type": "path"
|
||||
},
|
||||
{
|
||||
"d": "m 267.35173,79.640375 -0.0142,7.780257 -107.74707,-0.04746 0.0141,-7.821422 z",
|
||||
"fill": {
|
||||
"opacity": "1",
|
||||
"paint": "#ffffff"
|
||||
},
|
||||
"id": "path27084",
|
||||
"name": "path27084",
|
||||
"stroke": {
|
||||
"dasharray": "none",
|
||||
"opacity": "1",
|
||||
"paint": "#000000",
|
||||
"width": "0.243285"
|
||||
},
|
||||
"type": "path"
|
||||
},
|
||||
{
|
||||
"d": "m 399.37485,79.720395 -0.0173,7.737716 -131.17963,-0.0472 0.0172,-7.778656 z",
|
||||
"fill": {
|
||||
"opacity": "1",
|
||||
"paint": "#ffffff"
|
||||
},
|
||||
"id": "path27085",
|
||||
"name": "path27085",
|
||||
"stroke": {
|
||||
"dasharray": "none",
|
||||
"opacity": "1",
|
||||
"paint": "#000000",
|
||||
"width": "0.23373"
|
||||
},
|
||||
"type": "path"
|
||||
},
|
||||
{
|
||||
"d": "m 400.0944,79.650678 c 5.03604,0.02588 7.95928,-0.266973 12.23378,1.989441 1.65503,0.966601 2.74197,2.075227 3.73794,3.206593 1.85537,2.841276 3.14745,5.859861 3.05039,10.779803 l -8.06562,0.03102 c -0.0803,-1.92185 0.0446,-3.799123 -1.54746,-5.774965 -2.38574,-2.686548 -6.13811,-2.332233 -9.40355,-2.443066 z",
|
||||
"fill": {
|
||||
"opacity": "1",
|
||||
"paint": "#ffffff"
|
||||
},
|
||||
"id": "path27086",
|
||||
"name": "path27086",
|
||||
"stroke": {
|
||||
"dasharray": "none",
|
||||
"opacity": "1",
|
||||
"paint": "#000000",
|
||||
"width": "0.25"
|
||||
},
|
||||
"type": "path"
|
||||
},
|
||||
{
|
||||
"d": "m 411.25685,96.063667 h 7.88112 v 54.940713 h -7.92282 z",
|
||||
"fill": {
|
||||
"opacity": "1",
|
||||
"paint": "#ffffff"
|
||||
},
|
||||
"id": "path27087",
|
||||
"name": "path27087",
|
||||
"stroke": {
|
||||
"dasharray": "none",
|
||||
"opacity": "1",
|
||||
"paint": "#000000",
|
||||
"width": "0.252742"
|
||||
},
|
||||
"type": "path"
|
||||
},
|
||||
{
|
||||
"d": "m 411.25883,151.59084 h 7.88385 v 8.72601 h -7.92556 z",
|
||||
"fill": {
|
||||
"opacity": "1",
|
||||
"paint": "#ffffff"
|
||||
},
|
||||
"id": "path27088",
|
||||
"name": "path27088",
|
||||
"stroke": {
|
||||
"dasharray": "none",
|
||||
"opacity": "1",
|
||||
"paint": "#000000",
|
||||
"width": "0.25"
|
||||
},
|
||||
"type": "path"
|
||||
},
|
||||
{
|
||||
"d": "m 427.45236,179.63321 c -12.30206,0.13237 -16.45431,-5.69061 -16.18738,-18.7973 l 7.85705,2.9e-4 c 0.10669,7.76558 0.23673,10.73714 8.29789,10.94492 z",
|
||||
"fill": {
|
||||
"opacity": "1",
|
||||
"paint": "#ffffff"
|
||||
},
|
||||
"id": "path27089",
|
||||
"name": "path27089",
|
||||
"stroke": {
|
||||
"dasharray": "none",
|
||||
"opacity": "1",
|
||||
"paint": "#000000",
|
||||
"width": "0.25"
|
||||
},
|
||||
"type": "path"
|
||||
},
|
||||
{
|
||||
"d": "m 448.59365,171.83373 0.13725,7.76254 -20.366,0.0641 -0.13793,-7.8036 z",
|
||||
"fill": {
|
||||
"opacity": "1",
|
||||
"paint": "#ffffff"
|
||||
},
|
||||
"id": "path27090",
|
||||
"name": "path27090",
|
||||
"stroke": {
|
||||
"dasharray": "none",
|
||||
"opacity": "1",
|
||||
"paint": "#000000",
|
||||
"width": "0.268812"
|
||||
},
|
||||
"type": "path"
|
||||
},
|
||||
{
|
||||
"d": "m 468.70557,171.74638 0.12932,7.77032 -19.19125,0.0641 -0.12998,-7.81142 z",
|
||||
"fill": {
|
||||
"opacity": "1",
|
||||
"paint": "#ffffff"
|
||||
},
|
||||
"id": "path27091",
|
||||
"name": "path27091",
|
||||
"stroke": {
|
||||
"dasharray": "none",
|
||||
"opacity": "1",
|
||||
"paint": "#000000",
|
||||
"width": "0.261075"
|
||||
},
|
||||
"type": "path"
|
||||
},
|
||||
{
|
||||
"d": "m 481.28798,171.66728 0.06,5.6578 -11.7815,0.0672 -0.0603,-5.68771 z",
|
||||
"fill": {
|
||||
"opacity": "1",
|
||||
"paint": "#ffffff"
|
||||
},
|
||||
"id": "path27092",
|
||||
"name": "path27092",
|
||||
"stroke": {
|
||||
"dasharray": "none",
|
||||
"opacity": "1",
|
||||
"paint": "#000000",
|
||||
"width": "0.246092"
|
||||
},
|
||||
"type": "path"
|
||||
},
|
||||
{
|
||||
"d": "m 494.42349,171.66846 0.003,5.65425 -12.14703,0.002 -0.003,-5.68414 z",
|
||||
"fill": {
|
||||
"opacity": "1",
|
||||
"paint": "#ffffff"
|
||||
},
|
||||
"id": "path27093",
|
||||
"name": "path27093",
|
||||
"stroke": {
|
||||
"dasharray": "none",
|
||||
"opacity": "1",
|
||||
"paint": "#000000",
|
||||
"width": "0.249796"
|
||||
},
|
||||
"type": "path"
|
||||
},
|
||||
{
|
||||
"type": "group"
|
||||
}
|
||||
],
|
||||
"id": "layer1",
|
||||
"name": "layer1",
|
||||
"type": "group"
|
||||
}
|
||||
],
|
||||
"preserveAspectRatio": "none",
|
||||
"viewBox": "0 0 508 285.75"
|
||||
},
|
||||
"type": "ia.shapes.svg"
|
||||
}
|
||||
],
|
||||
"events": {
|
||||
"dom": {
|
||||
"onClick": {
|
||||
"config": {
|
||||
"script": "\tsystem.perspective.print(event.keys())"
|
||||
},
|
||||
"scope": "G",
|
||||
"type": "script"
|
||||
}
|
||||
}
|
||||
},
|
||||
"meta": {
|
||||
"name": "root"
|
||||
},
|
||||
"type": "ia.container.coord"
|
||||
}
|
||||
}
|
||||
@ -10,8 +10,8 @@
|
||||
"attributes": {
|
||||
"lastModification": {
|
||||
"actor": "admin",
|
||||
"timestamp": "2025-09-30T14:50:24Z"
|
||||
"timestamp": "2025-10-01T10:01:09Z"
|
||||
},
|
||||
"lastModificationSignature": "6c3bbc1fd97bc7504541fe018dee255fef567c732df15a020e2e691618dd91ea"
|
||||
"lastModificationSignature": "703b32e2f5d2f02def085075ddc330c86f57bc14a7ac25ce31d6a8af3222dd67"
|
||||
}
|
||||
}
|
||||
|
Before Width: | Height: | Size: 59 KiB After Width: | Height: | Size: 59 KiB |
@ -10,8 +10,8 @@
|
||||
"attributes": {
|
||||
"lastModification": {
|
||||
"actor": "admin",
|
||||
"timestamp": "2025-09-30T14:50:23Z"
|
||||
"timestamp": "2025-10-01T10:02:46Z"
|
||||
},
|
||||
"lastModificationSignature": "cce739592e2d679f1c13c756c2373387402009be88ec55c43ce7c5dff075f1aa"
|
||||
"lastModificationSignature": "8a2a22c00dd87d5ae0acb6ae123f223dc2e0742cb5bafda2445275cf6e6f82cd"
|
||||
}
|
||||
}
|
||||
|
Before Width: | Height: | Size: 62 KiB After Width: | Height: | Size: 44 KiB |
@ -10,8 +10,8 @@
|
||||
"attributes": {
|
||||
"lastModification": {
|
||||
"actor": "admin",
|
||||
"timestamp": "2025-09-29T10:24:06Z"
|
||||
"timestamp": "2025-10-01T10:13:13Z"
|
||||
},
|
||||
"lastModificationSignature": "6646652b2a69bb08854bd4a9109a42e5f3ed457f6d254d675371f579c605e114"
|
||||
"lastModificationSignature": "9116d45470d493a88ae3df94af66ac9f4edee153c2d7d0e9852cd53b10762349"
|
||||
}
|
||||
}
|
||||
|
Before Width: | Height: | Size: 66 KiB After Width: | Height: | Size: 76 KiB |
@ -10,8 +10,8 @@
|
||||
"attributes": {
|
||||
"lastModification": {
|
||||
"actor": "admin",
|
||||
"timestamp": "2025-09-29T15:17:13Z"
|
||||
"timestamp": "2025-10-01T10:01:23Z"
|
||||
},
|
||||
"lastModificationSignature": "35fbd9fbe8fb9619aa51b4a40de23a5079c17d1107d251e974a98da478959f2f"
|
||||
"lastModificationSignature": "9d7c34fdc8a9128e0bc1c2f42b467658724511d9391f25ec1c23304d75c3b6b2"
|
||||
}
|
||||
}
|
||||
|
Before Width: | Height: | Size: 40 KiB After Width: | Height: | Size: 30 KiB |
@ -10,8 +10,8 @@
|
||||
"attributes": {
|
||||
"lastModification": {
|
||||
"actor": "admin",
|
||||
"timestamp": "2025-09-30T14:51:57Z"
|
||||
"timestamp": "2025-10-01T10:03:43Z"
|
||||
},
|
||||
"lastModificationSignature": "f3a46607418562736242da1164966444593661ec0978fde0cbdea8d58d87901a"
|
||||
"lastModificationSignature": "a286e0a7925b76d2ed4b0ea8f296f72980f2c1ef42077ae099dbb6ca665bac01"
|
||||
}
|
||||
}
|
||||
|
Before Width: | Height: | Size: 23 KiB After Width: | Height: | Size: 23 KiB |
28
BNA8/ignition/named-query/autStand/Alarms/Active/query.sql
Normal file
@ -0,0 +1,28 @@
|
||||
SELECT
|
||||
ae.id AS ID,
|
||||
ae.eventtime AS StartTimestamp,
|
||||
CONCAT(
|
||||
LPAD(FLOOR(TIMESTAMPDIFF(SECOND, ae.eventtime, NOW())/3600), 2, '0'), ':',
|
||||
LPAD(FLOOR((TIMESTAMPDIFF(SECOND, ae.eventtime, NOW())%3600)/60), 2, '0'), ':',
|
||||
LPAD( (TIMESTAMPDIFF(SECOND, ae.eventtime, NOW())%60), 2, '0')
|
||||
) AS Duration,
|
||||
CONCAT(REPLACE(ae.displaypath,'_','-'),' ', SUBSTRING_INDEX(ae.source,':/alm:',-1)) AS Description,
|
||||
CASE ae.priority
|
||||
WHEN 0 THEN 'Diagnostic' WHEN 1 THEN 'Low' WHEN 2 THEN 'Medium'
|
||||
WHEN 3 THEN 'High' WHEN 4 THEN 'Critical' ELSE 'Unknown'
|
||||
END AS Priority,
|
||||
CONCAT(ae.displaypath,'.HMI.Alarm.', SUBSTRING_INDEX(aed.strValue,'/',-1)) AS Tag,
|
||||
SUBSTRING_INDEX(SUBSTRING_INDEX(aed.strValue,'/',2),'/',-1) AS Location,
|
||||
aed.strValue AS FullTag,
|
||||
ae.displaypath AS Device
|
||||
FROM alarm_events ae
|
||||
LEFT JOIN alarm_events clr
|
||||
ON clr.eventid = ae.eventid AND clr.eventtype = 1
|
||||
LEFT JOIN alarm_event_data aed
|
||||
ON aed.id = ae.id AND aed.propname = 'myTag'
|
||||
WHERE ae.eventtype = 0
|
||||
AND clr.eventid IS NULL
|
||||
AND ae.displaypath NOT LIKE '%System Startup%'
|
||||
AND ae.source NOT LIKE '%System Startup%'
|
||||
AND (:priorityList = '' OR FIND_IN_SET(CAST(ae.priority AS CHAR), :priorityList) > 0)
|
||||
ORDER BY ae.eventtime DESC;
|
||||
@ -1,62 +0,0 @@
|
||||
WITH Active AS (
|
||||
SELECT
|
||||
ae.id,
|
||||
ae.eventtime,
|
||||
ae.eventid,
|
||||
ae.source,
|
||||
ae.priority,
|
||||
ae.displaypath,
|
||||
TIMESTAMPDIFF(SECOND, ae.eventtime, NOW()) AS duration_seconds
|
||||
FROM alarm_events ae
|
||||
WHERE ae.eventtype = 0
|
||||
AND NOT EXISTS (
|
||||
SELECT 1 FROM alarm_events ae_clear
|
||||
WHERE ae_clear.eventid = ae.eventid
|
||||
AND ae_clear.eventtype = 1
|
||||
)
|
||||
AND ae.displaypath NOT LIKE '%System Startup%'
|
||||
AND ae.source NOT LIKE '%System Startup%'
|
||||
-- Priority filter using FIND_IN_SET for comma-separated values
|
||||
AND (
|
||||
:priorityList IS NULL
|
||||
OR :priorityList = ''
|
||||
OR FIND_IN_SET(ae.priority, :priorityList) > 0
|
||||
)
|
||||
GROUP BY ae.id
|
||||
),
|
||||
SingleMyTag AS (
|
||||
SELECT aed.id, aed.strValue
|
||||
FROM alarm_event_data aed
|
||||
WHERE aed.propname = 'myTag'
|
||||
GROUP BY aed.id
|
||||
)
|
||||
SELECT
|
||||
Active.id AS ID,
|
||||
Active.eventtime AS StartTimestamp,
|
||||
NULL AS EndTimestamp, -- no end time since it's still active
|
||||
CONCAT(
|
||||
LPAD(FLOOR(Active.duration_seconds / 3600), 2, '0'), ':',
|
||||
LPAD(FLOOR((Active.duration_seconds % 3600) / 60), 2, '0'), ':',
|
||||
LPAD(Active.duration_seconds % 60, 2, '0')
|
||||
) AS Duration,
|
||||
CONCAT(Active.displaypath, ' - ', SUBSTRING_INDEX(Active.source, ':/alm:', -1)) AS Description,
|
||||
CASE Active.priority
|
||||
WHEN 0 THEN 'Diagnostic'
|
||||
WHEN 1 THEN 'Low'
|
||||
WHEN 2 THEN 'Medium'
|
||||
WHEN 3 THEN 'High'
|
||||
WHEN 4 THEN 'Critical'
|
||||
ELSE 'Unknown'
|
||||
END AS Priority,
|
||||
CONCAT(
|
||||
Active.displaypath,
|
||||
'.HMI.',
|
||||
SUBSTRING_INDEX(aed.strValue, '/', -1)
|
||||
) AS Tag,
|
||||
SUBSTRING_INDEX(SUBSTRING_INDEX(aed.strValue, '/', 2), '/', -1) AS Location
,
|
||||
aed.strValue AS FullTag,
|
||||
Active.displaypath as Device
|
||||
FROM Active
|
||||
LEFT JOIN SingleMyTag aed
|
||||
ON aed.id = Active.id
|
||||
ORDER BY Active.eventtime DESC;
|
||||
@ -1,40 +0,0 @@
|
||||
{
|
||||
"scope": "DG",
|
||||
"version": 2,
|
||||
"restricted": false,
|
||||
"overridable": true,
|
||||
"files": [
|
||||
"query.sql"
|
||||
],
|
||||
"attributes": {
|
||||
"useMaxReturnSize": false,
|
||||
"autoBatchEnabled": false,
|
||||
"fallbackValue": "",
|
||||
"maxReturnSize": 100,
|
||||
"cacheUnit": "SEC",
|
||||
"type": "Query",
|
||||
"enabled": true,
|
||||
"cacheAmount": 1,
|
||||
"cacheEnabled": false,
|
||||
"database": "MariaDB",
|
||||
"fallbackEnabled": false,
|
||||
"lastModificationSignature": "e21931e78403e7d61d02415d95a07521861f1a620abea231875105f77528507f",
|
||||
"permissions": [
|
||||
{
|
||||
"zone": "default",
|
||||
"role": ""
|
||||
}
|
||||
],
|
||||
"lastModification": {
|
||||
"actor": "admin",
|
||||
"timestamp": "2025-09-29T11:23:02Z"
|
||||
},
|
||||
"parameters": [
|
||||
{
|
||||
"type": "Parameter",
|
||||
"identifier": "priorityList",
|
||||
"sqlType": 7
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
@ -1,20 +1,3 @@
|
||||
WITH Active AS (
|
||||
SELECT
|
||||
ae.id,
|
||||
ae.eventid,
|
||||
ae.priority,
|
||||
aed.strValue
|
||||
FROM alarm_events ae
|
||||
LEFT JOIN alarm_event_data aed ON ae.id = aed.id AND aed.propname = 'myTag'
|
||||
WHERE ae.eventtype = 0
|
||||
AND NOT EXISTS (
|
||||
SELECT 1 FROM alarm_events ae_clear
|
||||
WHERE ae_clear.eventid = ae.eventid
|
||||
AND ae_clear.eventtype = 1
|
||||
)
|
||||
AND ae.displaypath NOT LIKE '%System Startup%'
|
||||
AND ae.source NOT LIKE '%System Startup%'
|
||||
)
|
||||
SELECT
|
||||
SUBSTRING_INDEX(SUBSTRING_INDEX(strValue, '/', 2), '/', -1) AS Location,
|
||||
CASE priority
|
||||
@ -26,6 +9,25 @@ SELECT
|
||||
ELSE 'Unknown'
|
||||
END AS Priority,
|
||||
COUNT(*) AS Count
|
||||
FROM Active
|
||||
FROM (
|
||||
SELECT
|
||||
ae.id,
|
||||
ae.eventid,
|
||||
ae.priority,
|
||||
aed.strValue
|
||||
FROM alarm_events ae
|
||||
LEFT JOIN alarm_event_data aed
|
||||
ON ae.id = aed.id
|
||||
AND aed.propname = 'myTag'
|
||||
WHERE ae.eventtype = 0
|
||||
AND NOT EXISTS (
|
||||
SELECT 1
|
||||
FROM alarm_events ae_clear
|
||||
WHERE ae_clear.eventid = ae.eventid
|
||||
AND ae_clear.eventtype = 1
|
||||
)
|
||||
AND ae.displaypath NOT LIKE '%System Startup%'
|
||||
AND ae.source NOT LIKE '%System Startup%'
|
||||
) AS Active
|
||||
GROUP BY Location, Priority
|
||||
ORDER BY Location, Priority;
|
||||
|
||||
@ -18,7 +18,7 @@
|
||||
"cacheEnabled": false,
|
||||
"database": "MariaDB",
|
||||
"fallbackEnabled": false,
|
||||
"lastModificationSignature": "30e5941a41ccb9dc1c9a70392d5bbb2ab39c1c601778316fef83870c620b63e3",
|
||||
"lastModificationSignature": "a3505bbdb9faa8b6a00129d027b58e7952c5aac5abb1a6843ae8356b6db33e55",
|
||||
"permissions": [
|
||||
{
|
||||
"zone": "default",
|
||||
@ -26,8 +26,8 @@
|
||||
}
|
||||
],
|
||||
"lastModification": {
|
||||
"actor": "admin",
|
||||
"timestamp": "2025-09-26T09:30:18Z"
|
||||
"actor": "external",
|
||||
"timestamp": "2025-09-20T08:33:12Z"
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -1,71 +0,0 @@
|
||||
WITH Active AS (
|
||||
SELECT
|
||||
ae.id,
|
||||
ae.eventtime,
|
||||
ae.eventid,
|
||||
ae.source,
|
||||
ae.priority,
|
||||
ae.displaypath,
|
||||
TIMESTAMPDIFF(SECOND, ae.eventtime, COALESCE(ae_clear.eventtime, NOW())) AS duration_seconds
|
||||
FROM alarm_events ae
|
||||
LEFT JOIN alarm_events ae_clear
|
||||
ON ae.eventid = ae_clear.eventid AND ae_clear.eventtype = 1
|
||||
WHERE ae.eventtype = 0
|
||||
AND ae.displaypath NOT LIKE '%System Startup%'
|
||||
AND ae.source NOT LIKE '%System Startup%'
|
||||
GROUP BY ae.id -- Ensure one row per alarm
|
||||
),
|
||||
SingleMyTag AS (
|
||||
SELECT aed.id, aed.strValue
|
||||
FROM alarm_event_data aed
|
||||
WHERE aed.propname = 'myTag'
|
||||
GROUP BY aed.id -- Collapse duplicates by id
|
||||
),
|
||||
SingleClear AS (
|
||||
SELECT eventid, MIN(eventtime) AS eventtime
|
||||
FROM alarm_events
|
||||
WHERE eventtype = 1
|
||||
GROUP BY eventid
|
||||
)
|
||||
|
||||
SELECT
|
||||
Active.id AS ID,
|
||||
Active.eventtime AS StartTimestamp,
|
||||
Clear.eventtime AS EndTimestamp,
|
||||
|
||||
CONCAT(
|
||||
LPAD(FLOOR(Active.duration_seconds / 3600), 2, '0'), ':',
|
||||
LPAD(FLOOR((Active.duration_seconds % 3600) / 60), 2, '0'), ':',
|
||||
LPAD(Active.duration_seconds % 60, 2, '0')
|
||||
) AS Duration,
|
||||
|
||||
CONCAT(Active.displaypath, ' - ', SUBSTRING_INDEX(Active.source, ':/alm:', -1)) AS Description,
|
||||
|
||||
CASE Active.priority
|
||||
WHEN 0 THEN 'Diagnostic'
|
||||
WHEN 1 THEN 'Low'
|
||||
WHEN 2 THEN 'Medium'
|
||||
WHEN 3 THEN 'High'
|
||||
WHEN 4 THEN 'Critical'
|
||||
ELSE 'Unknown'
|
||||
END AS Priority,
|
||||
|
||||
CONCAT(
|
||||
Active.displaypath,
|
||||
'.HMI.',
|
||||
SUBSTRING_INDEX(aed.strValue, '/', -1)
|
||||
) AS Tag,
|
||||
|
||||
SUBSTRING_INDEX(SUBSTRING_INDEX(aed.strValue, '/', 2), '/', -1) AS Location
,
|
||||
aed.strValue AS FullTag,
|
||||
Active.displaypath as Device
|
||||
|
||||
FROM Active
|
||||
|
||||
LEFT JOIN SingleClear Clear
|
||||
ON Active.eventid = Clear.eventid
|
||||
|
||||
LEFT JOIN SingleMyTag aed
|
||||
ON aed.id = Active.id
|
||||
|
||||
ORDER BY Active.eventtime DESC;
|
||||
@ -1,33 +0,0 @@
|
||||
{
|
||||
"scope": "DG",
|
||||
"version": 2,
|
||||
"restricted": false,
|
||||
"overridable": true,
|
||||
"files": [
|
||||
"query.sql"
|
||||
],
|
||||
"attributes": {
|
||||
"useMaxReturnSize": false,
|
||||
"autoBatchEnabled": false,
|
||||
"fallbackValue": "",
|
||||
"maxReturnSize": 100,
|
||||
"cacheUnit": "SEC",
|
||||
"type": "Query",
|
||||
"enabled": true,
|
||||
"cacheAmount": 1,
|
||||
"cacheEnabled": false,
|
||||
"database": "MariaDB",
|
||||
"fallbackEnabled": false,
|
||||
"lastModificationSignature": "28a5cb6474508ef25ea6c95d49f312634d077d622b543d18289c481fbb8ba3b7",
|
||||
"permissions": [
|
||||
{
|
||||
"zone": "default",
|
||||
"role": ""
|
||||
}
|
||||
],
|
||||
"lastModification": {
|
||||
"actor": "admin",
|
||||
"timestamp": "2025-09-26T09:30:18Z"
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -1,64 +0,0 @@
|
||||
SELECT
|
||||
CONCAT(Active.displaypath, ' - ', SUBSTRING_INDEX(Active.source, ':/alm:', -1)) AS Description,
|
||||
|
||||
SUBSTRING_INDEX(SUBSTRING_INDEX(aed.strValue, '/', 2), '/', -1) AS Location,
|
||||
|
||||
-- Formatted OPC-style tag
|
||||
CONCAT(
|
||||
Active.displaypath,
|
||||
'.HMI.',
|
||||
SUBSTRING_INDEX(aed.strValue, '/', -1)
|
||||
) AS Tag,
|
||||
|
||||
CASE Active.priority
|
||||
WHEN 0 THEN 'Diagnostic'
|
||||
WHEN 1 THEN 'Low'
|
||||
WHEN 2 THEN 'Medium'
|
||||
WHEN 3 THEN 'High'
|
||||
WHEN 4 THEN 'Critical'
|
||||
ELSE 'Unknown'
|
||||
END AS Priority,
|
||||
|
||||
-- First and last seen times for this alarm
|
||||
MIN(Active.eventtime) AS FirstTimestamp,
|
||||
MAX(Active.eventtime) AS LastTimestamp,
|
||||
|
||||
-- Total duration summed from each active-clear pair
|
||||
CONCAT(
|
||||
LPAD(FLOOR(SUM(Active.duration_seconds) / 3600), 2, '0'), ':',
|
||||
LPAD(FLOOR((SUM(Active.duration_seconds) % 3600) / 60), 2, '0'), ':',
|
||||
LPAD(SUM(Active.duration_seconds) % 60, 2, '0')
|
||||
) AS Duration,
|
||||
|
||||
-- Total number of activations
|
||||
COUNT(*) AS Count,
|
||||
|
||||
-- Newly added columns
|
||||
aed.strValue AS FullTag,
|
||||
Active.displaypath AS Device
|
||||
|
||||
FROM (
|
||||
SELECT
|
||||
ae.id,
|
||||
ae.source,
|
||||
ae.eventid,
|
||||
ae.eventtime,
|
||||
ae.priority,
|
||||
ae.displaypath,
|
||||
TIMESTAMPDIFF(SECOND, ae.eventtime, COALESCE(ae_clear.eventtime, NOW())) AS duration_seconds
|
||||
FROM alarm_events ae
|
||||
LEFT JOIN alarm_events ae_clear
|
||||
ON ae.eventid = ae_clear.eventid AND ae_clear.eventtype = 1
|
||||
WHERE ae.eventtype = 0
|
||||
AND ae.displaypath NOT LIKE '%System Startup%'
|
||||
AND ae.source NOT LIKE '%System Startup%'
|
||||
) AS Active
|
||||
|
||||
-- OPC tag path for building .hmi.Tag output
|
||||
LEFT JOIN alarm_event_data aed
|
||||
ON aed.id = Active.id AND aed.propname = 'myTag'
|
||||
|
||||
-- 🔹 Group by the full unique alarm key (tag + alarm name)
|
||||
GROUP BY Active.source, Active.displaypath, aed.strValue
|
||||
|
||||
ORDER BY FirstTimestamp DESC;
|
||||
@ -1,33 +0,0 @@
|
||||
{
|
||||
"scope": "DG",
|
||||
"version": 2,
|
||||
"restricted": false,
|
||||
"overridable": true,
|
||||
"files": [
|
||||
"query.sql"
|
||||
],
|
||||
"attributes": {
|
||||
"useMaxReturnSize": false,
|
||||
"autoBatchEnabled": false,
|
||||
"fallbackValue": "",
|
||||
"maxReturnSize": 100,
|
||||
"cacheUnit": "SEC",
|
||||
"type": "Query",
|
||||
"enabled": true,
|
||||
"cacheAmount": 1,
|
||||
"cacheEnabled": false,
|
||||
"database": "MariaDB",
|
||||
"fallbackEnabled": false,
|
||||
"lastModificationSignature": "731a950ac10a411f50861ee6793ccb10664c7408fb607f40072e1defaaf5c584",
|
||||
"permissions": [
|
||||
{
|
||||
"zone": "default",
|
||||
"role": ""
|
||||
}
|
||||
],
|
||||
"lastModification": {
|
||||
"actor": "admin",
|
||||
"timestamp": "2025-09-26T09:30:18Z"
|
||||
}
|
||||
}
|
||||
}
|
||||
73
BNA8/ignition/named-query/autStand/Alarms/History/query.sql
Normal file
@ -0,0 +1,73 @@
|
||||
SELECT
|
||||
a.id AS ID,
|
||||
a.eventtime AS StartTimestamp,
|
||||
clr.eventtime AS EndTimestamp,
|
||||
|
||||
-- Duration calculation (HH:MM:SS format)
|
||||
CONCAT(
|
||||
LPAD(FLOOR(TIMESTAMPDIFF(SECOND, a.eventtime, COALESCE(clr.eventtime, NOW())) / 3600), 2, '0'), ':',
|
||||
LPAD(FLOOR((TIMESTAMPDIFF(SECOND, a.eventtime, COALESCE(clr.eventtime, NOW())) % 3600) / 60), 2, '0'), ':',
|
||||
LPAD( (TIMESTAMPDIFF(SECOND, a.eventtime, COALESCE(clr.eventtime, NOW())) % 60) , 2, '0')
|
||||
) AS Duration,
|
||||
|
||||
-- Description combining display path and alarm name
|
||||
CONCAT(REPLACE(a.displaypath, '_', '-'), ' ', SUBSTRING_INDEX(a.source, ':/alm:', -1)) AS Description,
|
||||
|
||||
-- Priority mapping
|
||||
CASE a.priority
|
||||
WHEN 0 THEN 'Diagnostic'
|
||||
WHEN 1 THEN 'Low'
|
||||
WHEN 2 THEN 'Medium'
|
||||
WHEN 3 THEN 'High'
|
||||
WHEN 4 THEN 'Critical'
|
||||
ELSE 'Unknown'
|
||||
END AS Priority,
|
||||
|
||||
-- Tag information
|
||||
CONCAT(a.displaypath, '.HMI.Alarm.', SUBSTRING_INDEX(aed.strValue, '/', -1)) AS Tag,
|
||||
SUBSTRING_INDEX(SUBSTRING_INDEX(aed.strValue, '/', 2), '/', -1) AS Location,
|
||||
aed.strValue AS FullTag,
|
||||
a.displaypath AS Device
|
||||
|
||||
FROM alarm_events a
|
||||
|
||||
-- Join to get the earliest clear event for each alarm
|
||||
LEFT JOIN (
|
||||
SELECT eventid, MIN(eventtime) AS eventtime
|
||||
FROM alarm_events
|
||||
WHERE eventtype = 1
|
||||
GROUP BY eventid
|
||||
) AS clr ON clr.eventid = a.eventid
|
||||
|
||||
-- Join to get additional tag data
|
||||
LEFT JOIN (
|
||||
SELECT id, strValue
|
||||
FROM alarm_event_data
|
||||
WHERE propname = 'myTag'
|
||||
GROUP BY id
|
||||
) AS aed ON aed.id = a.id
|
||||
|
||||
WHERE
|
||||
-- Only active alarm events (not clear events)
|
||||
a.eventtype = 0
|
||||
|
||||
-- Exclude system startup alarms
|
||||
AND a.displaypath NOT LIKE '%System Startup%'
|
||||
AND a.source NOT LIKE '%System Startup%'
|
||||
|
||||
-- Simple date filtering using named parameters
|
||||
AND (
|
||||
-- Case 1: Alarm was cleared within the specified time range
|
||||
(clr.eventtime IS NOT NULL AND clr.eventtime >= :starttime AND clr.eventtime < :endtime)
|
||||
OR
|
||||
-- Case 2: Alarm is still active (no clear time) and started within or before the range
|
||||
(clr.eventtime IS NULL AND a.eventtime < :endtime)
|
||||
)
|
||||
|
||||
-- Order by end time (most recent clears first), active alarms (NULL) at top, then by ID
|
||||
ORDER BY clr.eventtime IS NULL DESC, clr.eventtime DESC, a.id DESC
|
||||
|
||||
-- Pagination support (100 records per page)
|
||||
-- Pagination support: request one extra row to detect "has next" on the client
|
||||
LIMIT :page_size_plus1 OFFSET :offset;
|
||||
|
||||
93
BNA8/ignition/named-query/autStand/Alarms/HitList/query.sql
Normal file
@ -0,0 +1,93 @@
|
||||
-- Params (can be NULL or empty string '')
|
||||
-- :startTime DATETIME or NULL
|
||||
-- :endTime DATETIME or NULL
|
||||
|
||||
SELECT
|
||||
CONCAT(COALESCE(ae.displaypath,'Unknown'), ' - ',
|
||||
SUBSTRING_INDEX(COALESCE(ae.source,''), ':/alm:', -1)) AS Description,
|
||||
|
||||
SUBSTRING_INDEX(SUBSTRING_INDEX(COALESCE(aed.strValue,''), '/', 2), '/', -1) AS Location,
|
||||
|
||||
CONCAT(COALESCE(ae.displaypath,'Unknown'), '.HMI.',
|
||||
SUBSTRING_INDEX(COALESCE(aed.strValue,''),'/',-1)) AS Tag,
|
||||
|
||||
CASE ae.priority
|
||||
WHEN 0 THEN 'Diagnostic' WHEN 1 THEN 'Low' WHEN 2 THEN 'Medium'
|
||||
WHEN 3 THEN 'High' WHEN 4 THEN 'Critical' ELSE 'Unknown'
|
||||
END AS Priority,
|
||||
|
||||
-- First/Last timestamps (clipped if a window is provided)
|
||||
MIN(
|
||||
CASE
|
||||
WHEN NULLIF(:startTime,'') IS NULL AND NULLIF(:endTime,'') IS NULL
|
||||
THEN ae.eventtime
|
||||
ELSE GREATEST(ae.eventtime, COALESCE(NULLIF(:startTime,''), ae.eventtime))
|
||||
END
|
||||
) AS FirstTimestamp,
|
||||
|
||||
MAX(
|
||||
CASE
|
||||
WHEN NULLIF(:startTime,'') IS NULL AND NULLIF(:endTime,'') IS NULL
|
||||
THEN COALESCE(clr.clear_time, NOW())
|
||||
ELSE LEAST(COALESCE(clr.clear_time, NOW()),
|
||||
COALESCE(NULLIF(:endTime,''), COALESCE(clr.clear_time, NOW())))
|
||||
END
|
||||
) AS LastTimestamp,
|
||||
|
||||
-- Duration within window (full if no window)
|
||||
DATE_FORMAT(
|
||||
SEC_TO_TIME(
|
||||
SUM(
|
||||
CASE
|
||||
WHEN NULLIF(:startTime,'') IS NULL AND NULLIF(:endTime,'') IS NULL
|
||||
THEN TIMESTAMPDIFF(SECOND, ae.eventtime, COALESCE(clr.clear_time, NOW()))
|
||||
ELSE GREATEST(
|
||||
TIMESTAMPDIFF(
|
||||
SECOND,
|
||||
GREATEST(ae.eventtime, COALESCE(NULLIF(:startTime,''), ae.eventtime)),
|
||||
LEAST(COALESCE(clr.clear_time, NOW()),
|
||||
COALESCE(NULLIF(:endTime,''), COALESCE(clr.clear_time, NOW())))
|
||||
),
|
||||
0
|
||||
)
|
||||
END
|
||||
)
|
||||
),
|
||||
'%H:%i:%s'
|
||||
) AS Duration,
|
||||
|
||||
-- This is the key metric: how many times it was jammed (activations started in window)
|
||||
CAST(COUNT(*) AS SIGNED) AS ActivationCount,
|
||||
|
||||
|
||||
aed.strValue AS FullTag,
|
||||
ae.displaypath AS Device
|
||||
|
||||
FROM alarm_events ae
|
||||
LEFT JOIN (
|
||||
-- earliest clear per event
|
||||
SELECT eventid, MIN(eventtime) AS clear_time
|
||||
FROM alarm_events
|
||||
WHERE eventtype = 1
|
||||
GROUP BY eventid
|
||||
) clr ON clr.eventid = ae.eventid
|
||||
LEFT JOIN alarm_event_data aed
|
||||
ON aed.id = ae.id AND aed.propname = 'myTag'
|
||||
|
||||
WHERE ae.eventtype = 0
|
||||
AND COALESCE(ae.displaypath,'') NOT LIKE '%System Startup%'
|
||||
AND COALESCE(ae.source,'') NOT LIKE '%System Startup%'
|
||||
|
||||
-- Only filter by time if a bound is provided; we count activations STARTED in the window
|
||||
AND (
|
||||
(NULLIF(:startTime,'') IS NULL AND NULLIF(:endTime,'') IS NULL)
|
||||
OR (
|
||||
ae.eventtime >= COALESCE(NULLIF(:startTime,''), ae.eventtime)
|
||||
AND ae.eventtime <= COALESCE(NULLIF(:endTime,''), ae.eventtime)
|
||||
)
|
||||
)
|
||||
|
||||
GROUP BY
|
||||
ae.source, ae.displaypath, aed.strValue
|
||||
ORDER BY
|
||||
FirstTimestamp DESC, MIN(ae.id) DESC;
|
||||