{"id":7331,"date":"2024-07-04T03:50:03","date_gmt":"2024-07-04T03:50:03","guid":{"rendered":"https:\/\/lora.vsb.cz\/?page_id=7331"},"modified":"2025-07-21T11:10:16","modified_gmt":"2025-07-21T11:10:16","slug":"gateways-monitoring","status":"publish","type":"page","link":"https:\/\/lora.vsb.cz\/index.php\/gateways-monitoring\/","title":{"rendered":"Gateways Monitoring"},"content":{"rendered":"<div id=\"pl-7331\"  class=\"panel-layout\" ><div id=\"pg-7331-0\"  class=\"panel-grid panel-no-style\" ><div id=\"pgc-7331-0-0\"  class=\"panel-grid-cell panel-grid-cell-empty\" ><\/div><div id=\"pgc-7331-0-1\"  class=\"panel-grid-cell\" ><div class=\"panel-cell-style panel-cell-style-for-7331-0-1\" ><div id=\"panel-7331-0-1-0\" class=\"widget_text so-panel widget widget_custom_html panel-first-child panel-last-child\" data-index=\"0\" ><div class=\"textwidget custom-html-widget\"><div id=\"actual-time-box\" class=\"metrics-box-gray\">\n\t<p class=\"metrics-title\">Current Time<\/p>\n\t<p id=\"ostrava-time\" class=\"time-text\">Unknown<\/p>\n<\/div><\/div><\/div><\/div><\/div><div id=\"pgc-7331-0-2\"  class=\"panel-grid-cell panel-grid-cell-empty\" ><div class=\"panel-cell-style panel-cell-style-for-7331-0-2\" ><\/div><\/div><div id=\"pgc-7331-0-3\"  class=\"panel-grid-cell panel-grid-cell-mobile-last\" ><div class=\"panel-cell-style panel-cell-style-for-7331-0-3\" ><div id=\"panel-7331-0-3-0\" class=\"widget_text so-panel widget widget_custom_html panel-first-child panel-last-child\" data-index=\"1\" ><div class=\"textwidget custom-html-widget\"><div class=\"metrics-box-gray\">\n\t<p class=\"metrics-title\">Updated at<\/p>\n\t<p id=\"update-time\" class=\"time-text\">Unknown<\/p>\n<\/div><\/div><\/div><\/div><\/div><div id=\"pgc-7331-0-4\"  class=\"panel-grid-cell panel-grid-cell-empty\" ><\/div><\/div><div id=\"pg-7331-1\"  class=\"panel-grid panel-no-style\" ><div id=\"pgc-7331-1-0\"  class=\"panel-grid-cell\" ><div id=\"panel-7331-1-0-0\" class=\"so-panel widget widget_text panel-first-child panel-last-child\" data-index=\"2\" >\t\t\t<div class=\"textwidget\"><h2><strong>Ostrava, VSB-TUO, building N, 868 MHz<\/strong><\/h2>\n<\/div>\n\t\t<\/div><\/div><\/div><div id=\"pg-7331-2\"  class=\"panel-grid panel-has-style\" ><div class=\"panel-row-style panel-row-style-for-7331-2\" ><div id=\"pgc-7331-2-0\"  class=\"panel-grid-cell\" ><div id=\"panel-7331-2-0-0\" class=\"widget_text so-panel widget widget_custom_html panel-first-child\" data-index=\"3\" ><div class=\"textwidget custom-html-widget\"><div id=\"eui-b827ebfffe1abd45-status-box\" class=\"metrics-box-status\">\n\t<p class=\"metrics-title\">Status<\/p>\n\t<p id=\"eui-b827ebfffe1abd45-status\" class=\"metrics-text\">Unknown<\/p>\n<\/div><\/div><\/div><div id=\"panel-7331-2-0-1\" class=\"widget_text so-panel widget widget_custom_html\" data-index=\"4\" ><div class=\"textwidget custom-html-widget\"><div class=\"metrics-box-blue\">\n\t<p class=\"metrics-title\">Last Received Uplinks<\/p>\n\t<p id=\"eui-b827ebfffe1abd45-last-up\" class=\"metrics-text\">Unknown<\/p>\n<\/div><\/div><\/div><div id=\"panel-7331-2-0-2\" class=\"widget_text so-panel widget widget_custom_html\" data-index=\"5\" ><div class=\"textwidget custom-html-widget\"><div class=\"metrics-box-orange\">\n\t<p class=\"metrics-title\">Last Sent Downlinks<\/p>\n\t<p id=\"eui-b827ebfffe1abd45-last-down\" class=\"metrics-text\">Unknown<\/p>\n<\/div><\/div><\/div><div id=\"panel-7331-2-0-3\" class=\"widget_text so-panel widget widget_custom_html panel-last-child\" data-index=\"6\" ><div class=\"textwidget custom-html-widget\"><div class=\"metrics-box-gray\">\n\t<p class=\"metrics-title\">Gateway ID<\/p>\n\t<p class=\"metrics-big-text\">eui-b827ebfffe1abd45<\/p>\n<\/div><\/div><\/div><\/div><div id=\"pgc-7331-2-1\"  class=\"panel-grid-cell\" ><div class=\"panel-cell-style panel-cell-style-for-7331-2-1\" ><div id=\"panel-7331-2-1-0\" class=\"widget_text so-panel widget widget_custom_html panel-first-child\" data-index=\"7\" ><div class=\"textwidget custom-html-widget\"><div style=\"width: 100%; margin: auto;\">\n\t<canvas id=\"eui-b827ebfffe1abd45-up\" height=\"100\"><\/canvas>\n<\/div><\/div><\/div><div id=\"panel-7331-2-1-1\" class=\"widget_text so-panel widget widget_custom_html panel-last-child\" data-index=\"8\" ><div class=\"textwidget custom-html-widget\"><div style=\"width: 100%; margin: auto;\">\n\t<canvas id=\"eui-b827ebfffe1abd45-down\" height=\"100\"><\/canvas>\n<\/div><\/div><\/div><\/div><\/div><\/div><\/div><div id=\"pg-7331-3\"  class=\"panel-grid panel-no-style\" ><div id=\"pgc-7331-3-0\"  class=\"panel-grid-cell\" ><div id=\"panel-7331-3-0-0\" class=\"so-panel widget widget_text panel-first-child panel-last-child\" data-index=\"9\" >\t\t\t<div class=\"textwidget\"><h2><strong>Ostrava, VSB-TUO, building N, 433 MHz<\/strong><\/h2>\n<\/div>\n\t\t<\/div><\/div><\/div><div id=\"pg-7331-4\"  class=\"panel-grid panel-has-style\" ><div class=\"panel-row-style panel-row-style-for-7331-4\" ><div id=\"pgc-7331-4-0\"  class=\"panel-grid-cell\" ><div id=\"panel-7331-4-0-0\" class=\"widget_text so-panel widget widget_custom_html panel-first-child\" data-index=\"10\" ><div class=\"textwidget custom-html-widget\"><div id=\"eui-b827ebfffe1abd46-status-box\" class=\"metrics-box-status\">\n\t<p class=\"metrics-title\">Status<\/p>\n\t<p id=\"eui-b827ebfffe1abd46-status\" class=\"metrics-text\">Unknown<\/p>\n<\/div><\/div><\/div><div id=\"panel-7331-4-0-1\" class=\"widget_text so-panel widget widget_custom_html\" data-index=\"11\" ><div class=\"textwidget custom-html-widget\"><div class=\"metrics-box-blue\">\n\t<p class=\"metrics-title\">Last Received Uplinks<\/p>\n\t<p id=\"eui-b827ebfffe1abd46-last-up\" class=\"metrics-text\">Unknown<\/p>\n<\/div><\/div><\/div><div id=\"panel-7331-4-0-2\" class=\"widget_text so-panel widget widget_custom_html\" data-index=\"12\" ><div class=\"textwidget custom-html-widget\"><div class=\"metrics-box-orange\">\n\t<p class=\"metrics-title\">Last Sent Downlinks<\/p>\n\t<p id=\"eui-b827ebfffe1abd46-last-down\" class=\"metrics-text\">Unknown<\/p>\n<\/div><\/div><\/div><div id=\"panel-7331-4-0-3\" class=\"widget_text so-panel widget widget_custom_html panel-last-child\" data-index=\"13\" ><div class=\"textwidget custom-html-widget\"><div class=\"metrics-box-gray\">\n\t<p class=\"metrics-title\">Gateway ID<\/p>\n\t<p class=\"metrics-big-text\">eui-b827ebfffe1abd46<\/p>\n<\/div><\/div><\/div><\/div><div id=\"pgc-7331-4-1\"  class=\"panel-grid-cell\" ><div class=\"panel-cell-style panel-cell-style-for-7331-4-1\" ><div id=\"panel-7331-4-1-0\" class=\"widget_text so-panel widget widget_custom_html panel-first-child\" data-index=\"14\" ><div class=\"textwidget custom-html-widget\"><div style=\"width: 100%; margin: auto;\">\n\t<canvas id=\"eui-b827ebfffe1abd46-up\" height=\"100\"><\/canvas>\n<\/div><\/div><\/div><div id=\"panel-7331-4-1-1\" class=\"widget_text so-panel widget widget_custom_html panel-last-child\" data-index=\"15\" ><div class=\"textwidget custom-html-widget\"><div style=\"width: 100%; margin: auto;\">\n\t<canvas id=\"eui-b827ebfffe1abd46-down\" height=\"100\"><\/canvas>\n<\/div><\/div><\/div><\/div><\/div><\/div><\/div><div id=\"pg-7331-5\"  class=\"panel-grid panel-no-style\" ><div id=\"pgc-7331-5-0\"  class=\"panel-grid-cell\" ><div id=\"panel-7331-5-0-0\" class=\"so-panel widget widget_text panel-first-child panel-last-child\" data-index=\"16\" >\t\t\t<div class=\"textwidget\"><h2><strong>Ostrava, Havl\u00ed\u010dkovo square, Panoramka<\/strong><\/h2>\n<\/div>\n\t\t<\/div><\/div><\/div><div id=\"pg-7331-6\"  class=\"panel-grid panel-has-style\" ><div class=\"panel-row-style panel-row-style-for-7331-6\" ><div id=\"pgc-7331-6-0\"  class=\"panel-grid-cell\" ><div id=\"panel-7331-6-0-0\" class=\"widget_text so-panel widget widget_custom_html panel-first-child\" data-index=\"17\" ><div class=\"textwidget custom-html-widget\"><div id=\"tts-vsb-gw002-status-box\" class=\"metrics-box-status\">\n\t<p class=\"metrics-title\">Status<\/p>\n\t<p id=\"tts-vsb-gw002-status\" class=\"metrics-text\">Unknown<\/p>\n<\/div><\/div><\/div><div id=\"panel-7331-6-0-1\" class=\"widget_text so-panel widget widget_custom_html\" data-index=\"18\" ><div class=\"textwidget custom-html-widget\"><div class=\"metrics-box-blue\">\n\t<p class=\"metrics-title\">Last Received Uplinks<\/p>\n\t<p id=\"tts-vsb-gw002-last-up\" class=\"metrics-text\">Unknown<\/p>\n<\/div><\/div><\/div><div id=\"panel-7331-6-0-2\" class=\"widget_text so-panel widget widget_custom_html\" data-index=\"19\" ><div class=\"textwidget custom-html-widget\"><div class=\"metrics-box-orange\">\n\t<p class=\"metrics-title\">Last Sent Downlinks<\/p>\n\t<p id=\"tts-vsb-gw002-last-down\" class=\"metrics-text\">Unknown<\/p>\n<\/div><\/div><\/div><div id=\"panel-7331-6-0-3\" class=\"widget_text so-panel widget widget_custom_html panel-last-child\" data-index=\"20\" ><div class=\"textwidget custom-html-widget\"><div class=\"metrics-box-gray\">\n\t<p class=\"metrics-title\">Gateway ID<\/p>\n\t<p class=\"metrics-big-text\">tts-vsb-gw002<\/p>\n<\/div><\/div><\/div><\/div><div id=\"pgc-7331-6-1\"  class=\"panel-grid-cell\" ><div class=\"panel-cell-style panel-cell-style-for-7331-6-1\" ><div id=\"panel-7331-6-1-0\" class=\"widget_text so-panel widget widget_custom_html panel-first-child\" data-index=\"21\" ><div class=\"textwidget custom-html-widget\"><div style=\"width: 100%; margin: auto;\">\n\t<canvas id=\"tts-vsb-gw002-up\" height=\"100\"><\/canvas>\n<\/div><\/div><\/div><div id=\"panel-7331-6-1-1\" class=\"widget_text so-panel widget widget_custom_html panel-last-child\" data-index=\"22\" ><div class=\"textwidget custom-html-widget\"><div style=\"width: 100%; margin: auto;\">\n\t<canvas id=\"tts-vsb-gw002-down\" height=\"100\"><\/canvas>\n<\/div><\/div><\/div><\/div><\/div><\/div><\/div><div id=\"pg-7331-7\"  class=\"panel-grid panel-no-style\" ><div id=\"pgc-7331-7-0\"  class=\"panel-grid-cell\" ><div id=\"panel-7331-7-0-0\" class=\"so-panel widget widget_text panel-first-child panel-last-child\" data-index=\"23\" >\t\t\t<div class=\"textwidget\"><h2><strong>Ostrava, Maroldova<\/strong><\/h2>\n<\/div>\n\t\t<\/div><\/div><\/div><div id=\"pg-7331-8\"  class=\"panel-grid panel-has-style\" ><div class=\"panel-row-style panel-row-style-for-7331-8\" ><div id=\"pgc-7331-8-0\"  class=\"panel-grid-cell\" ><div id=\"panel-7331-8-0-0\" class=\"widget_text so-panel widget widget_custom_html panel-first-child\" data-index=\"24\" ><div class=\"textwidget custom-html-widget\"><div id=\"tts-vsb-gw003-status-box\" class=\"metrics-box-status\">\n\t<p class=\"metrics-title\">Status<\/p>\n\t<p id=\"tts-vsb-gw003-status\" class=\"metrics-text\">Unknown<\/p>\n<\/div><\/div><\/div><div id=\"panel-7331-8-0-1\" class=\"widget_text so-panel widget widget_custom_html\" data-index=\"25\" ><div class=\"textwidget custom-html-widget\"><div class=\"metrics-box-blue\">\n\t<p class=\"metrics-title\">Last Received Uplinks<\/p>\n\t<p id=\"tts-vsb-gw003-last-up\" class=\"metrics-text\">Unknown<\/p>\n<\/div><\/div><\/div><div id=\"panel-7331-8-0-2\" class=\"widget_text so-panel widget widget_custom_html\" data-index=\"26\" ><div class=\"textwidget custom-html-widget\"><div class=\"metrics-box-orange\">\n\t<p class=\"metrics-title\">Last Sent Downlinks<\/p>\n\t<p id=\"tts-vsb-gw003-last-down\" class=\"metrics-text\">Unknown<\/p>\n<\/div><\/div><\/div><div id=\"panel-7331-8-0-3\" class=\"widget_text so-panel widget widget_custom_html panel-last-child\" data-index=\"27\" ><div class=\"textwidget custom-html-widget\"><div class=\"metrics-box-gray\">\n\t<p class=\"metrics-title\">Gateway ID<\/p>\n\t<p class=\"metrics-big-text\">tts-vsb-gw003<\/p>\n<\/div><\/div><\/div><\/div><div id=\"pgc-7331-8-1\"  class=\"panel-grid-cell\" ><div class=\"panel-cell-style panel-cell-style-for-7331-8-1\" ><div id=\"panel-7331-8-1-0\" class=\"widget_text so-panel widget widget_custom_html panel-first-child\" data-index=\"28\" ><div class=\"textwidget custom-html-widget\"><div style=\"width: 100%; margin: auto;\">\n\t<canvas id=\"tts-vsb-gw003-up\" height=\"100\"><\/canvas>\n<\/div><\/div><\/div><div id=\"panel-7331-8-1-1\" class=\"widget_text so-panel widget widget_custom_html panel-last-child\" data-index=\"29\" ><div class=\"textwidget custom-html-widget\"><div style=\"width: 100%; margin: auto;\">\n\t<canvas id=\"tts-vsb-gw003-down\" height=\"100\"><\/canvas>\n<\/div><\/div><\/div><\/div><\/div><\/div><\/div><div id=\"pg-7331-9\"  class=\"panel-grid panel-no-style\" ><div id=\"pgc-7331-9-0\"  class=\"panel-grid-cell\" ><div id=\"panel-7331-9-0-0\" class=\"so-panel widget widget_text panel-first-child panel-last-child\" data-index=\"30\" >\t\t\t<div class=\"textwidget\"><h2><strong>Ostrava, Zde\u0148ka B\u00e1ra<\/strong><\/h2>\n<\/div>\n\t\t<\/div><\/div><\/div><div id=\"pg-7331-10\"  class=\"panel-grid panel-has-style\" ><div class=\"panel-row-style panel-row-style-for-7331-10\" ><div id=\"pgc-7331-10-0\"  class=\"panel-grid-cell\" ><div id=\"panel-7331-10-0-0\" class=\"widget_text so-panel widget widget_custom_html panel-first-child\" data-index=\"31\" ><div class=\"textwidget custom-html-widget\"><div id=\"tts-vsb-gw004-status-box\" class=\"metrics-box-status\">\n\t<p class=\"metrics-title\">Status<\/p>\n\t<p id=\"tts-vsb-gw004-status\" class=\"metrics-text\">Unknown<\/p>\n<\/div><\/div><\/div><div id=\"panel-7331-10-0-1\" class=\"widget_text so-panel widget widget_custom_html\" data-index=\"32\" ><div class=\"textwidget custom-html-widget\"><div class=\"metrics-box-blue\">\n\t<p class=\"metrics-title\">Last Received Uplinks<\/p>\n\t<p id=\"tts-vsb-gw004-last-up\" class=\"metrics-text\">Unknown<\/p>\n<\/div><\/div><\/div><div id=\"panel-7331-10-0-2\" class=\"widget_text so-panel widget widget_custom_html\" data-index=\"33\" ><div class=\"textwidget custom-html-widget\"><div class=\"metrics-box-orange\">\n\t<p class=\"metrics-title\">Last Sent Downlinks<\/p>\n\t<p id=\"tts-vsb-gw004-last-down\" class=\"metrics-text\">Unknown<\/p>\n<\/div><\/div><\/div><div id=\"panel-7331-10-0-3\" class=\"widget_text so-panel widget widget_custom_html panel-last-child\" data-index=\"34\" ><div class=\"textwidget custom-html-widget\"><div class=\"metrics-box-gray\">\n\t<p class=\"metrics-title\">Gateway ID<\/p>\n\t<p class=\"metrics-big-text\">tts-vsb-gw004<\/p>\n<\/div><\/div><\/div><\/div><div id=\"pgc-7331-10-1\"  class=\"panel-grid-cell\" ><div class=\"panel-cell-style panel-cell-style-for-7331-10-1\" ><div id=\"panel-7331-10-1-0\" class=\"widget_text so-panel widget widget_custom_html panel-first-child\" data-index=\"35\" ><div class=\"textwidget custom-html-widget\"><div style=\"width: 100%; margin: auto;\">\n\t<canvas id=\"tts-vsb-gw004-up\" height=\"100\"><\/canvas>\n<\/div><\/div><\/div><div id=\"panel-7331-10-1-1\" class=\"widget_text so-panel widget widget_custom_html panel-last-child\" data-index=\"36\" ><div class=\"textwidget custom-html-widget\"><div style=\"width: 100%; margin: auto;\">\n\t<canvas id=\"tts-vsb-gw004-down\" height=\"100\"><\/canvas>\n<\/div><\/div><\/div><\/div><\/div><\/div><\/div><div id=\"pg-7331-11\"  class=\"panel-grid panel-no-style\" ><div id=\"pgc-7331-11-0\"  class=\"panel-grid-cell\" ><div id=\"panel-7331-11-0-0\" class=\"so-panel widget widget_text panel-first-child panel-last-child\" data-index=\"37\" >\t\t\t<div class=\"textwidget\"><h2><strong>Ostrava, Ostravar Ar\u00e9na<\/strong><\/h2>\n<\/div>\n\t\t<\/div><\/div><\/div><div id=\"pg-7331-12\"  class=\"panel-grid panel-has-style\" ><div class=\"panel-row-style panel-row-style-for-7331-12\" ><div id=\"pgc-7331-12-0\"  class=\"panel-grid-cell\" ><div id=\"panel-7331-12-0-0\" class=\"widget_text so-panel widget widget_custom_html panel-first-child\" data-index=\"38\" ><div class=\"textwidget custom-html-widget\"><div id=\"tts-vsb-gw006-status-box\" class=\"metrics-box-status\">\n\t<p class=\"metrics-title\">Status<\/p>\n\t<p id=\"tts-vsb-gw006-status\" class=\"metrics-text\">Unknown<\/p>\n<\/div><\/div><\/div><div id=\"panel-7331-12-0-1\" class=\"widget_text so-panel widget widget_custom_html\" data-index=\"39\" ><div class=\"textwidget custom-html-widget\"><div class=\"metrics-box-blue\">\n\t<p class=\"metrics-title\">Last Received Uplinks<\/p>\n\t<p id=\"tts-vsb-gw006-last-up\" class=\"metrics-text\">Unknown<\/p>\n<\/div><\/div><\/div><div id=\"panel-7331-12-0-2\" class=\"widget_text so-panel widget widget_custom_html\" data-index=\"40\" ><div class=\"textwidget custom-html-widget\"><div class=\"metrics-box-orange\">\n\t<p class=\"metrics-title\">Last Sent Downlinks<\/p>\n\t<p id=\"tts-vsb-gw006-last-down\" class=\"metrics-text\">Unknown<\/p>\n<\/div><\/div><\/div><div id=\"panel-7331-12-0-3\" class=\"widget_text so-panel widget widget_custom_html panel-last-child\" data-index=\"41\" ><div class=\"textwidget custom-html-widget\"><div class=\"metrics-box-gray\">\n\t<p class=\"metrics-title\">Gateway ID<\/p>\n\t<p class=\"metrics-big-text\">tts-vsb-gw006<\/p>\n<\/div><\/div><\/div><\/div><div id=\"pgc-7331-12-1\"  class=\"panel-grid-cell\" ><div class=\"panel-cell-style panel-cell-style-for-7331-12-1\" ><div id=\"panel-7331-12-1-0\" class=\"widget_text so-panel widget widget_custom_html panel-first-child\" data-index=\"42\" ><div class=\"textwidget custom-html-widget\"><div style=\"width: 100%; margin: auto;\">\n\t<canvas id=\"tts-vsb-gw006-up\" height=\"100\"><\/canvas>\n<\/div><\/div><\/div><div id=\"panel-7331-12-1-1\" class=\"widget_text so-panel widget widget_custom_html panel-last-child\" data-index=\"43\" ><div class=\"textwidget custom-html-widget\"><div style=\"width: 100%; margin: auto;\">\n\t<canvas id=\"tts-vsb-gw006-down\" height=\"100\"><\/canvas>\n<\/div><\/div><\/div><\/div><\/div><\/div><\/div><div id=\"pg-7331-13\"  class=\"panel-grid panel-no-style\" ><div id=\"pgc-7331-13-0\"  class=\"panel-grid-cell\" ><div id=\"panel-7331-13-0-0\" class=\"so-panel widget widget_text panel-first-child panel-last-child\" data-index=\"44\" >\t\t\t<div class=\"textwidget\"><h2><strong>Opava, silo Otick\u00e1 street<\/strong><\/h2>\n<\/div>\n\t\t<\/div><\/div><\/div><div id=\"pg-7331-14\"  class=\"panel-grid panel-has-style\" ><div class=\"panel-row-style panel-row-style-for-7331-14\" ><div id=\"pgc-7331-14-0\"  class=\"panel-grid-cell\" ><div id=\"panel-7331-14-0-0\" class=\"widget_text so-panel widget widget_custom_html panel-first-child\" data-index=\"45\" ><div class=\"textwidget custom-html-widget\"><div id=\"tts-vsb-gw011-status-box\" class=\"metrics-box-status\">\n\t<p class=\"metrics-title\">Status<\/p>\n\t<p id=\"tts-vsb-gw011-status\" class=\"metrics-text\">Unknown<\/p>\n<\/div><\/div><\/div><div id=\"panel-7331-14-0-1\" class=\"widget_text so-panel widget widget_custom_html\" data-index=\"46\" ><div class=\"textwidget custom-html-widget\"><div class=\"metrics-box-blue\">\n\t<p class=\"metrics-title\">Last Received Uplinks<\/p>\n\t<p id=\"tts-vsb-gw011-last-up\" class=\"metrics-text\">Unknown<\/p>\n<\/div><\/div><\/div><div id=\"panel-7331-14-0-2\" class=\"widget_text so-panel widget widget_custom_html panel-last-child\" data-index=\"47\" ><div class=\"textwidget custom-html-widget\"><div class=\"metrics-box-gray\">\n\t<p class=\"metrics-title\">Gateway ID<\/p>\n\t<p class=\"metrics-big-text\">tts-vsb-gw011<\/p>\n<\/div><\/div><\/div><\/div><div id=\"pgc-7331-14-1\"  class=\"panel-grid-cell\" ><div class=\"panel-cell-style panel-cell-style-for-7331-14-1\" ><div id=\"panel-7331-14-1-0\" class=\"widget_text so-panel widget widget_custom_html panel-first-child panel-last-child\" data-index=\"48\" ><div class=\"textwidget custom-html-widget\"><div style=\"width: 100%; margin: auto;\">\n\t<canvas id=\"tts-vsb-gw011-up\" height=\"100\"><\/canvas>\n<\/div><\/div><\/div><\/div><\/div><\/div><\/div><div id=\"pg-7331-15\"  class=\"panel-grid panel-no-style\" ><div id=\"pgc-7331-15-0\"  class=\"panel-grid-cell\" ><div id=\"panel-7331-15-0-0\" class=\"widget_text so-panel widget widget_custom_html panel-first-child\" data-index=\"49\" ><div class=\"textwidget custom-html-widget\"><script src=\"https:\/\/cdn.jsdelivr.net\/npm\/chart.js@latest\/dist\/chart.umd.min.js\"><\/script>\n<script src=\"https:\/\/cdn.jsdelivr.net\/npm\/luxon\"><\/script>\n<script src=\"https:\/\/cdn.jsdelivr.net\/npm\/chartjs-adapter-luxon\"><\/script><\/div><\/div><div id=\"panel-7331-15-0-1\" class=\"widget_text so-panel widget widget_custom_html\" data-index=\"50\" ><div class=\"textwidget custom-html-widget\"><style>\n\t.metrics-box-blue {\n\t\tbackground-color: rgb(24, 155, 214);\n\t\tcolor: white;\n\t\tpadding: 20px;\n\t\tborder-radius: 10px;\n\t\twidth: 140px;\n\t\theight: 40px;\n\t\tposition: relative;\n\t}\n\n  .metrics-box-orange {\n\t\tbackground-color: rgba(248, 150, 23, 1);\n\t\tcolor: white;\n\t\tpadding: 20px;\n\t\tborder-radius: 10px;\n\t\twidth: 140px;\n\t\theight: 40px;\n\t\tposition: relative;\n\t}\n\n\t.metrics-box-status {\n\t\tbackground-color: rgb(152, 152, 152);\n\t\tcolor: white;\n\t\tpadding: 20px;\n\t\tborder-radius: 10px;\n\t\twidth: 140px;\n\t\theight: 40px;\n\t\tposition: relative;\n\t}\n\n  .metrics-box-gray {\n\t\tbackground-color: rgb(152, 152, 152);\n\t\tcolor: white;\n\t\tpadding: 20px;\n\t\tborder-radius: 10px;\n\t\twidth: 140px;\n\t\theight: 40px;\n\t\tposition: relative;\n\t}\n\n\t.metrics-title {\n\t\tfont-size: 14px;\n\t\tmargin: 0;\n\t\tposition: absolute;\n\t\ttop: 10px;\n\t\tleft: 10px;\n\t}\n\n  .metrics-text {\n\t\tfont-size: 24px;\n\t\tmargin: 0;\n\t\tposition: absolute;\n\t\ttop: 35%;\n\t\tleft: 50%;\n\t\ttransform: translate(-50%, -50%);\n\t\ttext-align: center;\n\t}\n\t\n\t.metrics-big-text {\n\t\tfont-size: 16px;\n\t\tposition: absolute;\n\t\ttop: 45%;\n\t\tleft: 50%;\n\t\ttransform: translate(-50%, -50%);\n\t\twhite-space: nowrap;\n\t}\n\n\t.time-text {\n\t\tfont-size: 16px;\n\t\tposition: absolute;\n\t\ttop: 48%;\n\t\tleft: 50%;\n\t\ttext-align: center;\n\t\ttransform: translate(-50%, -50%);\n\t}\n<\/style><\/div><\/div><div id=\"panel-7331-15-0-2\" class=\"widget_text so-panel widget widget_custom_html panel-last-child\" data-index=\"51\" ><div class=\"textwidget custom-html-widget\"><script>\n    let charts = {};\n    let lastUpdated = null;\n\n    async function fetchData() {\n        const url = 'https:\/\/conntest5g.vsb.cz\/data.json';\n        const cacheBuster = `?cache_buster=${new Date().getTime()}`;\n        try {\n            const response = await fetch(url + cacheBuster, {\n                method: 'GET',\n                cache: 'reload'\n            });\n            if (!response.ok) {\n                throw new Error(`HTTP error! status: ${response.status}`);\n            }\n            const data = await response.json();\n            return data;\n        } catch (error) {\n            console.error('Error fetching the data:', error);\n            return null;\n        }\n    }\n\n\n    function createChart(chartData, chartLabel, chartColor, chartId) {\n        var ctx = document.getElementById(chartId).getContext('2d');\n\n        if (charts[chartId]) {\n            charts[chartId].destroy();\n        }\n\n        charts[chartId] = new Chart(ctx, {\n            type: 'line',\n            data: {\n                datasets: [{\n                    label: chartLabel,\n                    data: chartData,\n                    fill: false,\n                    borderColor: chartColor,\n                    tension: 0.0,\n                    pointRadius: 0\n                }]\n            },\n            options: {\n                responsive: true,\n                \/\/maintainAspectRatio: false,\n                animation: false,\n                plugins: {\n                    tooltip: {\n                        mode: 'index',\n                        intersect: false,\n                    }\n                },\n                scales: {\n                    x: {\n                        type: 'time',\n                        time: {\n                            unit: 'hour',\n                            displayFormats: {\n                                hour: 'HH:mm'\n                            },\n                            tooltipFormat: 'HH:mm \\nDD'\n                        },\n                    },\n                    y: {\n                        beginAtZero: true,\n                        ticks: {\n                            precision: 0\n                        }\n                    }\n                }\n            }\n        });\n    }\n\n    window.addEventListener('resize', () => {\n        Object.values(charts).forEach(chart => {\n            chart.resize();\n        });\n    });\n\n\n    function updateStatus(statusData, statusDivId, statusId) {\n        const statusText = document.getElementById(statusId);\n        statusText.innerText = statusData;\n\n        const statusDiv = document.getElementById(statusDivId);\n\n        if (statusData === 'Connected') {\n            statusDiv.style.backgroundColor = 'rgba(24, 155, 214, 1)';\n        } else if (statusData === 'Disconnected') {\n            statusDiv.style.backgroundColor = 'rgba(248, 150, 23, 1)';\n        }\n    }\n\n\n    function getLastValue(data) {\n        const values = data;\n        if (values && values.length > 0) {\n            return values[values.length - 1]['y'];\n        }\n        return null;\n    }\n\n\n    function updateMetrics(metricsData, metricsId) {\n        const metricsText = document.getElementById(metricsId);\n        var lastValue = getLastValue(metricsData);\n\n        if (lastValue != null) {\n            metricsText.innerText = lastValue;\n        }\n    }\n\n\n    function parseDateString(dateString) {\n        const [time, date] = dateString.split(' ');\n        const [hours, minutes, seconds] = time.split(':');\n        const [day, month, year] = date.split('. ').map(part => part.trim());\n        return new Date(year, month - 1, day, hours, minutes, seconds);\n    }\n\n\n    async function init() {\n        const data = await fetchData();\n\n        if (data) {\n\n            const newLastUpdated = data['last_updated'];\n            if (!lastUpdated || newLastUpdated !== lastUpdated) {\n                lastUpdated = newLastUpdated;\n\n                const updatedText = document.getElementById('update-time');\n                updatedText.innerText = newLastUpdated;\n\n\n                const datasets = [\n                    { data: data['eui-b827ebfffe1abd45']['uplink_count'], label: 'Received Uplinks', color: 'rgba(24, 155, 214, 1)', id: 'eui-b827ebfffe1abd45-up' },\n                    { data: data['eui-b827ebfffe1abd45']['downlink_count'], label: 'Sent Downlinks', color: 'rgba(248, 150, 23, 1)', id: 'eui-b827ebfffe1abd45-down' },\n                    { data: data['eui-b827ebfffe1abd46']['uplink_count'], label: 'Received Uplinks', color: 'rgba(24, 155, 214, 1)', id: 'eui-b827ebfffe1abd46-up' },\n                    { data: data['eui-b827ebfffe1abd46']['downlink_count'], label: 'Sent Downlinks', color: 'rgba(248, 150, 23, 1)', id: 'eui-b827ebfffe1abd46-down' },\n                    { data: data['tts-vsb-gw002']['uplink_count'], label: 'Received Uplinks', color: 'rgba(24, 155, 214, 1)', id: 'tts-vsb-gw002-up' },\n                    { data: data['tts-vsb-gw002']['downlink_count'], label: 'Sent Downlinks', color: 'rgba(248, 150, 23, 1)', id: 'tts-vsb-gw002-down' },\n                    { data: data['tts-vsb-gw003']['uplink_count'], label: 'Received Uplinks', color: 'rgba(24, 155, 214, 1)', id: 'tts-vsb-gw003-up' },\n                    { data: data['tts-vsb-gw003']['downlink_count'], label: 'Sent Downlinks', color: 'rgba(248, 150, 23, 1)', id: 'tts-vsb-gw003-down' },\n                    { data: data['tts-vsb-gw004']['uplink_count'], label: 'Received Uplinks', color: 'rgba(24, 155, 214, 1)', id: 'tts-vsb-gw004-up' },\n                    { data: data['tts-vsb-gw004']['downlink_count'], label: 'Sent Downlinks', color: 'rgba(248, 150, 23, 1)', id: 'tts-vsb-gw004-down' },\n                    { data: data['tts-vsb-gw006']['uplink_count'], label: 'Received Uplinks', color: 'rgba(24, 155, 214, 1)', id: 'tts-vsb-gw006-up' },\n                    { data: data['tts-vsb-gw006']['downlink_count'], label: 'Sent Downlinks', color: 'rgba(248, 150, 23, 1)', id: 'tts-vsb-gw006-down' },\n                    { data: data['tts-vsb-gw011']['uplink_count'], label: 'Received Uplinks', color: 'rgba(24, 155, 214, 1)', id: 'tts-vsb-gw011-up' }\n                ];\n\n                datasets.forEach(dataset => {\n                    createChart(dataset.data, dataset.label, dataset.color, dataset.id);\n                });\n\n\n                const statuses = [\n                    { data: data['eui-b827ebfffe1abd45']['gw_status'], divid: 'eui-b827ebfffe1abd45-status-box', id: 'eui-b827ebfffe1abd45-status' },\n                    { data: data['eui-b827ebfffe1abd46']['gw_status'], divid: 'eui-b827ebfffe1abd46-status-box', id: 'eui-b827ebfffe1abd46-status' },\n                    { data: data['tts-vsb-gw002']['gw_status'], divid: 'tts-vsb-gw002-status-box', id: 'tts-vsb-gw002-status' },\n                    { data: data['tts-vsb-gw003']['gw_status'], divid: 'tts-vsb-gw003-status-box', id: 'tts-vsb-gw003-status' },\n                    { data: data['tts-vsb-gw004']['gw_status'], divid: 'tts-vsb-gw004-status-box', id: 'tts-vsb-gw004-status' },\n                    { data: data['tts-vsb-gw006']['gw_status'], divid: 'tts-vsb-gw006-status-box', id: 'tts-vsb-gw006-status' },\n                    { data: data['tts-vsb-gw011']['gw_status'], divid: 'tts-vsb-gw011-status-box', id: 'tts-vsb-gw011-status' }\n                ];\n\n                statuses.forEach(status => {\n                    updateStatus(status.data, status.divid, status.id);\n                });\n\n\n                const metrics = [\n                    { data: data['eui-b827ebfffe1abd45']['uplink_count'], id: 'eui-b827ebfffe1abd45-last-up' },\n                    { data: data['eui-b827ebfffe1abd45']['downlink_count'], id: 'eui-b827ebfffe1abd45-last-down' },\n                    { data: data['eui-b827ebfffe1abd46']['uplink_count'], id: 'eui-b827ebfffe1abd46-last-up' },\n                    { data: data['eui-b827ebfffe1abd46']['downlink_count'], id: 'eui-b827ebfffe1abd46-last-down' },\n                    { data: data['tts-vsb-gw002']['uplink_count'], id: 'tts-vsb-gw002-last-up' },\n                    { data: data['tts-vsb-gw002']['downlink_count'], id: 'tts-vsb-gw002-last-down' },\n                    { data: data['tts-vsb-gw003']['uplink_count'], id: 'tts-vsb-gw003-last-up' },\n                    { data: data['tts-vsb-gw003']['downlink_count'], id: 'tts-vsb-gw003-last-down' },\n                    { data: data['tts-vsb-gw004']['uplink_count'], id: 'tts-vsb-gw004-last-up' },\n                    { data: data['tts-vsb-gw004']['downlink_count'], id: 'tts-vsb-gw004-last-down' },\n                    { data: data['tts-vsb-gw006']['uplink_count'], id: 'tts-vsb-gw006-last-up' },\n                    { data: data['tts-vsb-gw006']['downlink_count'], id: 'tts-vsb-gw006-last-down' },\n                    { data: data['tts-vsb-gw011']['uplink_count'], id: 'tts-vsb-gw011-last-up' }\n                ];\n\n                metrics.forEach(metric => {\n                    updateMetrics(metric.data, metric.id);\n                });\n            }\n        } else {\n            console.error('No data available to display');\n        }\n    }\n\n    init();\n    setInterval(init, 30000);\n\n\n    function updateTime() {\n        const timeElement = document.getElementById('ostrava-time');\n        const now = new Date();\n        const options = { timeZone: 'Europe\/Prague', hour12: false };\n        \n        const time = now.toLocaleTimeString('en-GB', options);\n        const date = now.toLocaleDateString('cs-CZ', {\n            day: '2-digit',\n            month: '2-digit',\n            year: 'numeric'\n        });\n\n        timeElement.innerText = `${time}\\n${date}`;\n    }\n\n\n    updateTime();\n    setInterval(updateTime, 1000);\n<\/script><\/div><\/div><\/div><\/div><\/div>","protected":false},"excerpt":{"rendered":"<p>Ostrava, VSB-TUO, building N, 868 MHz<\/p>\n","protected":false},"author":4,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"footnotes":""},"class_list":["post-7331","page","type-page","status-publish","hentry","post"],"_links":{"self":[{"href":"https:\/\/lora.vsb.cz\/index.php\/wp-json\/wp\/v2\/pages\/7331","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/lora.vsb.cz\/index.php\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/lora.vsb.cz\/index.php\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/lora.vsb.cz\/index.php\/wp-json\/wp\/v2\/users\/4"}],"replies":[{"embeddable":true,"href":"https:\/\/lora.vsb.cz\/index.php\/wp-json\/wp\/v2\/comments?post=7331"}],"version-history":[{"count":388,"href":"https:\/\/lora.vsb.cz\/index.php\/wp-json\/wp\/v2\/pages\/7331\/revisions"}],"predecessor-version":[{"id":8847,"href":"https:\/\/lora.vsb.cz\/index.php\/wp-json\/wp\/v2\/pages\/7331\/revisions\/8847"}],"wp:attachment":[{"href":"https:\/\/lora.vsb.cz\/index.php\/wp-json\/wp\/v2\/media?parent=7331"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}