Update dashboard.json

This commit is contained in:
2024-05-03 09:52:48 -05:00
parent ce901286f9
commit 5e23c6baf9

View File

@@ -40,7 +40,7 @@
"showLineNumbers": false,
"showMiniMap": false
},
"content": "<div style=\"display: flex; justify-content: center; align-items: flex-end;\">\n <div style=\"text-align: center; color: #738276; font-weight: bold; font-size: 15px;\">\n <span style=\"color: red;\">FOR REFERENCE USE ONLY</span><br>NEXRAD.info\n </div>\n <img src=\"https://nexrad.info/nexrad.PNG\" alt=\"Nexrad\" style=\"width: 50px; height: auto; margin: 0 auto;\">\n <div style=\"text-align: center; color: #738276; font-weight: bold; font-size: 15px;\">\n <span style=\"color: red;\">FOR REFERENCE USE ONLY</span><br>BUILD: 1.6\n </div>\n</div>\n",
"content": "<div style=\"display: flex; justify-content: center; align-items: flex-end;\">\n <div style=\"text-align: center; color: #738276; font-weight: bold; font-size: 15px;\">\n <span style=\"color: red;\">FOR REFERENCE USE ONLY</span><br>NEXRAD.info\n </div>\n <img src=\"https://nexrad.info/nexrad.PNG\" alt=\"Nexrad\" style=\"width: 50px; height: auto; margin: 0 auto;\">\n <div style=\"text-align: center; color: #738276; font-weight: bold; font-size: 15px;\">\n <span style=\"color: red;\">FOR REFERENCE USE ONLY</span><br>BUILD: 2.2\n </div>\n</div>\n",
"mode": "markdown"
},
"pluginVersion": "10.4.2",
@@ -252,7 +252,7 @@
"fieldConfig": {
"defaults": {
"color": {
"mode": "shades"
"mode": "thresholds"
},
"custom": {
"fillOpacity": 70,
@@ -261,7 +261,9 @@
"tooltip": false,
"viz": false
},
"lineWidth": 1
"insertNulls": false,
"lineWidth": 0,
"spanNulls": false
},
"displayName": "Status",
"mappings": [
@@ -269,7 +271,7 @@
"options": {
"from": 0,
"result": {
"color": "green",
"color": "dark-green",
"index": 0,
"text": "Operational"
},
@@ -281,7 +283,7 @@
"options": {
"from": 5.1,
"result": {
"color": "orange",
"color": "dark-orange",
"index": 1,
"text": "Degraded"
},
@@ -293,11 +295,11 @@
"options": {
"from": 10.1,
"result": {
"color": "red",
"color": "dark-red",
"index": 2,
"text": "Down"
"text": "Inoperable"
},
"to": 1000000000000
"to": 100000000000
},
"type": "range"
}
@@ -308,26 +310,10 @@
{
"color": "green",
"value": null
},
{
"color": "yellow",
"value": 1
},
{
"color": "orange",
"value": 15
},
{
"color": "red",
"value": 20
},
{
"color": "purple",
"value": 30
}
]
},
"unit": "m"
"unit": "string"
},
"overrides": []
},
@@ -339,12 +325,13 @@
},
"id": 31,
"options": {
"colWidth": 0.9,
"alignValue": "left",
"legend": {
"displayMode": "list",
"placement": "bottom",
"showLegend": true
},
"mergeValues": true,
"rowHeight": 0.9,
"showValue": "auto",
"tooltip": {
@@ -364,8 +351,22 @@
}
],
"title": "NEXRAD Status",
"transformations": [
{
"id": "convertFieldType",
"options": {
"conversions": [
{
"destinationType": "string",
"targetField": "data_age_minutes KMBX"
}
],
"fields": {}
}
}
],
"transparent": true,
"type": "status-history"
"type": "state-timeline"
},
{
"datasource": {
@@ -1475,13 +1476,39 @@
"transparent": true,
"type": "timeseries"
},
{
"datasource": {
"type": "influxdb",
"uid": "bdk9nr0tksnwgf"
},
"gridPos": {
"h": 9,
"w": 24,
"x": 0,
"y": 26
},
"id": 39,
"options": {
"code": {
"language": "plaintext",
"showLineNumbers": false,
"showMiniMap": false
},
"content": "<!DOCTYPE html>\n<html lang=\"en\">\n<head>\n <meta charset=\"UTF-8\">\n <meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\">\n <title>Radar Station Alarms</title>\n <style>\n /* Define styles for different alarm statuses */\n .alarm-container {\n max-height: 300px;\n overflow-y: auto;\n }\n\n .alarm-item {\n padding: 10px;\n margin-bottom: 5px;\n color: black;\n border-radius: 5px;\n }\n\n .status-cleared { background-color: green; }\n .status-required { background-color: yellow; }\n .status-mandatory { background-color: orange; }\n .status-inoperative { background-color: red; }\n .status-secondary { background-color: white; }\n </style>\n</head>\n<body>\n <div class=\"alarm-container\">\n <div id=\"alarms-container\">\n <p>Loading alarms...</p>\n </div>\n </div>\n\n <!-- Include jQuery library -->\n <script src=\"https://code.jquery.com/jquery-3.6.0.min.js\"></script>\n <script>\n $(document).ready(function() {\n // Function to fetch the radar station alarms\n function fetchAlarms(stationId, elementId) {\n var apiUrl = \"https://api.weather.gov/radar/stations/\" + stationId + \"/alarms\";\n var alarmsElement = $(\"#\" + elementId);\n\n $.getJSON(apiUrl, function(data) {\n alarmsElement.empty();\n\n if (data[\"@graph\"] && data[\"@graph\"].length > 0) {\n data[\"@graph\"].forEach(function(alarm) {\n var alarmStatus = alarm.status;\n var alarmMessage = alarm.message;\n var alarmTimestamp = new Date(alarm.timestamp).toLocaleString();\n\n var alarmItem = $(\"<div class='alarm-item'></div>\").text(alarmMessage);\n var alarmTimestampElement = $(\"<div class='alarm-timestamp'></div>\").text(alarmTimestamp);\n\n // Set the status color based on its value\n if (alarmStatus === \"cleared\") {\n alarmItem.addClass(\"status-cleared\");\n } else if (alarmStatus === \"required\") {\n alarmItem.addClass(\"status-required\");\n } else if (alarmStatus === \"mandatory\") {\n alarmItem.addClass(\"status-mandatory\");\n } else if (alarmStatus === \"inoperative\") {\n alarmItem.addClass(\"status-inoperative\");\n } else if (alarmStatus === \"secondary\") {\n alarmItem.addClass(\"status-secondary\");\n }\n\n alarmItem.append(alarmTimestampElement);\n alarmsElement.append(alarmItem);\n });\n } else {\n alarmsElement.text(\"No alarms found.\");\n }\n }).fail(function() {\n alarmsElement.text(\"Failed to fetch alarms.\");\n });\n }\n\n // Call the fetchAlarms function initially and then every minute\n fetchAlarms(\"KMBX\", \"alarms-container\");\n setInterval(function() {\n fetchAlarms(\"KMBX\", \"alarms-container\");\n }, 60000); // 60000 milliseconds = 1 minute\n });\n </script>\n</body>\n</html>\n",
"mode": "html"
},
"pluginVersion": "10.4.2",
"title": "Site Alarms (BETA)",
"transparent": true,
"type": "text"
},
{
"collapsed": true,
"gridPos": {
"h": 1,
"w": 24,
"x": 0,
"y": 26
"y": 35
},
"id": 10,
"panels": [
@@ -1517,7 +1544,7 @@
"h": 6,
"w": 4,
"x": 0,
"y": 27
"y": 36
},
"id": 21,
"options": {
@@ -1632,7 +1659,7 @@
"h": 6,
"w": 4,
"x": 4,
"y": 27
"y": 36
},
"id": 29,
"options": {
@@ -1675,7 +1702,7 @@
"fieldConfig": {
"defaults": {
"color": {
"mode": "shades"
"mode": "thresholds"
},
"custom": {
"fillOpacity": 70,
@@ -1684,7 +1711,9 @@
"tooltip": false,
"viz": false
},
"lineWidth": 1
"insertNulls": false,
"lineWidth": 0,
"spanNulls": false
},
"displayName": "Status",
"mappings": [
@@ -1692,7 +1721,7 @@
"options": {
"from": 0,
"result": {
"color": "green",
"color": "dark-green",
"index": 0,
"text": "Operational"
},
@@ -1704,7 +1733,7 @@
"options": {
"from": 5.1,
"result": {
"color": "orange",
"color": "dark-orange",
"index": 1,
"text": "Degraded"
},
@@ -1716,7 +1745,7 @@
"options": {
"from": 10.1,
"result": {
"color": "red",
"color": "dark-red",
"index": 2,
"text": "Down"
},
@@ -1730,22 +1759,6 @@
"steps": [
{
"color": "green"
},
{
"color": "yellow",
"value": 1
},
{
"color": "orange",
"value": 15
},
{
"color": "red",
"value": 20
},
{
"color": "purple",
"value": 30
}
]
},
@@ -1757,16 +1770,17 @@
"h": 6,
"w": 4,
"x": 8,
"y": 27
"y": 36
},
"id": 33,
"options": {
"colWidth": 0.9,
"alignValue": "left",
"legend": {
"displayMode": "list",
"placement": "bottom",
"showLegend": true
},
"mergeValues": true,
"rowHeight": 0.9,
"showValue": "auto",
"tooltip": {
@@ -1786,8 +1800,22 @@
}
],
"title": "NEXRAD Status",
"transformations": [
{
"id": "convertFieldType",
"options": {
"conversions": [
{
"destinationType": "string",
"targetField": "data_age_minutes KBIS"
}
],
"fields": {}
}
}
],
"transparent": true,
"type": "status-history"
"type": "state-timeline"
},
{
"datasource": {
@@ -1833,7 +1861,7 @@
"h": 6,
"w": 4,
"x": 12,
"y": 27
"y": 36
},
"id": 30,
"options": {
@@ -1952,7 +1980,7 @@
"h": 6,
"w": 4,
"x": 16,
"y": 27
"y": 36
},
"id": 37,
"options": {
@@ -2103,7 +2131,7 @@
"h": 6,
"w": 4,
"x": 20,
"y": 27
"y": 36
},
"id": 26,
"options": {
@@ -2194,7 +2222,7 @@
"h": 6,
"w": 8,
"x": 0,
"y": 33
"y": 42
},
"id": 14,
"options": {
@@ -2273,7 +2301,7 @@
"h": 6,
"w": 4,
"x": 8,
"y": 33
"y": 42
},
"id": 13,
"options": {
@@ -2353,7 +2381,7 @@
"h": 6,
"w": 4,
"x": 12,
"y": 33
"y": 42
},
"id": 15,
"options": {
@@ -2435,7 +2463,7 @@
"h": 6,
"w": 4,
"x": 16,
"y": 33
"y": 42
},
"id": 16,
"options": {
@@ -2517,7 +2545,7 @@
"h": 6,
"w": 4,
"x": 20,
"y": 33
"y": 42
},
"id": 17,
"options": {
@@ -2642,7 +2670,7 @@
"h": 10,
"w": 8,
"x": 0,
"y": 39
"y": 48
},
"id": 18,
"options": {
@@ -2747,7 +2775,7 @@
"h": 10,
"w": 8,
"x": 8,
"y": 39
"y": 48
},
"id": 4,
"options": {
@@ -2856,7 +2884,7 @@
"h": 10,
"w": 8,
"x": 16,
"y": 39
"y": 48
},
"id": 20,
"options": {
@@ -2884,6 +2912,32 @@
"title": "Transmitter Temperature",
"transparent": true,
"type": "timeseries"
},
{
"datasource": {
"type": "influxdb",
"uid": "bdk9nr0tksnwgf"
},
"gridPos": {
"h": 9,
"w": 24,
"x": 0,
"y": 58
},
"id": 40,
"options": {
"code": {
"language": "plaintext",
"showLineNumbers": false,
"showMiniMap": false
},
"content": "<!DOCTYPE html>\n<html lang=\"en\">\n<head>\n <meta charset=\"UTF-8\">\n <meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\">\n <title>Radar Station Alarms</title>\n <style>\n /* Define styles for different alarm statuses */\n .alarm-container {\n max-height: 300px;\n overflow-y: auto;\n }\n\n .alarm-item {\n padding: 10px;\n margin-bottom: 5px;\n color: black;\n border-radius: 5px;\n }\n\n .status-cleared { background-color: green; }\n .status-required { background-color: yellow; }\n .status-mandatory { background-color: orange; }\n .status-inoperative { background-color: red; }\n .status-secondary { background-color: white; }\n </style>\n</head>\n<body>\n <div class=\"alarm-container\">\n <div id=\"alarms-container\">\n <p>Loading alarms...</p>\n </div>\n </div>\n\n <!-- Include jQuery library -->\n <script src=\"https://code.jquery.com/jquery-3.6.0.min.js\"></script>\n <script>\n $(document).ready(function() {\n // Function to fetch the radar station alarms\n function fetchAlarms(stationId, elementId) {\n var apiUrl = \"https://api.weather.gov/radar/stations/\" + stationId + \"/alarms\";\n var alarmsElement = $(\"#\" + elementId);\n\n $.getJSON(apiUrl, function(data) {\n alarmsElement.empty();\n\n if (data[\"@graph\"] && data[\"@graph\"].length > 0) {\n data[\"@graph\"].forEach(function(alarm) {\n var alarmStatus = alarm.status;\n var alarmMessage = alarm.message;\n var alarmTimestamp = new Date(alarm.timestamp).toLocaleString();\n\n var alarmItem = $(\"<div class='alarm-item'></div>\").text(alarmMessage);\n var alarmTimestampElement = $(\"<div class='alarm-timestamp'></div>\").text(alarmTimestamp);\n\n // Set the status color based on its value\n if (alarmStatus === \"cleared\") {\n alarmItem.addClass(\"status-cleared\");\n } else if (alarmStatus === \"required\") {\n alarmItem.addClass(\"status-required\");\n } else if (alarmStatus === \"mandatory\") {\n alarmItem.addClass(\"status-mandatory\");\n } else if (alarmStatus === \"inoperative\") {\n alarmItem.addClass(\"status-inoperative\");\n } else if (alarmStatus === \"secondary\") {\n alarmItem.addClass(\"status-secondary\");\n }\n\n alarmItem.append(alarmTimestampElement);\n alarmsElement.append(alarmItem);\n });\n } else {\n alarmsElement.text(\"No alarms found.\");\n }\n }).fail(function() {\n alarmsElement.text(\"Failed to fetch alarms.\");\n });\n }\n\n // Call the fetchAlarms function initially and then every minute\n fetchAlarms(\"KBIS\", \"alarms-container\");\n setInterval(function() {\n fetchAlarms(\"KBIS\", \"alarms-container\");\n }, 60000); // 60000 milliseconds = 1 minute\n });\n </script>\n</body>\n</html>\n",
"mode": "html"
},
"pluginVersion": "10.4.2",
"title": "Site Alarms (BETA)",
"transparent": true,
"type": "text"
}
],
"title": "KBIS - Bismarck NEXRAD",
@@ -2904,6 +2958,6 @@
"timezone": "browser",
"title": "NEXRAD Data",
"uid": "cdk9pt4f5l5hcb",
"version": 41,
"version": 50,
"weekStart": ""
}