diff --git a/SCADA_PERSPECTIVE_PARENT_PROJECT/com.inductiveautomation.perspective/views/Alarm-Views/RealTime/view.json b/SCADA_PERSPECTIVE_PARENT_PROJECT/com.inductiveautomation.perspective/views/Alarm-Views/RealTime/view.json index e40b20b..3ab983b 100644 --- a/SCADA_PERSPECTIVE_PARENT_PROJECT/com.inductiveautomation.perspective/views/Alarm-Views/RealTime/view.json +++ b/SCADA_PERSPECTIVE_PARENT_PROJECT/com.inductiveautomation.perspective/views/Alarm-Views/RealTime/view.json @@ -692,7 +692,22 @@ "children": [ { "custom": { - "rawData": [] + "rawData": [ + { + "style": { + "classes": "Alarms-Styles/Low" + }, + "value": { + "Description": "MCM01 Hello world", + "Duration": "00:01:14", + "EventTimestamp": "2025-06-20 21:11:53", + "Location": "MCM01", + "NumberID": 42, + "Priority": "Low", + "Tag": "MCM01.HMI.Beacon_Light" + } + } + ] }, "meta": { "name": "Table" @@ -732,7 +747,7 @@ }, "onChange": { "enabled": null, - "script": "\tfrom system import date\n\t\n\ttag_provider \u003d \"[\" + self.session.custom.fc + \"_SCADA_TAG_PROVIDER]\"\n\n\t# Helper: format row for table\n\tdef testRow(eventTimeStamp, duration, location, priority, description, tag, color, numberId):\n\t\treturn {\n\t\t \"value\": {\n\t\t \"NumberID\": numberId,\n\t\t \"EventTimestamp\": eventTimeStamp,\n\t\t \"Duration\": duration,\n\t\t \"Priority\": priority,\n\t\t \"Location\": location,\n\t\t \"Description\": description,\n\t\t \"Tag\": tag,\n\t\t },\n\t\t \"style\": {\n\t\t \"backgroundColor\": color,\n\t\t }\n\t\t}\n\t\n\t# Query active alarms\n\tresults \u003d system.alarm.queryStatus(state\u003d[\"ActiveUnacked\", \"ActiveAcked\"])\n\t\n\t# Build rows\n\tdata \u003d []\n\tcolor \u003d \"\"\n\tnumberID \u003d \"\"\n\tlcoation \u003d \"\"\n\t\n\tif(results \u003d\u003d0):\n\t\treturn\n\t\n\tfor i, alarm in enumerate(results):\n\t\tactiveTime \u003d alarm.eventTime\n\t\tmyTag \u003d alarm.myTag\n\t\tOPCItemTag \u003d system.tag.read(tag_provider + myTag + \".OpcItemPath\").value\n\t\tif(OPCItemTag):\t\t\n\t\t\tparts \u003d OPCItemTag.split(\".\")\n\t\t\ttag \u003d str(alarm.displayPath) +\".\" + parts[1] + \".\" + parts[2]\n\t\telse:\n\t\t\ttag \u003d \"Unknown tag\"\n\t\t\n\t\ttag_parts \u003d myTag.split(\"/\")\n\t\tif(tag_parts):\n\t\t\tlocation \u003d tag_parts[1] \n\t\telse:\n\t\t\tlocation \u003d \"Unknown Location\"\n\t\t\n\t\t\n\t\ttry:\n\t\t query \u003d system.db.runQuery(\"SELECT id, eventtime FROM alarm_events WHERE eventid \u003d \" + \"\u0027\" + str(alarm.id) + \"\u0027\",\"MariaDB\")\n\t\t if(query):\n\t\t \tnumberID \u003d query[0][0]\n\t\t durationSeconds \u003d date.secondsBetween(activeTime, date.now())\n\t\t durationStr \u003d date.format(date.addSeconds(date.midnight(date.now()), durationSeconds), \"HH:mm:ss\")\n\t\t \n\t\t priority \u003d alarm.priority.toString()\n\t\t if priority \u003d\u003d \"High\":\n\t\t color \u003d \"#f45d56\"\n\t\t elif priority \u003d\u003d \"Medium\":\n\t\t color \u003d \"#d32f2f\"\n\t\t elif priority \u003d\u003d \"Low\":\n\t\t color \u003d \"#ffeb3b\"\n\t\t elif priority \u003d\u003d \"Diagnostic\":\n\t\t color \u003d \"#2196f3\"\n\t\t elif priority \u003d\u003d \"Critical\":\n\t\t color \u003d \"#b71c1c\"\n\t\t else:\n\t\t color \u003d \"#ffffff\"\n\t\t \n\t\n\t\t data.append(testRow(\n\t\t eventTimeStamp \u003d date.format(activeTime, \"yyyy-MM-dd HH:mm:ss\"),\n\t\t duration \u003d durationStr,\n\t\t location \u003d location,\n\t\t numberId \u003d numberID,\n\t\t priority \u003d priority,\n\t\t description \u003d alarm.myLocation + \" \" + alarm.name,\n\t\t tag \u003d tag,\n\t\t color \u003d color,\n\t\t ))\n\t\texcept:\n\t\t\tpass\n\t\n\tself.custom.rawData \u003d data" + "script": "\tfrom system import date\n\t\n\ttag_provider \u003d \"[\" + self.session.custom.fc + \"_SCADA_TAG_PROVIDER]\"\n\n\t# Helper: format row for table\n\tdef testRow(eventTimeStamp, duration, location, priority, description, tag, className, numberId):\n\t\treturn {\n\t\t \"value\": {\n\t\t \"NumberID\": numberId,\n\t\t \"EventTimestamp\": eventTimeStamp,\n\t\t \"Duration\": duration,\n\t\t \"Priority\": priority,\n\t\t \"Location\": location,\n\t\t \"Description\": description,\n\t\t \"Tag\": tag,\n\t\t },\n\t\t \"style\": {\n\t\t \"classes\": className,\n\t\t }\n\t\t}\n\t\n\t# Query active alarms\n\tresults \u003d system.alarm.queryStatus(state\u003d[\"ActiveUnacked\", \"ActiveAcked\"])\n\t\n\t# Build rows\n\tdata \u003d []\n\tnumberID \u003d \"\"\n\tlcoation \u003d \"\"\n\tclassName \u003d \"\"\n\tif(results \u003d\u003d0):\n\t\treturn\n\t\n\tfor i, alarm in enumerate(results):\n\t\tactiveTime \u003d alarm.eventTime\n\t\tmyTag \u003d alarm.myTag\n\t\tOPCItemTag \u003d system.tag.read(tag_provider + myTag + \".OpcItemPath\").value\n\t\tif(OPCItemTag):\t\t\n\t\t\tparts \u003d OPCItemTag.split(\".\")\n\t\t\ttag \u003d str(alarm.displayPath) +\".\" + parts[1] + \".\" + parts[2]\n\t\telse:\n\t\t\ttag \u003d \"Unknown tag\"\n\t\t\n\t\ttag_parts \u003d myTag.split(\"/\")\n\t\tif(tag_parts):\n\t\t\tlocation \u003d tag_parts[1] \n\t\telse:\n\t\t\tlocation \u003d \"Unknown Location\"\n\t\t\n\t\t\n\t\ttry:\n\t\t query \u003d system.db.runQuery(\"SELECT id, eventtime FROM alarm_events WHERE eventid \u003d \" + \"\u0027\" + str(alarm.id) + \"\u0027\",\"MariaDB\")\n\t\t if(query):\n\t\t \tnumberID \u003d query[0][0]\n\t\t durationSeconds \u003d date.secondsBetween(activeTime, date.now())\n\t\t durationStr \u003d date.format(date.addSeconds(date.midnight(date.now()), durationSeconds), \"HH:mm:ss\")\n\t\t \n\t\t priority \u003d alarm.priority.toString()\n\t\t if priority \u003d\u003d \"High\":\n\t\t color \u003d \"Alarms-Styles/High\"\n\t\t elif priority \u003d\u003d \"Medium\":\n\t\t className \u003d \"Alarms-Styles/Medium\"\n\t\t elif priority \u003d\u003d \"Low\":\n\t\t className \u003d \"Alarms-Styles/Low\"\n\t\t elif priority \u003d\u003d \"Diagnostic\":\n\t\t className \u003d \"Alarms-Styles/Diagnostic\"\n\t\t else:\n\t\t className \u003d \"Alarms-Styles/NoAlarm\"\n\t\t \n\t\n\t\t data.append(testRow(\n\t\t eventTimeStamp \u003d date.format(activeTime, \"yyyy-MM-dd HH:mm:ss\"),\n\t\t duration \u003d durationStr,\n\t\t location \u003d location,\n\t\t numberId \u003d numberID,\n\t\t priority \u003d priority,\n\t\t description \u003d alarm.myLocation + \" \" + alarm.name,\n\t\t tag \u003d tag,\n\t\t className \u003d className,\n\t\t ))\n\t\texcept:\n\t\t\tpass\n\t\n\tself.custom.rawData \u003d data" } } }, @@ -1391,8 +1406,20 @@ "filter": { "enabled": true, "results": { + "data": [ + { + "Description": "MCM01 Hello world", + "Duration": "00:01:14", + "EventTimestamp": "2025-06-20 21:11:53", + "Location": "MCM01", + "NumberID": 42, + "Priority": "Low", + "Tag": "MCM01.HMI.Beacon_Light" + } + ], "enabled": true - } + }, + "text": " " }, "selection": { "mode": "multiple interval" @@ -1432,7 +1459,7 @@ "component": { "onActionPerformed": { "config": { - "script": "\ttry:\n\t # Get dataset from table\n\t data \u003d self.parent.parent.getChild(\"FlexContainer_0\").getChild(\"AlarmsTable\").props.data\n\t\n\t # CSV header\n\t csv_content \u003d \"First Timestamp,Last Timestamp,Count,Duration,Priority,Location,Description,Tag\\n\"\n\t\n\t if data and data.getRowCount() \u003e 0:\n\t for i in range(data.getRowCount()):\n\t duration_raw \u003d data.getValueAt(i, \"Duration\")\n\t duration_str \u003d str(duration_raw) if duration_raw is not None else \"\"\n\t row_data \u003d [\n\t str(data.getValueAt(i, \"FirstTimestamp\") or \"\"),\n\t str(data.getValueAt(i, \"LastTimestamp\") or \"\"),\n\t str(data.getValueAt(i, \"Count\") or \"\"),\n\t duration_str,\n\t str(data.getValueAt(i, \"Priority\") or \"\"),\n\t str(data.getValueAt(i, \"Location\") or \"\"),\n\t str(data.getValueAt(i, \"Description\") or \"\"),\n\t str(data.getValueAt(i, \"Tag\") or \"\")\n\t ]\n\t\n\t # Escape commas for CSV safety\n\t row_data \u003d [field.replace(\",\", \";\") for field in row_data]\n\t csv_content +\u003d \",\".join(row_data) + \"\\n\"\n\t else:\n\t csv_content +\u003d \"No alarms in current view\\n\"\n\t\n\texcept Exception as e:\n\t system.perspective.print(\"Error during CSV export: \" + str(e))\n\t csv_content \u003d \"Error exporting alarm data\\n\"\n\t\n\t# Convert to bytes and trigger download\n\tcsv_bytes \u003d csv_content.encode(\u0027utf-8\u0027)\n\tsystem.perspective.download(\"active_alarms.csv\", csv_bytes)\n " + "script": "\tfrom datetime import datetime\n\t\n\ttry:\n\t data \u003d self.parent.parent.getChild(\"FlexContainer_0\").getChild(\"AlarmsTable\").props.data\n\t\n\t column_order \u003d [\n\t \"FirstTimestamp\",\n\t \"LastTimestamp\", \n\t \"Count\",\n\t \"Duration\",\n\t \"Priority\",\n\t \"Location\",\n\t \"Description\",\n\t \"Tag\"\n\t ]\n\t\n\t csv_content \u003d \",\".join(column_order) + \"\\n\"\n\t \t\n\t def unwrap(v):\n\t\t\tif hasattr(v, \u0027value\u0027):\n\t\t\t\treturn str(v.value)\n\t \t\n\t\t\treturn v\n\t \t\n\t if data and len(data) \u003e 0:\n\t for item in data:\n\t row_data \u003d []\n\t \n\t for col in column_order:\n\t # Look for the column in the current item\n\t if col in item:\n\t cell \u003d item[col]\n\t # Extract the value from the nested structure\n\t if isinstance(cell, dict) and \"value\" in cell:\n\t raw_value \u003d cell[\"value\"]\n\t else:\n\t raw_value \u003d cell\n\t else:\n\t raw_value \u003d \"\"\n\t \n\t # Process and clean the value\n\t processed_value \u003d unwrap(raw_value).replace(\",\", \";\")\n\t row_data.append(processed_value)\n\t \n\t csv_content +\u003d \",\".join(row_data) + \"\\n\"\n\t else:\n\t csv_content +\u003d \"No alarms in current view\\n\"\n\t\n\texcept Exception as e:\n\t system.perspective.print(\"Export Error: \" + str(e))\n\t csv_content \u003d \"Export failed\\n\"\n\t\n\tcsv_bytes \u003d csv_content.encode(\"utf-8\")\n\tsystem.perspective.download(\"active_alarms.csv\", csv_bytes)" }, "scope": "G", "type": "script" @@ -1503,13 +1530,13 @@ "config": { "polling": { "enabled": true, - "rate": "5" + "rate": "3" }, "queryPath": "GetAlarmsWithCount" }, "transforms": [ { - "code": "\n\tfrom system.dataset import toPyDataSet\n\n\tds \u003d toPyDataSet(value)\n\tdata \u003d []\n\n\tcolumn_names \u003d list(ds.columnNames)\n\n\tfor row in ds:\n\t\tpriority \u003d row[\"Priority\"] \n\n\t\t# Determine style based on priority\n\t\tif priority \u003d\u003d \"High\":\n\t\t\tstyle \u003d {\"backgroundColor\": \"#fd6059\"}\n\t\telif priority \u003d\u003d \"Low\":\n\t\t\tstyle \u003d {\"backgroundColor\": \"#fafa6c\"}\n\t\telif priority \u003d\u003d \"Diagnostic\":\n\t\t\tstyle \u003d {\"backgroundColor\": \"#5da0f9\"}\n\t\telif priority \u003d\u003d \"Medium\":\n\t\t\tstyle \u003d {\"backgroundColor\": \"#fca25f\"}\n\t\telif priority \u003d\u003d \"Critical\":\n\t\t\tstyle \u003d {\"backgroundColor\": \"#c86462\"}\n\t\telse:\n\t\t\tstyle \u003d {\"backgroundColor\": \"\"}\n\n\t\t# Apply style to all columns in this row\n\t\trow_dict \u003d {col: {\"value\": row[col], \"style\": style} for col in column_names}\n\t\tdata.append(row_dict)\n\n\treturn data\n", + "code": "\n\tfrom system.dataset import toPyDataSet\n\n\tds \u003d toPyDataSet(value)\n\tdata \u003d []\n\n\tcolumn_names \u003d list(ds.columnNames)\n\n\tfor row in ds:\n\t\tpriority \u003d row[\"Priority\"]\n\n\t\t# Use style class names from Perspective\n\t\tif priority \u003d\u003d \"High\":\n\t\t\tclassName \u003d \"Alarms-Styles/High\"\n\t\telif priority \u003d\u003d \"Medium\":\n\t\t\tclassName \u003d \"Alarms-Styles/Medium\"\n\t\telif priority \u003d\u003d \"Low\":\n\t\t\tclassName \u003d \"Alarms-Styles/Low\"\n\t\telif priority \u003d\u003d \"Diagnostic\":\n\t\t\tclassName \u003d \"Alarms-Styles/Diagnostic\"\n\t\telse:\n\t\t\tclassName \u003d \"Alarms-Styles/NoAlarm\"\n\n\t\t# Apply the style class to all cells in the row\n\t\trow_dict \u003d {\n\t\t\tcol: {\n\t\t\t\t\"value\": row[col],\n\t\t\t\t\"style\": { \"classes\": className }\n\t\t\t} for col in column_names\n\t\t}\n\t\tdata.append(row_dict)\n\n\treturn data\n", "type": "script" } ], @@ -2272,7 +2299,13 @@ } }, "filter": { - "enabled": true + "enabled": true, + "results": { + "enabled": true + } + }, + "pager": { + "activeOption": 5 }, "selection": { "enableRowSelection": false, @@ -2415,17 +2448,17 @@ "$": [ "ts", 192, - 1750428991104 + 1750436956149 ], - "$ts": 1750428991104 + "$ts": 1750436956149 }, "startDate": { "$": [ "ts", 192, - 1750428991104 + 1750436956149 ], - "$ts": 1750414591104 + "$ts": 1750435156149 } }, "meta": { @@ -2598,7 +2631,7 @@ } }, "props": { - "formattedValue": "Jun 20, 2025 2:16 PM", + "formattedValue": "Jun 20, 2025 7:59 PM", "style": { "margin": 15 } @@ -2683,7 +2716,7 @@ } }, "props": { - "formattedValue": "Jun 20, 2025 6:16 PM", + "formattedValue": "Jun 20, 2025 8:29 PM", "maxDate": { "$": [ "ts", @@ -2699,9 +2732,9 @@ "$": [ "ts", 192, - 1750428991104 + 1750436956149 ], - "$ts": 1750428991104 + "$ts": 1750436956149 } }, "scripts": { @@ -2891,17 +2924,17 @@ "$": [ "ts", 192, - 1750428991105 + 1750436956154 ], - "$ts": 1750414591104 + "$ts": 1750435156149 }, "time_to_filter": { "$": [ "ts", 192, - 1750428991105 + 1750436956154 ], - "$ts": 1750428991104 + "$ts": 1750436956149 } }, "meta": { @@ -2956,7 +2989,7 @@ }, "transforms": [ { - "code": "\n\tfrom system.dataset import toPyDataSet\n\n\tds \u003d toPyDataSet(value)\n\tdata \u003d []\n\n\tcolumn_names \u003d list(ds.columnNames)\n\n\tfor row in ds:\n\t\tpriority \u003d row[\"Priority\"] \n\n\t\t# Determine style based on priority\n\t\tif priority \u003d\u003d \"High\":\n\t\t\tstyle \u003d {\"backgroundColor\": \"#fd6059\"}\n\t\telif priority \u003d\u003d \"Low\":\n\t\t\tstyle \u003d {\"backgroundColor\": \"#fafa6c\"}\n\t\telif priority \u003d\u003d \"Diagnostic\":\n\t\t\tstyle \u003d {\"backgroundColor\": \"#5da0f9\"}\n\t\telif priority \u003d\u003d \"Medium\":\n\t\t\tstyle \u003d {\"backgroundColor\": \"#fca25f\"}\n\t\telif priority \u003d\u003d \"Critical\":\n\t\t\tstyle \u003d {\"backgroundColor\": \"#c86462\"}\n\t\telse:\n\t\t\tstyle \u003d {\"backgroundColor\": \"\"}\n\n\t\t# Apply style to all columns in this row\n\t\trow_dict \u003d {col: {\"value\": row[col], \"style\": style} for col in column_names}\n\t\tdata.append(row_dict)\n\n\treturn data", + "code": "\n\tfrom system.dataset import toPyDataSet\n\n\tds \u003d toPyDataSet(value)\n\tdata \u003d []\n\n\tcolumn_names \u003d list(ds.columnNames)\n\n\tfor row in ds:\n\t\tpriority \u003d row[\"Priority\"]\n\n\t\t# Use style class names from Perspective\n\t\tif priority \u003d\u003d \"High\":\n\t\t\tclassName \u003d \"Alarms-Styles/High\"\n\t\telif priority \u003d\u003d \"Medium\":\n\t\t\tclassName \u003d \"Alarms-Styles/Medium\"\n\t\telif priority \u003d\u003d \"Low\":\n\t\t\tclassName \u003d \"Alarms-Styles/Low\"\n\t\telif priority \u003d\u003d \"Diagnostic\":\n\t\t\tclassName \u003d \"Alarms-Styles/Diagnostic\"\n\t\telse:\n\t\t\tclassName \u003d \"Alarms-Styles/NoAlarm\"\n\n\t\t# Apply the style class to all cells in the row\n\t\trow_dict \u003d {\n\t\t\tcol: {\n\t\t\t\t\"value\": row[col],\n\t\t\t\t\"style\": { \"classes\": className }\n\t\t\t} for col in column_names\n\t\t}\n\t\tdata.append(row_dict)\n\n\treturn data", "type": "script" } ], @@ -3707,518 +3740,6 @@ "filter": { "enabled": true, "results": { - "data": [ - { - "Description": "MCM01 - Hello world", - "Duration": "00:00:32", - "EndTimestamp": 1750427866000, - "ID": 39, - "Location": "MCM01", - "Priority": "Low", - "StartTimestamp": 1750427834000, - "Tag": "MCM01.HMI.Beacon_Light" - }, - { - "Description": "MCM01 - Hello world", - "Duration": "02:49:21", - "EndTimestamp": 1750427784000, - "ID": 35, - "Location": "MCM01", - "Priority": "Low", - "StartTimestamp": 1750417623000, - "Tag": "MCM01.HMI.Beacon_Light" - }, - { - "Description": "MCM01 - Hello world", - "Duration": "02:49:21", - "EndTimestamp": 1750427784000, - "ID": 36, - "Location": "MCM01", - "Priority": "Low", - "StartTimestamp": 1750417623000, - "Tag": "MCM01.HMI.Beacon_Light" - }, - { - "Description": "MCM01 - Hello world", - "Duration": "00:00:06", - "EndTimestamp": 1750417622000, - "ID": 29, - "Location": "MCM01", - "Priority": "Low", - "StartTimestamp": 1750417616000, - "Tag": "MCM01.HMI.Beacon_Light" - }, - { - "Description": "MCM01 - Hello world", - "Duration": "00:00:06", - "EndTimestamp": 1750417622000, - "ID": 30, - "Location": "MCM01", - "Priority": "Low", - "StartTimestamp": 1750417616000, - "Tag": "MCM01.HMI.Beacon_Light" - }, - { - "Description": "MCM01 - Hello world", - "Duration": "00:00:06", - "EndTimestamp": 1750417622000, - "ID": 29, - "Location": "MCM01", - "Priority": "Low", - "StartTimestamp": 1750417616000, - "Tag": "MCM01.HMI.Beacon_Light" - }, - { - "Description": "MCM01 - Hello world", - "Duration": "00:00:06", - "EndTimestamp": 1750417622000, - "ID": 30, - "Location": "MCM01", - "Priority": "Low", - "StartTimestamp": 1750417616000, - "Tag": "MCM01.HMI.Beacon_Light" - }, - { - "Description": "MCM01 - Hello world", - "Duration": "00:00:06", - "EndTimestamp": 1750417622000, - "ID": 29, - "Location": "MCM01", - "Priority": "Low", - "StartTimestamp": 1750417616000, - "Tag": "MCM01.HMI.Beacon_Light" - }, - { - "Description": "MCM01 - Hello world", - "Duration": "00:00:06", - "EndTimestamp": 1750417622000, - "ID": 30, - "Location": "MCM01", - "Priority": "Low", - "StartTimestamp": 1750417616000, - "Tag": "MCM01.HMI.Beacon_Light" - }, - { - "Description": "MCM01 - Hello world", - "Duration": "00:00:06", - "EndTimestamp": 1750417622000, - "ID": 29, - "Location": "MCM01", - "Priority": "Low", - "StartTimestamp": 1750417616000, - "Tag": "MCM01.HMI.Beacon_Light" - }, - { - "Description": "MCM01 - Hello world", - "Duration": "00:00:06", - "EndTimestamp": 1750417622000, - "ID": 30, - "Location": "MCM01", - "Priority": "Low", - "StartTimestamp": 1750417616000, - "Tag": "MCM01.HMI.Beacon_Light" - }, - { - "Description": "MCM01 - Hello world", - "Duration": "00:00:16", - "EndTimestamp": 1750417611000, - "ID": 25, - "Location": "MCM01", - "Priority": "Low", - "StartTimestamp": 1750417595000, - "Tag": "MCM01.HMI.Beacon_Light" - }, - { - "Description": "MCM01 - Hello world", - "Duration": "00:00:16", - "EndTimestamp": 1750417611000, - "ID": 26, - "Location": "MCM01", - "Priority": "Low", - "StartTimestamp": 1750417595000, - "Tag": "MCM01.HMI.Beacon_Light" - }, - { - "Description": "MCM01 - Hello world", - "Duration": "00:00:16", - "EndTimestamp": 1750417611000, - "ID": 25, - "Location": "MCM01", - "Priority": "Low", - "StartTimestamp": 1750417595000, - "Tag": "MCM01.HMI.Beacon_Light" - }, - { - "Description": "MCM01 - Hello world", - "Duration": "00:00:16", - "EndTimestamp": 1750417611000, - "ID": 26, - "Location": "MCM01", - "Priority": "Low", - "StartTimestamp": 1750417595000, - "Tag": "MCM01.HMI.Beacon_Light" - }, - { - "Description": "MCM01 - Hello world", - "Duration": "00:00:16", - "EndTimestamp": 1750417611000, - "ID": 25, - "Location": "MCM01", - "Priority": "Low", - "StartTimestamp": 1750417595000, - "Tag": "MCM01.HMI.Beacon_Light" - }, - { - "Description": "MCM01 - Hello world", - "Duration": "00:00:16", - "EndTimestamp": 1750417611000, - "ID": 26, - "Location": "MCM01", - "Priority": "Low", - "StartTimestamp": 1750417595000, - "Tag": "MCM01.HMI.Beacon_Light" - }, - { - "Description": "MCM01 - Hello world", - "Duration": "00:00:16", - "EndTimestamp": 1750417611000, - "ID": 25, - "Location": "MCM01", - "Priority": "Low", - "StartTimestamp": 1750417595000, - "Tag": "MCM01.HMI.Beacon_Light" - }, - { - "Description": "MCM01 - Hello world", - "Duration": "00:00:16", - "EndTimestamp": 1750417611000, - "ID": 26, - "Location": "MCM01", - "Priority": "Low", - "StartTimestamp": 1750417595000, - "Tag": "MCM01.HMI.Beacon_Light" - }, - { - "Description": "MCM01 - Hello world", - "Duration": "00:00:07", - "EndTimestamp": 1750417592000, - "ID": 21, - "Location": "MCM01", - "Priority": "Low", - "StartTimestamp": 1750417585000, - "Tag": "MCM01.HMI.Beacon_Light" - }, - { - "Description": "MCM01 - Hello world", - "Duration": "00:00:07", - "EndTimestamp": 1750417592000, - "ID": 22, - "Location": "MCM01", - "Priority": "Low", - "StartTimestamp": 1750417585000, - "Tag": "MCM01.HMI.Beacon_Light" - }, - { - "Description": "MCM01 - Hello world", - "Duration": "00:00:07", - "EndTimestamp": 1750417592000, - "ID": 21, - "Location": "MCM01", - "Priority": "Low", - "StartTimestamp": 1750417585000, - "Tag": "MCM01.HMI.Beacon_Light" - }, - { - "Description": "MCM01 - Hello world", - "Duration": "00:00:07", - "EndTimestamp": 1750417592000, - "ID": 22, - "Location": "MCM01", - "Priority": "Low", - "StartTimestamp": 1750417585000, - "Tag": "MCM01.HMI.Beacon_Light" - }, - { - "Description": "MCM01 - Hello world", - "Duration": "00:00:07", - "EndTimestamp": 1750417592000, - "ID": 21, - "Location": "MCM01", - "Priority": "Low", - "StartTimestamp": 1750417585000, - "Tag": "MCM01.HMI.Beacon_Light" - }, - { - "Description": "MCM01 - Hello world", - "Duration": "00:00:07", - "EndTimestamp": 1750417592000, - "ID": 22, - "Location": "MCM01", - "Priority": "Low", - "StartTimestamp": 1750417585000, - "Tag": "MCM01.HMI.Beacon_Light" - }, - { - "Description": "MCM01 - Hello world", - "Duration": "00:00:07", - "EndTimestamp": 1750417592000, - "ID": 21, - "Location": "MCM01", - "Priority": "Low", - "StartTimestamp": 1750417585000, - "Tag": "MCM01.HMI.Beacon_Light" - }, - { - "Description": "MCM01 - Hello world", - "Duration": "00:00:07", - "EndTimestamp": 1750417592000, - "ID": 22, - "Location": "MCM01", - "Priority": "Low", - "StartTimestamp": 1750417585000, - "Tag": "MCM01.HMI.Beacon_Light" - }, - { - "Description": "MCM01 - Hello world", - "Duration": "00:00:05", - "EndTimestamp": 1750417582000, - "ID": 17, - "Location": "MCM01", - "Priority": "Low", - "StartTimestamp": 1750417577000, - "Tag": "MCM01.HMI.Beacon_Light" - }, - { - "Description": "MCM01 - Hello world", - "Duration": "00:00:05", - "EndTimestamp": 1750417582000, - "ID": 18, - "Location": "MCM01", - "Priority": "Low", - "StartTimestamp": 1750417577000, - "Tag": "MCM01.HMI.Beacon_Light" - }, - { - "Description": "MCM01 - Hello world", - "Duration": "00:00:05", - "EndTimestamp": 1750417582000, - "ID": 17, - "Location": "MCM01", - "Priority": "Low", - "StartTimestamp": 1750417577000, - "Tag": "MCM01.HMI.Beacon_Light" - }, - { - "Description": "MCM01 - Hello world", - "Duration": "00:00:05", - "EndTimestamp": 1750417582000, - "ID": 18, - "Location": "MCM01", - "Priority": "Low", - "StartTimestamp": 1750417577000, - "Tag": "MCM01.HMI.Beacon_Light" - }, - { - "Description": "MCM01 - Hello world", - "Duration": "00:00:05", - "EndTimestamp": 1750417582000, - "ID": 17, - "Location": "MCM01", - "Priority": "Low", - "StartTimestamp": 1750417577000, - "Tag": "MCM01.HMI.Beacon_Light" - }, - { - "Description": "MCM01 - Hello world", - "Duration": "00:00:05", - "EndTimestamp": 1750417582000, - "ID": 18, - "Location": "MCM01", - "Priority": "Low", - "StartTimestamp": 1750417577000, - "Tag": "MCM01.HMI.Beacon_Light" - }, - { - "Description": "MCM01 - Hello world", - "Duration": "00:00:05", - "EndTimestamp": 1750417582000, - "ID": 17, - "Location": "MCM01", - "Priority": "Low", - "StartTimestamp": 1750417577000, - "Tag": "MCM01.HMI.Beacon_Light" - }, - { - "Description": "MCM01 - Hello world", - "Duration": "00:00:05", - "EndTimestamp": 1750417582000, - "ID": 18, - "Location": "MCM01", - "Priority": "Low", - "StartTimestamp": 1750417577000, - "Tag": "MCM01.HMI.Beacon_Light" - }, - { - "Description": "FL2078_2_VFD1 - Alarm", - "Duration": "00:00:07", - "EndTimestamp": 1750417555000, - "ID": 11, - "Location": "MCM01", - "Priority": "High", - "StartTimestamp": 1750417548000, - "Tag": "FL2078_2_VFD1.HMI.Voltage" - }, - { - "Description": "FL2078_2_VFD1 - Alarm", - "Duration": "00:00:07", - "EndTimestamp": 1750417555000, - "ID": 12, - "Location": "MCM01", - "Priority": "High", - "StartTimestamp": 1750417548000, - "Tag": "FL2078_2_VFD1.HMI.Voltage" - }, - { - "Description": "FL2078_2_VFD1 - Alarm", - "Duration": "00:00:07", - "EndTimestamp": 1750417555000, - "ID": 11, - "Location": "MCM01", - "Priority": "High", - "StartTimestamp": 1750417548000, - "Tag": "FL2078_2_VFD1.HMI.Voltage" - }, - { - "Description": "FL2078_2_VFD1 - Alarm", - "Duration": "00:00:07", - "EndTimestamp": 1750417555000, - "ID": 12, - "Location": "MCM01", - "Priority": "High", - "StartTimestamp": 1750417548000, - "Tag": "FL2078_2_VFD1.HMI.Voltage" - }, - { - "Description": "FL2078_2_VFD1 - Alarm", - "Duration": "00:00:07", - "EndTimestamp": 1750417555000, - "ID": 11, - "Location": "MCM01", - "Priority": "High", - "StartTimestamp": 1750417548000, - "Tag": "FL2078_2_VFD1.HMI.Voltage" - }, - { - "Description": "FL2078_2_VFD1 - Alarm", - "Duration": "00:00:07", - "EndTimestamp": 1750417555000, - "ID": 12, - "Location": "MCM01", - "Priority": "High", - "StartTimestamp": 1750417548000, - "Tag": "FL2078_2_VFD1.HMI.Voltage" - }, - { - "Description": "FL2078_2_VFD1 - Alarm", - "Duration": "00:00:07", - "EndTimestamp": 1750417555000, - "ID": 11, - "Location": "MCM01", - "Priority": "High", - "StartTimestamp": 1750417548000, - "Tag": "FL2078_2_VFD1.HMI.Voltage" - }, - { - "Description": "FL2078_2_VFD1 - Alarm", - "Duration": "00:00:07", - "EndTimestamp": 1750417555000, - "ID": 12, - "Location": "MCM01", - "Priority": "High", - "StartTimestamp": 1750417548000, - "Tag": "FL2078_2_VFD1.HMI.Voltage" - }, - { - "Description": "FL2078_2_VFD1 - Alarm", - "Duration": "00:00:25", - "EndTimestamp": 1750417544000, - "ID": 5, - "Location": "MCM01", - "Priority": "High", - "StartTimestamp": 1750417519000, - "Tag": "FL2078_2_VFD1.HMI.Voltage" - }, - { - "Description": "FL2078_2_VFD1 - Alarm", - "Duration": "00:00:25", - "EndTimestamp": 1750417544000, - "ID": 6, - "Location": "MCM01", - "Priority": "High", - "StartTimestamp": 1750417519000, - "Tag": "FL2078_2_VFD1.HMI.Voltage" - }, - { - "Description": "FL2078_2_VFD1 - Alarm", - "Duration": "00:00:25", - "EndTimestamp": 1750417544000, - "ID": 5, - "Location": "MCM01", - "Priority": "High", - "StartTimestamp": 1750417519000, - "Tag": "FL2078_2_VFD1.HMI.Voltage" - }, - { - "Description": "FL2078_2_VFD1 - Alarm", - "Duration": "00:00:25", - "EndTimestamp": 1750417544000, - "ID": 6, - "Location": "MCM01", - "Priority": "High", - "StartTimestamp": 1750417519000, - "Tag": "FL2078_2_VFD1.HMI.Voltage" - }, - { - "Description": "FL2078_2_VFD1 - Alarm", - "Duration": "00:00:25", - "EndTimestamp": 1750417544000, - "ID": 5, - "Location": "MCM01", - "Priority": "High", - "StartTimestamp": 1750417519000, - "Tag": "FL2078_2_VFD1.HMI.Voltage" - }, - { - "Description": "FL2078_2_VFD1 - Alarm", - "Duration": "00:00:25", - "EndTimestamp": 1750417544000, - "ID": 6, - "Location": "MCM01", - "Priority": "High", - "StartTimestamp": 1750417519000, - "Tag": "FL2078_2_VFD1.HMI.Voltage" - }, - { - "Description": "FL2078_2_VFD1 - Alarm", - "Duration": "00:00:25", - "EndTimestamp": 1750417544000, - "ID": 5, - "Location": "MCM01", - "Priority": "High", - "StartTimestamp": 1750417519000, - "Tag": "FL2078_2_VFD1.HMI.Voltage" - }, - { - "Description": "FL2078_2_VFD1 - Alarm", - "Duration": "00:00:25", - "EndTimestamp": 1750417544000, - "ID": 6, - "Location": "MCM01", - "Priority": "High", - "StartTimestamp": 1750417519000, - "Tag": "FL2078_2_VFD1.HMI.Voltage" - } - ], "enabled": true } }, @@ -4351,17 +3872,17 @@ "$": [ "ts", 192, - 1750428991105 + 1750436956154 ], - "$ts": 1750414591104 + "$ts": 1750435156149 }, "time_to_filter": { "$": [ "ts", 192, - 1750428991105 + 1750436956154 ], - "$ts": 1750428991104 + "$ts": 1750436956149 }, "type_filters": null }, @@ -4618,7 +4139,6 @@ "contentStyle": { "classes": "Background-Styles/Grey-Background" }, - "currentTabIndex": 2, "menuType": "modern", "style": { "classes": "Background-Styles/Grey-Background" @@ -4651,7 +4171,7 @@ }, "tabs": [ "Active Alarms", - "ALarm Hit List", + "Alarm Hit List", "Historical" ] },