{ "__inputs": [], "__requires": [ { "type": "grafana", "id": "grafana", "name": "Grafana", "version": "5.4.0" }, { "type": "panel", "id": "grafana-worldmap-panel", "name": "Worldmap Panel", "version": "0.1.2" }, { "type": "panel", "id": "graph", "name": "Graph", "version": "5.0.0" }, { "type": "datasource", "id": "mysql", "name": "MySQL", "version": "5.0.0" }, { "type": "panel", "id": "singlestat", "name": "Singlestat", "version": "5.0.0" }, { "type": "panel", "id": "table", "name": "Table", "version": "5.0.0" } ], "annotations": { "list": [ { "builtIn": 1, "datasource": "-- Grafana --", "enable": true, "hide": true, "iconColor": "rgba(0, 211, 255, 1)", "name": "Annotations & Alerts", "type": "dashboard" } ] }, "editable": true, "gnetId": null, "graphTooltip": 0, "id": null, "iteration": 1544534353348, "links": [], "panels": [ { "collapsed": false, "gridPos": { "h": 1, "w": 24, "x": 0, "y": 0 }, "id": 28, "panels": [], "title": "Smartlock", "type": "row" }, { "cacheTimeout": null, "colorBackground": true, "colorValue": false, "colors": [ "#e24d42", "#629e51", "#e24d42" ], "datasource": "$Datasource", "format": "none", "gauge": { "maxValue": 100, "minValue": 0, "show": false, "thresholdLabels": false, "thresholdMarkers": true }, "gridPos": { "h": 2, "w": 3, "x": 0, "y": 1 }, "id": 14, "interval": null, "links": [], "mappingType": 2, "mappingTypes": [ { "name": "value to text", "value": 1 }, { "name": "range to text", "value": 2 } ], "maxDataPoints": 100, "nullPointMode": "connected", "nullText": null, "postfix": "", "postfixFontSize": "50%", "prefix": "", "prefixFontSize": "50%", "rangeMaps": [ { "from": "0", "text": "Unkalibriert", "to": "0" }, { "from": "1", "text": "Geschlossen", "to": "1" }, { "from": "2", "text": "Öffne ...", "to": "2" }, { "from": "3", "text": "Offen", "to": "3" }, { "from": "4", "text": "Schließe ...", "to": "4" }, { "from": "5", "text": "Schlossfalle offen", "to": "5" }, { "from": "6", "text": "Offen (Lock 'n' Go)", "to": "6" }, { "from": "7", "text": "Schlossfalle öffnen ...", "to": "7" }, { "from": "8", "text": "Fehler", "to": "253" }, { "from": "254", "text": "Motor blockiert", "to": "254" }, { "from": "255", "text": "Undefiniert", "to": "255" } ], "sparkline": { "fillColor": "rgba(31, 118, 189, 0.18)", "full": false, "lineColor": "rgb(31, 120, 193)", "show": false }, "tableColumn": "state", "targets": [ { "alias": "", "format": "table", "group": [], "hide": false, "metricColumn": "none", "rawQuery": true, "rawSql": "SELECT \n s.state\nFROM \n Smartlock AS s\nWHERE s.name = \"$SmartlockName\"\n;", "refId": "A", "select": [ [ { "params": [ "value" ], "type": "column" } ] ], "timeColumn": "time", "where": [ { "name": "$__timeFilter", "params": [], "type": "macro" } ] } ], "thresholds": "0,3", "title": "Smartlock Status", "type": "singlestat", "valueFontSize": "80%", "valueMaps": [], "valueName": "avg" }, { "cacheTimeout": null, "colorBackground": true, "colorValue": false, "colors": [ "#e24d42", "#629e51", "#ba43a9" ], "datasource": "$Datasource", "description": "", "format": "none", "gauge": { "maxValue": 100, "minValue": 0, "show": false, "thresholdLabels": false, "thresholdMarkers": true }, "gridPos": { "h": 2, "w": 3, "x": 3, "y": 1 }, "id": 20, "interval": null, "links": [], "mappingType": 1, "mappingTypes": [ { "name": "value to text", "value": 1 }, { "name": "range to text", "value": 2 } ], "maxDataPoints": 100, "nullPointMode": "connected", "nullText": null, "postfix": "", "postfixFontSize": "50%", "prefix": "", "prefixFontSize": "50%", "rangeMaps": [ { "from": "null", "text": "N/A", "to": "null" } ], "sparkline": { "fillColor": "rgba(31, 118, 189, 0.18)", "full": false, "lineColor": "rgb(31, 120, 193)", "show": false }, "tableColumn": "batteryCritical", "targets": [ { "alias": "", "format": "table", "group": [], "hide": false, "metricColumn": "none", "rawQuery": true, "rawSql": "SELECT\n s.batteryCritical\nFROM \n Smartlock as s\nWHERE s.name = \"$SmartlockName\"\n;", "refId": "A", "select": [ [ { "params": [ "value" ], "type": "column" } ] ], "timeColumn": "time", "where": [ { "name": "$__timeFilter", "params": [], "type": "macro" } ] } ], "thresholds": "0,1", "title": "Batteriestatus", "type": "singlestat", "valueFontSize": "80%", "valueMaps": [ { "op": "=", "text": "Okay", "value": "0" }, { "op": "=", "text": "Kritisch", "value": "1" } ], "valueName": "avg" }, { "cacheTimeout": null, "colorBackground": true, "colorValue": false, "colors": [ "#629e51", "#629e51", "#d44a3a" ], "datasource": "$Datasource", "description": "", "format": "none", "gauge": { "maxValue": 100, "minValue": 0, "show": false, "thresholdLabels": false, "thresholdMarkers": true }, "gridPos": { "h": 2, "w": 3, "x": 6, "y": 1 }, "id": 74, "interval": null, "links": [], "mappingType": 1, "mappingTypes": [ { "name": "value to text", "value": 1 }, { "name": "range to text", "value": 2 } ], "maxDataPoints": 100, "nullPointMode": "connected", "nullText": null, "postfix": "", "postfixFontSize": "80%", "prefix": "", "prefixFontSize": "50%", "rangeMaps": [ { "from": "0", "text": "Okay", "to": "0" }, { "from": "1", "text": "Nicht registriert", "to": "255" }, { "from": "", "text": "", "to": "" }, { "from": "", "text": "", "to": "" } ], "sparkline": { "fillColor": "rgba(31, 118, 189, 0.18)", "full": false, "lineColor": "rgb(31, 120, 193)", "show": false }, "tableColumn": "serverState", "targets": [ { "alias": "", "format": "table", "group": [], "metricColumn": "none", "rawQuery": true, "rawSql": "/*this is currently unkown*/\nSELECT \n s.serverState\nFROM Smartlock AS s\nWHERE s.name = \"$SmartlockName\"\n;", "refId": "A", "select": [ [ { "params": [ "value" ], "type": "column" } ] ], "timeColumn": "time", "where": [ { "name": "$__timeFilter", "params": [], "type": "macro" } ] } ], "thresholds": "0,1", "title": "Server Status", "type": "singlestat", "valueFontSize": "80%", "valueMaps": [ { "op": "=", "text": "Okay", "value": "0" }, { "op": "=", "text": "Nicht registriert", "value": "1" }, { "op": "=", "text": "Auth UUID ungültig", "value": "2" }, { "op": "=", "text": "Auth ungültig", "value": "3" }, { "op": "=", "text": "Offline", "value": "4" } ], "valueName": "avg" }, { "cacheTimeout": null, "colorBackground": true, "colorValue": false, "colors": [ "#d44a3a", "#1f78c1", "#299c46" ], "datasource": "$Datasource", "format": "none", "gauge": { "maxValue": 100, "minValue": 0, "show": false, "thresholdLabels": false, "thresholdMarkers": true }, "gridPos": { "h": 2, "w": 3, "x": 9, "y": 1 }, "id": 4, "interval": null, "links": [], "mappingType": 1, "mappingTypes": [ { "name": "value to text", "value": 1 }, { "name": "range to text", "value": 2 } ], "maxDataPoints": 100, "nullPointMode": "connected", "nullText": null, "postfix": "", "postfixFontSize": "50%", "prefix": "", "prefixFontSize": "50%", "rangeMaps": [ { "from": "null", "text": "N/A", "to": "null" } ], "sparkline": { "fillColor": "rgba(31, 118, 189, 0.18)", "full": false, "lineColor": "rgb(31, 120, 193)", "show": false }, "tableColumn": "COUNT(*)", "targets": [ { "alias": "", "format": "table", "group": [], "hide": false, "metricColumn": "none", "rawQuery": true, "rawSql": "SELECT \n COUNT(*) \nFROM \n SmartlockLog AS n,\n Smartlock AS s\nWHERE s.name = \"$SmartlockName\"\n;", "refId": "A", "select": [ [ { "params": [ "value" ], "type": "column" } ] ], "timeColumn": "time", "where": [ { "name": "$__timeFilter", "params": [], "type": "macro" } ] } ], "thresholds": "0", "title": "Anzahl Events (Gesamt)", "type": "singlestat", "valueFontSize": "80%", "valueMaps": [ { "op": "=", "text": "N/A", "value": "null" } ], "valueName": "avg" }, { "cacheTimeout": null, "colorBackground": true, "colorValue": false, "colors": [ "#299c46", "#629e51", "#d44a3a" ], "datasource": "$Datasource", "format": "none", "gauge": { "maxValue": 100, "minValue": 0, "show": false, "thresholdLabels": false, "thresholdMarkers": true }, "gridPos": { "h": 2, "w": 3, "x": 12, "y": 1 }, "id": 22, "interval": null, "links": [], "mappingType": 1, "mappingTypes": [ { "name": "value to text", "value": 1 }, { "name": "range to text", "value": 2 } ], "maxDataPoints": 100, "nullPointMode": "connected", "nullText": null, "postfix": "", "postfixFontSize": "50%", "prefix": "", "prefixFontSize": "50%", "rangeMaps": [ { "from": "null", "text": "N/A", "to": "null" } ], "sparkline": { "fillColor": "rgba(31, 118, 189, 0.18)", "full": false, "lineColor": "rgb(31, 120, 193)", "show": false }, "tableColumn": "FORMAT((Tage.Datum / (SELECT COUNT(*) FROM SmartlockLog AS n WHERE n.action = 4) * 7), 0)", "targets": [ { "alias": "", "format": "table", "group": [], "hide": false, "metricColumn": "none", "rawQuery": true, "rawSql": "SELECT\n FORMAT((Tage.Datum / (SELECT COUNT(*) FROM SmartlockLog AS n WHERE n.action = 4) * 7), 0)\nFROM (\n SELECT \n * \n FROM (\n SELECT \n TIMESTAMPDIFF(SECOND, NOW(), ADDTIME(n.date, SEC_TO_TIME(s.timezoneOffset*60))) / -86400 as \"Datum\" /*Hole nur die letzte Zeile*/\n FROM \n SmartlockLog AS n,\n Smartlock AS s\n WHERE s.name = \"$SmartlockName\" \n ORDER BY n.date ASC /*ORDER BY ist wichtig, damit immer die letzte Zeile zur Berechnung verwendet wird!*/\n LIMIT 3\n ) AS RESULT \n ORDER BY RESULT.`Datum` ASC \n LIMIT 1 /*3 - 1 = 2 >> überspringe die letzten 2 Einträge, weil das Datum noch falsch gesetzt war (Initialisierung des Schlosses 2018, aber laut Einträgen 2016)*/\n) AS Tage\n;", "refId": "A", "select": [ [ { "params": [ "value" ], "type": "column" } ] ], "timeColumn": "time", "where": [ { "name": "$__timeFilter", "params": [], "type": "macro" } ] } ], "thresholds": "", "title": "Anzahl Events pro Woche", "type": "singlestat", "valueFontSize": "80%", "valueMaps": [ { "op": "=", "text": "N/A", "value": "null" } ], "valueName": "avg" }, { "cacheTimeout": null, "colorBackground": true, "colorValue": false, "colors": [ "#299c46", "#629e51", "#d44a3a" ], "datasource": "$Datasource", "format": "none", "gauge": { "maxValue": 100, "minValue": 0, "show": false, "thresholdLabels": false, "thresholdMarkers": true }, "gridPos": { "h": 2, "w": 3, "x": 15, "y": 1 }, "id": 7, "interval": null, "links": [], "mappingType": 1, "mappingTypes": [ { "name": "value to text", "value": 1 }, { "name": "range to text", "value": 2 } ], "maxDataPoints": 100, "nullPointMode": "connected", "nullText": null, "postfix": "", "postfixFontSize": "50%", "prefix": "", "prefixFontSize": "50%", "rangeMaps": [ { "from": "null", "text": "N/A", "to": "null" } ], "sparkline": { "fillColor": "rgba(31, 118, 189, 0.18)", "full": false, "lineColor": "rgb(31, 120, 193)", "show": false }, "tableColumn": "COUNT(*)", "targets": [ { "alias": "", "format": "table", "group": [], "hide": false, "metricColumn": "none", "rawQuery": true, "rawSql": "SELECT \n COUNT(*) \nFROM \n SmartlockLog AS n,\n Smartlock AS s\nWHERE \n n.action = 2 AND\n s.name = \"$SmartlockName\"\n;", "refId": "A", "select": [ [ { "params": [ "value" ], "type": "column" } ] ], "timeColumn": "time", "where": [ { "name": "$__timeFilter", "params": [], "type": "macro" } ] } ], "thresholds": "", "title": "Anzahl Zusperren", "type": "singlestat", "valueFontSize": "80%", "valueMaps": [ { "op": "=", "text": "N/A", "value": "null" } ], "valueName": "avg" }, { "cacheTimeout": null, "colorBackground": true, "colorValue": false, "colors": [ "#299c46", "#629e51", "#d44a3a" ], "datasource": "$Datasource", "format": "none", "gauge": { "maxValue": 100, "minValue": 0, "show": false, "thresholdLabels": false, "thresholdMarkers": true }, "gridPos": { "h": 2, "w": 3, "x": 18, "y": 1 }, "id": 8, "interval": null, "links": [], "mappingType": 1, "mappingTypes": [ { "name": "value to text", "value": 1 }, { "name": "range to text", "value": 2 } ], "maxDataPoints": 100, "nullPointMode": "connected", "nullText": null, "postfix": "", "postfixFontSize": "50%", "prefix": "", "prefixFontSize": "50%", "rangeMaps": [ { "from": "null", "text": "N/A", "to": "null" } ], "sparkline": { "fillColor": "rgba(31, 118, 189, 0.18)", "full": false, "lineColor": "rgb(31, 120, 193)", "show": false }, "tableColumn": "COUNT(*)", "targets": [ { "alias": "", "format": "table", "group": [], "hide": false, "metricColumn": "none", "rawQuery": true, "rawSql": "SELECT \n COUNT(*) \nFROM \n SmartlockLog AS n,\n Smartlock AS s\nWHERE \n n.action = 4 AND\n s.name = \"$SmartlockName\"\n;", "refId": "A", "select": [ [ { "params": [ "value" ], "type": "column" } ] ], "timeColumn": "time", "where": [ { "name": "$__timeFilter", "params": [], "type": "macro" } ] } ], "thresholds": "", "title": "Anzahl Lock 'n' Go", "type": "singlestat", "valueFontSize": "80%", "valueMaps": [ { "op": "=", "text": "N/A", "value": "null" } ], "valueName": "avg" }, { "cacheTimeout": null, "colorBackground": true, "colorValue": false, "colors": [ "#299c46", "#e24d42", "#d44a3a" ], "datasource": "$Datasource", "format": "none", "gauge": { "maxValue": 100, "minValue": 0, "show": false, "thresholdLabels": false, "thresholdMarkers": true }, "gridPos": { "h": 2, "w": 3, "x": 21, "y": 1 }, "id": 6, "interval": null, "links": [], "mappingType": 1, "mappingTypes": [ { "name": "value to text", "value": 1 }, { "name": "range to text", "value": 2 } ], "maxDataPoints": 100, "nullPointMode": "connected", "nullText": null, "postfix": "", "postfixFontSize": "50%", "prefix": "", "prefixFontSize": "50%", "rangeMaps": [ { "from": "null", "text": "N/A", "to": "null" } ], "sparkline": { "fillColor": "rgba(31, 118, 189, 0.18)", "full": false, "lineColor": "rgb(31, 120, 193)", "show": false }, "tableColumn": "COUNT(*)", "targets": [ { "alias": "", "format": "table", "group": [], "hide": false, "metricColumn": "none", "rawQuery": true, "rawSql": "SELECT \n COUNT(*) \nFROM \n SmartlockLog AS n,\n Smartlock AS s\nWHERE \n n.action in (1,4,5) AND\n s.name = \"$SmartlockName\"\n;", "refId": "A", "select": [ [ { "params": [ "value" ], "type": "column" } ] ], "timeColumn": "time", "where": [ { "name": "$__timeFilter", "params": [], "type": "macro" } ] } ], "thresholds": "", "title": "Anzahl Aufsperren", "type": "singlestat", "valueFontSize": "80%", "valueMaps": [ { "op": "=", "text": "N/A", "value": "null" } ], "valueName": "avg" }, { "cacheTimeout": null, "colorBackground": true, "colorValue": false, "colors": [ "#d44a3a", "rgba(237, 129, 40, 0.89)", "#629e51" ], "datasource": "$Datasource", "description": "", "format": "none", "gauge": { "maxValue": 100, "minValue": 0, "show": false, "thresholdLabels": false, "thresholdMarkers": true }, "gridPos": { "h": 2, "w": 3, "x": 0, "y": 3 }, "id": 70, "interval": null, "links": [], "mappingType": 1, "mappingTypes": [ { "name": "value to text", "value": 1 }, { "name": "range to text", "value": 2 } ], "maxDataPoints": 100, "nullPointMode": "connected", "nullText": null, "postfix": "", "postfixFontSize": "80%", "prefix": "", "prefixFontSize": "50%", "rangeMaps": [ { "from": "null", "text": "N/A", "to": "null" } ], "sparkline": { "fillColor": "rgba(31, 118, 189, 0.18)", "full": false, "lineColor": "rgb(31, 120, 193)", "show": false }, "tableColumn": "mode", "targets": [ { "alias": "", "format": "table", "group": [], "metricColumn": "none", "rawQuery": true, "rawSql": "/*It's unclear until now what this means*/\nSELECT \n s.mode\nFROM Smartlock AS s\nWHERE s.name = \"$SmartlockName\"\n;", "refId": "A", "select": [ [ { "params": [ "value" ], "type": "column" } ] ], "timeColumn": "time", "where": [ { "name": "$__timeFilter", "params": [], "type": "macro" } ] } ], "thresholds": "1,2", "title": "Abschließen - aktueller Zustand", "type": "singlestat", "valueFontSize": "50%", "valueMaps": [ { "op": "=", "text": "Einfach abgeschlossen", "value": "1" }, { "op": "=", "text": "Doppelt abgeschlossen", "value": "2" } ], "valueName": "avg" }, { "cacheTimeout": null, "colorBackground": true, "colorValue": false, "colors": [ "#299c46", "#806eb7", "#d44a3a" ], "datasource": "$Datasource", "description": "", "format": "none", "gauge": { "maxValue": 100, "minValue": 0, "show": false, "thresholdLabels": false, "thresholdMarkers": true }, "gridPos": { "h": 2, "w": 3, "x": 3, "y": 3 }, "id": 57, "interval": null, "links": [], "mappingType": 1, "mappingTypes": [ { "name": "value to text", "value": 1 }, { "name": "range to text", "value": 2 } ], "maxDataPoints": 100, "nullPointMode": "connected", "nullText": null, "postfix": "", "postfixFontSize": "80%", "prefix": "", "prefixFontSize": "50%", "rangeMaps": [ { "from": "null", "text": "N/A", "to": "null" } ], "sparkline": { "fillColor": "rgba(31, 118, 189, 0.18)", "full": false, "lineColor": "rgb(31, 120, 193)", "show": false }, "tableColumn": "DATE_FORMAT(ADDTIME(s.updateDate, SEC_TO_TIME(s.timezoneOffset*60)),'%d.%m.%Y %H:%i:%s')", "targets": [ { "alias": "", "format": "table", "group": [], "metricColumn": "none", "rawQuery": true, "rawSql": "SELECT\n DATE_FORMAT(ADDTIME(s.updateDate, SEC_TO_TIME(s.timezoneOffset*60)),'%d.%m.%Y %H:%i:%s')\nFROM\n Smartlock AS s\nWHERE s.name = \"$SmartlockName\"\n;", "refId": "A", "select": [ [ { "params": [ "value" ], "type": "column" } ] ], "timeColumn": "time", "where": [ { "name": "$__timeFilter", "params": [], "type": "macro" } ] } ], "thresholds": "", "title": "Letztes Update", "type": "singlestat", "valueFontSize": "50%", "valueMaps": [], "valueName": "avg" }, { "columns": [], "datasource": "$Datasource", "fontSize": "100%", "gridPos": { "h": 10, "w": 6, "x": 6, "y": 3 }, "id": 12, "links": [], "pageSize": 8, "scroll": true, "showHeader": true, "sort": { "col": 1, "desc": true }, "styles": [ { "alias": "", "colorMode": null, "colors": [ "rgba(245, 54, 54, 0.9)", "rgba(237, 129, 40, 0.89)", "rgba(50, 172, 45, 0.97)" ], "dateFormat": "HH:mm:ss - DD.MM.YYYY", "decimals": 2, "mappingType": 1, "pattern": "Datum", "thresholds": [], "type": "date", "unit": "short" } ], "targets": [ { "alias": "", "bucketAggs": [ { "field": "date", "id": "2", "settings": { "interval": "auto", "min_doc_count": 0, "trimEdges": 0 }, "type": "date_histogram" } ], "format": "table", "group": [], "hide": false, "metricColumn": "none", "metrics": [ { "field": "select field", "id": "1", "type": "count" } ], "rawQuery": true, "rawSql": "SELECT\n @row_number:=@row_number + 1 AS \"Nr.\",\n COUNT(*) AS \"Anzahl\", \n n.name AS \"Trigger\" \nFROM \n SmartlockLog AS n, \n Smartlock AS s,\n (SELECT @row_number:=0) AS t\nWHERE n.name != \"\" AND s.name = \"$SmartlockName\"\nGROUP BY n.name \nORDER BY `Anzahl` DESC\n;", "refId": "A", "select": [ [ { "params": [ "value" ], "type": "column" } ] ], "timeColumn": "time", "timeField": "date", "where": [ { "name": "$__timeFilter", "params": [], "type": "macro" } ] } ], "title": "Trigger Ranking", "transform": "table", "type": "table" }, { "circleMaxSize": "10", "circleMinSize": 2, "colors": [ "rgba(245, 54, 54, 0.9)", "rgba(237, 129, 40, 0.89)", "rgba(50, 172, 45, 0.97)" ], "datasource": "$Datasource", "decimals": 0, "esMetric": "Count", "gridPos": { "h": 10, "w": 12, "x": 12, "y": 3 }, "hideEmpty": false, "hideZero": false, "id": 24, "initialZoom": "12", "links": [], "locationData": "table", "mapCenter": "custom", "mapCenterLatitude": "0.0", "mapCenterLongitude": "0.0", "maxDataPoints": 1, "mouseWheelZoom": true, "showLegend": false, "stickyLabels": false, "tableQueryOptions": { "geohashField": "geohash", "labelField": "name", "latitudeField": "latitude", "longitudeField": "longitude", "metricField": "metric", "queryType": "coordinates" }, "targets": [ { "alias": "", "bucketAggs": [ { "field": "date", "id": "2", "settings": { "interval": "auto", "min_doc_count": 0, "trimEdges": 0 }, "type": "date_histogram" } ], "format": "table", "group": [], "groupBy": [ { "params": [ "$__interval" ], "type": "time" }, { "params": [ "null" ], "type": "fill" } ], "hide": false, "metricColumn": "none", "metrics": [ { "field": "select field", "id": "1", "type": "count" } ], "orderByTime": "ASC", "policy": "default", "rawQuery": true, "rawSql": "SELECT \n s.name,\n 10.0 AS metric,\n s.longitude,\n s.latitude\n FROM \nSmartlock AS s\nWHERE s.name = \"$SmartlockName\"\n;", "refId": "A", "resultFormat": "time_series", "select": [ [ { "params": [ "value" ], "type": "field" }, { "params": [], "type": "mean" } ] ], "tags": [], "timeColumn": "time", "timeField": "date", "where": [ { "name": "$__timeFilter", "params": [], "type": "macro" } ] } ], "thresholds": "0,10", "title": "Location", "type": "grafana-worldmap-panel", "unitPlural": "", "unitSingle": "", "valueName": "total" }, { "cacheTimeout": null, "colorBackground": false, "colorValue": false, "colors": [ "#299c46", "rgba(237, 129, 40, 0.89)", "#d44a3a" ], "datasource": "$Datasource", "decimals": 2, "format": "none", "gauge": { "maxValue": 48, "minValue": 0, "show": true, "thresholdLabels": true, "thresholdMarkers": true }, "gridPos": { "h": 8, "w": 6, "x": 0, "y": 5 }, "id": 85, "interval": null, "links": [], "mappingType": 1, "mappingTypes": [ { "name": "value to text", "value": 1 }, { "name": "range to text", "value": 2 } ], "maxDataPoints": 100, "nullPointMode": "connected", "nullText": null, "postfix": " h", "postfixFontSize": "80%", "prefix": "", "prefixFontSize": "50%", "rangeMaps": [ { "from": "null", "text": "N/A", "to": "null" } ], "sparkline": { "fillColor": "rgba(31, 118, 189, 0.18)", "full": false, "lineColor": "rgb(31, 120, 193)", "show": false }, "tableColumn": "CONVERT((HOUR(elapsed.`value`)*60+MINUTE(elapsed.`value`)), DECIMAL)/60", "targets": [ { "alias": "", "format": "table", "group": [], "metricColumn": "none", "rawQuery": true, "rawSql": "SELECT \n CONVERT((HOUR(elapsed.`value`)*60+MINUTE(elapsed.`value`)), DECIMAL)/60\nFROM (\n SELECT \n TIMEDIFF(NOW(), ADDTIME(n.date, SEC_TO_TIME(s.timezoneOffset*60))) AS \"value\"\n FROM \n SmartlockLog AS n,\n Smartlock AS s\n WHERE s.name = \"$SmartlockName\"\n ORDER BY n.date DESC\n LIMIT 1\n ) AS elapsed\n;", "refId": "A", "select": [ [ { "params": [ "value" ], "type": "column" } ] ], "timeColumn": "time", "where": [ { "name": "$__timeFilter", "params": [], "type": "macro" } ] } ], "thresholds": "24,36,48", "title": "Letzer Audit-Eintrag vor", "type": "singlestat", "valueFontSize": "50%", "valueMaps": [], "valueName": "avg" }, { "aliasColors": {}, "bars": true, "dashLength": 10, "dashes": false, "datasource": "$Datasource", "fill": 5, "gridPos": { "h": 7, "w": 24, "x": 0, "y": 13 }, "id": 19, "legend": { "avg": true, "current": false, "hideEmpty": false, "hideZero": false, "max": true, "min": true, "show": true, "total": true, "values": true }, "lines": false, "linewidth": 1, "links": [], "nullPointMode": "null", "percentage": false, "pointradius": 5, "points": false, "renderer": "flot", "seriesOverrides": [], "spaceLength": 10, "stack": true, "steppedLine": false, "targets": [ { "alias": "", "format": "time_series", "group": [], "metricColumn": "none", "rawQuery": true, "rawSql": "SELECT\n UNIX_TIMESTAMP(ADDTIME(date(n.date), SEC_TO_TIME(s.timezoneOffset*60))) AS time_sec, /*the date() cast will cutoff the time from datetime*/\n COUNT(n.action) AS value,\n \"Aufsperraktionen\" AS metric\nFROM \n SmartlockLog AS n, \n Smartlock AS s\nWHERE \n $__timeFilter(n.date) AND \n n.action in (1,4,5) AND /*Aufsperren, Log 'n' Go oder Kombination aus beidem*/\n s.name = \"$SmartlockName\"\nGROUP BY `time_sec`\nORDER BY time_sec ASC\n;", "refId": "A", "select": [ [ { "params": [ "value" ], "type": "column" } ] ], "timeColumn": "time", "where": [ { "name": "$__timeFilter", "params": [], "type": "macro" } ] } ], "thresholds": [], "timeFrom": "60d", "timeRegions": [], "timeShift": null, "title": "Frequentierung in den letzten 60 Tagen", "tooltip": { "shared": true, "sort": 0, "value_type": "individual" }, "type": "graph", "xaxis": { "buckets": null, "mode": "time", "name": null, "show": true, "values": [] }, "yaxes": [ { "decimals": 0, "format": "none", "label": "", "logBase": 1, "max": null, "min": null, "show": true }, { "format": "short", "label": null, "logBase": 1, "max": null, "min": null, "show": false } ], "yaxis": { "align": false, "alignLevel": null } }, { "cacheTimeout": null, "colorBackground": false, "colorValue": false, "colors": [ "#e24d42", "#629e51", "#e24d42" ], "datasource": "$Datasource", "format": "none", "gauge": { "maxValue": 100, "minValue": 0, "show": false, "thresholdLabels": false, "thresholdMarkers": true }, "gridPos": { "h": 2, "w": 3, "x": 0, "y": 20 }, "id": 71, "interval": null, "links": [], "mappingType": 2, "mappingTypes": [ { "name": "value to text", "value": 1 }, { "name": "range to text", "value": 2 } ], "maxDataPoints": 100, "nullPointMode": "connected", "nullText": null, "postfix": "", "postfixFontSize": "50%", "prefix": "", "prefixFontSize": "50%", "rangeMaps": [], "sparkline": { "fillColor": "rgba(31, 118, 189, 0.18)", "full": false, "lineColor": "rgb(31, 120, 193)", "show": false }, "tableColumn": "name", "targets": [ { "alias": "", "format": "table", "group": [], "hide": false, "metricColumn": "none", "rawQuery": true, "rawSql": "/*this is quite not the same as the mainName*/\nSELECT \n s.name\nFROM Smartlock AS s\nWHERE s.name = \"$SmartlockName\"\n;", "refId": "A", "select": [ [ { "params": [ "value" ], "type": "column" } ] ], "timeColumn": "time", "where": [ { "name": "$__timeFilter", "params": [], "type": "macro" } ] } ], "thresholds": "0,3", "title": "Smartlock Name", "type": "singlestat", "valueFontSize": "30%", "valueMaps": [], "valueName": "avg" }, { "cacheTimeout": null, "colorBackground": false, "colorValue": false, "colors": [ "#d44a3a", "rgba(237, 129, 40, 0.89)", "#629e51" ], "datasource": "$Datasource", "description": "Welcher Türgriff ist an der Außenseite deiner Tür?", "format": "none", "gauge": { "maxValue": 100, "minValue": 0, "show": false, "thresholdLabels": false, "thresholdMarkers": true }, "gridPos": { "h": 2, "w": 3, "x": 3, "y": 20 }, "id": 63, "interval": null, "links": [], "mappingType": 1, "mappingTypes": [ { "name": "value to text", "value": 1 }, { "name": "range to text", "value": 2 } ], "maxDataPoints": 100, "nullPointMode": "connected", "nullText": null, "postfix": "", "postfixFontSize": "80%", "prefix": "", "prefixFontSize": "50%", "rangeMaps": [ { "from": "null", "text": "N/A", "to": "null" } ], "sparkline": { "fillColor": "rgba(31, 118, 189, 0.18)", "full": false, "lineColor": "rgb(31, 120, 193)", "show": false }, "tableColumn": "detachedCylinder", "targets": [ { "alias": "", "format": "table", "group": [], "metricColumn": "none", "rawQuery": true, "rawSql": "SELECT \n s.detachedCylinder\nFROM Smartlock AS s\nWHERE s.name = \"$SmartlockName\"\n;", "refId": "A", "select": [ [ { "params": [ "value" ], "type": "column" } ] ], "timeColumn": "time", "where": [ { "name": "$__timeFilter", "params": [], "type": "macro" } ] } ], "thresholds": "", "title": "Türgriff", "type": "singlestat", "valueFontSize": "80%", "valueMaps": [ { "op": "=", "text": "Drücker", "value": "0" }, { "op": "=", "text": "Knauf oder Stange", "value": "1" } ], "valueName": "avg" }, { "cacheTimeout": null, "colorBackground": false, "colorValue": false, "colors": [ "#299c46", "rgba(237, 129, 40, 0.89)", "#d44a3a" ], "datasource": "$Datasource", "description": "", "format": "none", "gauge": { "maxValue": 100, "minValue": 0, "show": false, "thresholdLabels": false, "thresholdMarkers": true }, "gridPos": { "h": 2, "w": 3, "x": 6, "y": 20 }, "id": 80, "interval": null, "links": [], "mappingType": 1, "mappingTypes": [ { "name": "value to text", "value": 1 }, { "name": "range to text", "value": 2 } ], "maxDataPoints": 100, "nullPointMode": "connected", "nullText": null, "postfix": "", "postfixFontSize": "80%", "prefix": "", "prefixFontSize": "50%", "rangeMaps": [ { "from": "null", "text": "N/A", "to": "null" } ], "sparkline": { "fillColor": "rgba(31, 118, 189, 0.18)", "full": false, "lineColor": "rgb(31, 120, 193)", "show": false }, "tableColumn": "CONCAT(FORMAT(CAST(s.totalDegrees AS DECIMAL) / 360,2),\" Runden (\",s.totalDegrees,\"°)\")", "targets": [ { "alias": "", "format": "table", "group": [], "metricColumn": "none", "rawQuery": true, "rawSql": "SELECT \n CONCAT(FORMAT(CAST(s.totalDegrees AS DECIMAL) / 360,2),\" Runden (\",s.totalDegrees,\"°)\")\nFROM Smartlock AS s\nWHERE s.name = \"$SmartlockName\"\n;", "refId": "A", "select": [ [ { "params": [ "value" ], "type": "column" } ] ], "timeColumn": "time", "where": [ { "name": "$__timeFilter", "params": [], "type": "macro" } ] } ], "thresholds": "", "title": "Schließweg", "type": "singlestat", "valueFontSize": "50%", "valueMaps": [], "valueName": "avg" }, { "cacheTimeout": null, "colorBackground": false, "colorValue": false, "colors": [ "#299c46", "rgba(237, 129, 40, 0.89)", "#d44a3a" ], "datasource": "$Datasource", "description": "", "format": "none", "gauge": { "maxValue": 100, "minValue": 0, "show": false, "thresholdLabels": false, "thresholdMarkers": true }, "gridPos": { "h": 2, "w": 3, "x": 9, "y": 20 }, "id": 72, "interval": null, "links": [], "mappingType": 1, "mappingTypes": [ { "name": "value to text", "value": 1 }, { "name": "range to text", "value": 2 } ], "maxDataPoints": 100, "nullPointMode": "connected", "nullText": null, "postfix": "", "postfixFontSize": "80%", "prefix": "", "prefixFontSize": "50%", "rangeMaps": [ { "from": "null", "text": "N/A", "to": "null" } ], "sparkline": { "fillColor": "rgba(31, 118, 189, 0.18)", "full": false, "lineColor": "rgb(31, 120, 193)", "show": false }, "tableColumn": "singleLock", "targets": [ { "alias": "", "format": "table", "group": [], "metricColumn": "none", "rawQuery": true, "rawSql": "SELECT \n s.singleLock \nFROM Smartlock AS s\nWHERE s.name = \"$SmartlockName\"\n;", "refId": "A", "select": [ [ { "params": [ "value" ], "type": "column" } ] ], "timeColumn": "time", "where": [ { "name": "$__timeFilter", "params": [], "type": "macro" } ] } ], "thresholds": "", "title": "Umdrehung beim Sperren", "type": "singlestat", "valueFontSize": "80%", "valueMaps": [ { "op": "=", "text": "720° (2x)", "value": "0" }, { "op": "=", "text": "360° (1x)", "value": "1" } ], "valueName": "avg" }, { "cacheTimeout": null, "colorBackground": false, "colorValue": false, "colors": [ "#299c46", "rgba(237, 129, 40, 0.89)", "#d44a3a" ], "datasource": "$Datasource", "description": "", "format": "degree", "gauge": { "maxValue": 100, "minValue": 0, "show": false, "thresholdLabels": false, "thresholdMarkers": true }, "gridPos": { "h": 2, "w": 3, "x": 12, "y": 20 }, "id": 79, "interval": null, "links": [], "mappingType": 1, "mappingTypes": [ { "name": "value to text", "value": 1 }, { "name": "range to text", "value": 2 } ], "maxDataPoints": 100, "nullPointMode": "connected", "nullText": null, "postfix": "", "postfixFontSize": "80%", "prefix": "", "prefixFontSize": "50%", "rangeMaps": [ { "from": "null", "text": "N/A", "to": "null" } ], "sparkline": { "fillColor": "rgba(31, 118, 189, 0.18)", "full": false, "lineColor": "rgb(31, 120, 193)", "show": false }, "tableColumn": "unlockedToLockedTransitionOffsetDegrees", "targets": [ { "alias": "", "format": "table", "group": [], "metricColumn": "none", "rawQuery": true, "rawSql": "SELECT \n s.unlockedToLockedTransitionOffsetDegrees \nFROM Smartlock AS s\nWHERE s.name = \"$SmartlockName\"\n;", "refId": "A", "select": [ [ { "params": [ "value" ], "type": "column" } ] ], "timeColumn": "time", "where": [ { "name": "$__timeFilter", "params": [], "type": "macro" } ] } ], "thresholds": "", "title": "Versatz Öffnen zu Schließen", "type": "singlestat", "valueFontSize": "80%", "valueMaps": [], "valueName": "avg" }, { "cacheTimeout": null, "colorBackground": false, "colorValue": false, "colors": [ "#299c46", "rgba(237, 129, 40, 0.89)", "#d44a3a" ], "datasource": "$Datasource", "description": "Erlaube Sperrvorgänge durch Drücken des Buttons am Smart Lock.", "format": "none", "gauge": { "maxValue": 100, "minValue": 0, "show": false, "thresholdLabels": false, "thresholdMarkers": true }, "gridPos": { "h": 2, "w": 3, "x": 15, "y": 20 }, "id": 52, "interval": null, "links": [], "mappingType": 1, "mappingTypes": [ { "name": "value to text", "value": 1 }, { "name": "range to text", "value": 2 } ], "maxDataPoints": 100, "nullPointMode": "connected", "nullText": null, "postfix": "", "postfixFontSize": "80%", "prefix": "", "prefixFontSize": "50%", "rangeMaps": [ { "from": "null", "text": "N/A", "to": "null" } ], "sparkline": { "fillColor": "rgba(31, 118, 189, 0.18)", "full": false, "lineColor": "rgb(31, 120, 193)", "show": false }, "tableColumn": "buttonEnabled", "targets": [ { "alias": "", "format": "table", "group": [], "metricColumn": "none", "rawQuery": true, "rawSql": "SELECT \n s.buttonEnabled \nFROM Smartlock AS s\nWHERE s.name = \"$SmartlockName\"\n;", "refId": "A", "select": [ [ { "params": [ "value" ], "type": "column" } ] ], "timeColumn": "time", "where": [ { "name": "$__timeFilter", "params": [], "type": "macro" } ] } ], "thresholds": "", "title": "Sperren via Button erlauben", "type": "singlestat", "valueFontSize": "80%", "valueMaps": [ { "op": "=", "text": "Nein", "value": "0" }, { "op": "=", "text": "Ja", "value": "1" } ], "valueName": "avg" }, { "cacheTimeout": null, "colorBackground": false, "colorValue": false, "colors": [ "#299c46", "rgba(237, 129, 40, 0.89)", "#d44a3a" ], "datasource": "$Datasource", "description": "", "format": "none", "gauge": { "maxValue": 100, "minValue": 0, "show": false, "thresholdLabels": false, "thresholdMarkers": true }, "gridPos": { "h": 2, "w": 3, "x": 18, "y": 20 }, "id": 69, "interval": null, "links": [], "mappingType": 1, "mappingTypes": [ { "name": "value to text", "value": 1 }, { "name": "range to text", "value": 2 } ], "maxDataPoints": 100, "nullPointMode": "connected", "nullText": null, "postfix": "", "postfixFontSize": "80%", "prefix": "", "prefixFontSize": "50%", "rangeMaps": [ { "from": "null", "text": "N/A", "to": "null" } ], "sparkline": { "fillColor": "rgba(31, 118, 189, 0.18)", "full": false, "lineColor": "rgb(31, 120, 193)", "show": false }, "tableColumn": "fobPaired", "targets": [ { "alias": "", "format": "table", "group": [], "metricColumn": "none", "rawQuery": true, "rawSql": "SELECT \n s.fobPaired \nFROM Smartlock AS s\nWHERE s.name = \"$SmartlockName\"\n;", "refId": "A", "select": [ [ { "params": [ "value" ], "type": "column" } ] ], "timeColumn": "time", "where": [ { "name": "$__timeFilter", "params": [], "type": "macro" } ] } ], "thresholds": "", "title": "FOB Pairing", "type": "singlestat", "valueFontSize": "80%", "valueMaps": [ { "op": "=", "text": "Nein", "value": "0" }, { "op": "=", "text": "Ja", "value": "1" } ], "valueName": "avg" }, { "cacheTimeout": null, "colorBackground": true, "colorValue": false, "colors": [ "#d44a3a", "#1f78c1", "#299c46" ], "datasource": "$Datasource", "format": "none", "gauge": { "maxValue": 100, "minValue": 0, "show": false, "thresholdLabels": false, "thresholdMarkers": true }, "gridPos": { "h": 2, "w": 3, "x": 21, "y": 20 }, "id": 13, "interval": null, "links": [], "mappingType": 1, "mappingTypes": [ { "name": "value to text", "value": 1 }, { "name": "range to text", "value": 2 } ], "maxDataPoints": 100, "nullPointMode": "connected", "nullText": null, "postfix": " Tagen", "postfixFontSize": "80%", "prefix": "", "prefixFontSize": "50%", "rangeMaps": [ { "from": "null", "text": "N/A", "to": "null" } ], "sparkline": { "fillColor": "rgba(31, 118, 189, 0.18)", "full": false, "lineColor": "rgb(31, 120, 193)", "show": false }, "tableColumn": "Datum", "targets": [ { "alias": "", "format": "table", "group": [], "hide": false, "metricColumn": "none", "rawQuery": true, "rawSql": "SELECT \n * \nFROM (\n SELECT \n TIMESTAMPDIFF(SECOND, NOW(), ADDTIME(n.date, SEC_TO_TIME(s.timezoneOffset*60))) / -86400 as \"Datum\" /*Hole nur die letzte Zeile*/\n FROM \n SmartlockLog as n, \n Smartlock as s\n WHERE s.name = \"$SmartlockName\"\n ORDER BY n.date ASC /*ORDER BY ist wichtig, damit immer die letzte Zeile zur Berechnung verwendet wird!*/\n LIMIT 3\n) AS RESULT \nORDER BY RESULT.`Datum` ASC \nLIMIT 1 /*3 - 1 = 2 >> überspringe die letzten 2 Einträge, weil das Datum noch falsch gesetzt war (Initialisierung des Schlosses 2018, aber laut Einträgen 2016)*/\n;", "refId": "A", "select": [ [ { "params": [ "value" ], "type": "column" } ] ], "timeColumn": "time", "where": [ { "name": "$__timeFilter", "params": [], "type": "macro" } ] } ], "thresholds": "0", "title": "Im Betrieb seit", "type": "singlestat", "valueFontSize": "80%", "valueMaps": [], "valueName": "avg" }, { "cacheTimeout": null, "colorBackground": false, "colorValue": false, "colors": [ "#299c46", "rgba(237, 129, 40, 0.89)", "#d44a3a" ], "datasource": "$Datasource", "description": "", "format": "none", "gauge": { "maxValue": 100, "minValue": 0, "show": false, "thresholdLabels": false, "thresholdMarkers": true }, "gridPos": { "h": 2, "w": 3, "x": 0, "y": 22 }, "id": 81, "interval": null, "links": [], "mappingType": 1, "mappingTypes": [ { "name": "value to text", "value": 1 }, { "name": "range to text", "value": 2 } ], "maxDataPoints": 100, "nullPointMode": "connected", "nullText": null, "postfix": "", "postfixFontSize": "80%", "prefix": "", "prefixFontSize": "50%", "rangeMaps": [ { "from": "null", "text": "N/A", "to": "null" } ], "sparkline": { "fillColor": "rgba(31, 118, 189, 0.18)", "full": false, "lineColor": "rgb(31, 120, 193)", "show": false }, "tableColumn": "favorite", "targets": [ { "alias": "", "format": "table", "group": [], "metricColumn": "none", "rawQuery": true, "rawSql": "SELECT \n s.favorite \nFROM Smartlock AS s\nWHERE s.name = \"$SmartlockName\"\n;", "refId": "A", "select": [ [ { "params": [ "value" ], "type": "column" } ] ], "timeColumn": "time", "where": [ { "name": "$__timeFilter", "params": [], "type": "macro" } ] } ], "thresholds": "", "title": "Als Favorit gesetzt", "type": "singlestat", "valueFontSize": "80%", "valueMaps": [ { "op": "=", "text": "Nein", "value": "0" }, { "op": "=", "text": "Ja", "value": "1" } ], "valueName": "avg" }, { "cacheTimeout": null, "colorBackground": false, "colorValue": false, "colors": [ "#299c46", "rgba(237, 129, 40, 0.89)", "#d44a3a" ], "datasource": "$Datasource", "description": "Lege fest, in welchem Intervall dein Smart Lock mit der Nuki App kommunizieren soll. Je langsamer das Bluetooth-Scan-Intervall, desto weniger Energie wird verbraucht.", "format": "none", "gauge": { "maxValue": 100, "minValue": 0, "show": false, "thresholdLabels": false, "thresholdMarkers": true }, "gridPos": { "h": 2, "w": 3, "x": 3, "y": 22 }, "id": 61, "interval": null, "links": [], "mappingType": 1, "mappingTypes": [ { "name": "value to text", "value": 1 }, { "name": "range to text", "value": 2 } ], "maxDataPoints": 100, "nullPointMode": "connected", "nullText": null, "postfix": "", "postfixFontSize": "80%", "prefix": "", "prefixFontSize": "50%", "rangeMaps": [ { "from": "null", "text": "N/A", "to": "null" } ], "sparkline": { "fillColor": "rgba(31, 118, 189, 0.18)", "full": false, "lineColor": "rgb(31, 120, 193)", "show": false }, "tableColumn": "advertisingMode", "targets": [ { "alias": "", "format": "table", "group": [], "metricColumn": "none", "rawQuery": true, "rawSql": "SELECT \n s.advertisingMode \nFROM Smartlock AS s\nWHERE s.name = \"$SmartlockName\"\n;", "refId": "A", "select": [ [ { "params": [ "value" ], "type": "column" } ] ], "timeColumn": "time", "where": [ { "name": "$__timeFilter", "params": [], "type": "macro" } ] } ], "thresholds": "", "title": "Energiesparmodus", "type": "singlestat", "valueFontSize": "80%", "valueMaps": [ { "op": "=", "text": "Automatisch", "value": "0" }, { "op": "=", "text": "Normal", "value": "1" }, { "op": "=", "text": "Langsam", "value": "2" }, { "op": "=", "text": "Sehr Langsam", "value": "3" } ], "valueName": "avg" }, { "cacheTimeout": null, "colorBackground": false, "colorValue": false, "colors": [ "#299c46", "rgba(237, 129, 40, 0.89)", "#d44a3a" ], "datasource": "$Datasource", "description": "Wie lange soll das Nuki Smart Lock beim Tür öffnen die Falle halten?", "format": "none", "gauge": { "maxValue": 100, "minValue": 0, "show": false, "thresholdLabels": false, "thresholdMarkers": true }, "gridPos": { "h": 2, "w": 3, "x": 6, "y": 22 }, "id": 58, "interval": null, "links": [], "mappingType": 1, "mappingTypes": [ { "name": "value to text", "value": 1 }, { "name": "range to text", "value": 2 } ], "maxDataPoints": 100, "nullPointMode": "connected", "nullText": null, "postfix": "", "postfixFontSize": "80%", "prefix": "", "prefixFontSize": "50%", "rangeMaps": [ { "from": "null", "text": "N/A", "to": "null" } ], "sparkline": { "fillColor": "rgba(31, 118, 189, 0.18)", "full": false, "lineColor": "rgb(31, 120, 193)", "show": false }, "tableColumn": "CASE \n WHEN s.detachedCylinder = 0 THEN \"Inaktiv\"\n ELSE CONCAT(s.unlatchDuration, ' Sekunden')\n END", "targets": [ { "alias": "", "format": "table", "group": [], "metricColumn": "none", "rawQuery": true, "rawSql": "SELECT \n CASE \n WHEN s.detachedCylinder = 0 THEN \"Inaktiv\"\n ELSE CONCAT(s.unlatchDuration, ' Sekunden')\n END\nFROM Smartlock AS s\nWHERE s.name = \"$SmartlockName\"\n;", "refId": "A", "select": [ [ { "params": [ "value" ], "type": "column" } ] ], "timeColumn": "time", "where": [ { "name": "$__timeFilter", "params": [], "type": "macro" } ] } ], "thresholds": "", "title": "Haltedauer Falle", "transparent": false, "type": "singlestat", "valueFontSize": "80%", "valueMaps": [], "valueName": "avg" }, { "cacheTimeout": null, "colorBackground": false, "colorValue": false, "colors": [ "#299c46", "#806eb7", "#d44a3a" ], "datasource": "$Datasource", "description": "", "format": "none", "gauge": { "maxValue": 100, "minValue": 0, "show": false, "thresholdLabels": false, "thresholdMarkers": true }, "gridPos": { "h": 2, "w": 3, "x": 9, "y": 22 }, "id": 64, "interval": null, "links": [], "mappingType": 1, "mappingTypes": [ { "name": "value to text", "value": 1 }, { "name": "range to text", "value": 2 } ], "maxDataPoints": 100, "nullPointMode": "connected", "nullText": null, "postfix": "", "postfixFontSize": "80%", "prefix": "", "prefixFontSize": "50%", "rangeMaps": [ { "from": "null", "text": "N/A", "to": "null" } ], "sparkline": { "fillColor": "rgba(31, 118, 189, 0.18)", "full": false, "lineColor": "rgb(31, 120, 193)", "show": false }, "tableColumn": "DATE_FORMAT(ADDTIME(s.creationDate, SEC_TO_TIME(s.timezoneOffset*60)),'%d.%m.%Y %H:%i:%s')", "targets": [ { "alias": "", "format": "table", "group": [], "metricColumn": "none", "rawQuery": true, "rawSql": "SELECT\n DATE_FORMAT(ADDTIME(s.creationDate, SEC_TO_TIME(s.timezoneOffset*60)),'%d.%m.%Y %H:%i:%s')\nFROM\n Smartlock AS s\nWHERE s.name = \"$SmartlockName\"\n;", "refId": "A", "select": [ [ { "params": [ "value" ], "type": "column" } ] ], "timeColumn": "time", "where": [ { "name": "$__timeFilter", "params": [], "type": "macro" } ] } ], "thresholds": "", "title": "Initialisierungsdatum", "type": "singlestat", "valueFontSize": "50%", "valueMaps": [], "valueName": "avg" }, { "cacheTimeout": null, "colorBackground": false, "colorValue": false, "colors": [ "#299c46", "rgba(237, 129, 40, 0.89)", "#d44a3a" ], "datasource": "$Datasource", "description": "", "format": "degree", "gauge": { "maxValue": 100, "minValue": 0, "show": false, "thresholdLabels": false, "thresholdMarkers": true }, "gridPos": { "h": 2, "w": 3, "x": 12, "y": 22 }, "id": 78, "interval": null, "links": [], "mappingType": 1, "mappingTypes": [ { "name": "value to text", "value": 1 }, { "name": "range to text", "value": 2 } ], "maxDataPoints": 100, "nullPointMode": "connected", "nullText": null, "postfix": "", "postfixFontSize": "80%", "prefix": "", "prefixFontSize": "50%", "rangeMaps": [ { "from": "null", "text": "N/A", "to": "null" } ], "sparkline": { "fillColor": "rgba(31, 118, 189, 0.18)", "full": false, "lineColor": "rgb(31, 120, 193)", "show": false }, "tableColumn": "unlockedPositionOffsetDegrees", "targets": [ { "alias": "", "format": "table", "group": [], "metricColumn": "none", "rawQuery": true, "rawSql": "SELECT \n s.unlockedPositionOffsetDegrees \nFROM Smartlock AS s\nWHERE s.name = \"$SmartlockName\"\n;", "refId": "A", "select": [ [ { "params": [ "value" ], "type": "column" } ] ], "timeColumn": "time", "where": [ { "name": "$__timeFilter", "params": [], "type": "macro" } ] } ], "thresholds": "", "title": "Versatz in Öffnungsposition", "type": "singlestat", "valueFontSize": "80%", "valueMaps": [], "valueName": "avg" }, { "cacheTimeout": null, "colorBackground": false, "colorValue": false, "colors": [ "#299c46", "rgba(237, 129, 40, 0.89)", "#d44a3a" ], "datasource": "$Datasource", "description": "", "format": "none", "gauge": { "maxValue": 100, "minValue": 0, "show": false, "thresholdLabels": false, "thresholdMarkers": true }, "gridPos": { "h": 2, "w": 3, "x": 15, "y": 22 }, "id": 49, "interval": null, "links": [], "mappingType": 1, "mappingTypes": [ { "name": "value to text", "value": 1 }, { "name": "range to text", "value": 2 } ], "maxDataPoints": 100, "nullPointMode": "connected", "nullText": null, "postfix": "", "postfixFontSize": "50%", "prefix": "", "prefixFontSize": "50%", "rangeMaps": [ { "from": "null", "text": "N/A", "to": "null" } ], "sparkline": { "fillColor": "rgba(31, 118, 189, 0.18)", "full": false, "lineColor": "rgb(31, 120, 193)", "show": false }, "tableColumn": "autoUnlatch", "targets": [ { "alias": "", "format": "table", "group": [], "metricColumn": "none", "rawQuery": true, "rawSql": "/*Beim Öffnen wird solange gedreht, bis die Türfalle nach innen gezogen wird*/\nSELECT \n s.autoUnlatch \nFROM Smartlock AS s\nWHERE s.name = \"$SmartlockName\"\n;", "refId": "A", "select": [ [ { "params": [ "value" ], "type": "column" } ] ], "timeColumn": "time", "where": [ { "name": "$__timeFilter", "params": [], "type": "macro" } ] } ], "thresholds": "", "title": "Öffnen mitsamt Schlossfalle", "type": "singlestat", "valueFontSize": "80%", "valueMaps": [ { "op": "=", "text": "Ja", "value": "1" }, { "op": "=", "text": "Nein", "value": "0" } ], "valueName": "avg" }, { "cacheTimeout": null, "colorBackground": false, "colorValue": false, "colors": [ "#299c46", "rgba(237, 129, 40, 0.89)", "#d44a3a" ], "datasource": "$Datasource", "description": "", "format": "none", "gauge": { "maxValue": 100, "minValue": 0, "show": false, "thresholdLabels": false, "thresholdMarkers": true }, "gridPos": { "h": 2, "w": 3, "x": 18, "y": 22 }, "id": 66, "interval": null, "links": [], "mappingType": 1, "mappingTypes": [ { "name": "value to text", "value": 1 }, { "name": "range to text", "value": 2 } ], "maxDataPoints": 100, "nullPointMode": "connected", "nullText": null, "postfix": "", "postfixFontSize": "80%", "prefix": "", "prefixFontSize": "50%", "rangeMaps": [ { "from": "null", "text": "N/A", "to": "null" } ], "sparkline": { "fillColor": "rgba(31, 118, 189, 0.18)", "full": false, "lineColor": "rgb(31, 120, 193)", "show": false }, "tableColumn": "fobAction1", "targets": [ { "alias": "", "format": "table", "group": [], "metricColumn": "none", "rawQuery": true, "rawSql": "SELECT \n s.fobAction1 \nFROM Smartlock AS s\nWHERE s.name = \"$SmartlockName\"\n;", "refId": "A", "select": [ [ { "params": [ "value" ], "type": "column" } ] ], "timeColumn": "time", "where": [ { "name": "$__timeFilter", "params": [], "type": "macro" } ] } ], "thresholds": "", "title": "FOB Aktion 1", "type": "singlestat", "valueFontSize": "80%", "valueMaps": [ { "op": "=", "text": "Keine Aktion", "value": "0" }, { "op": "=", "text": "Intelligent", "value": "1" }, { "op": "=", "text": "Öffnen", "value": "2" }, { "op": "=", "text": "Schließen", "value": "3" }, { "op": "=", "text": "Falle öffnen", "value": "4" }, { "op": "=", "text": "Lock 'n' Go", "value": "5" }, { "op": "=", "text": "Status zeigen", "value": "6" } ], "valueName": "avg" }, { "cacheTimeout": null, "colorBackground": false, "colorValue": false, "colors": [ "#d44a3a", "#e24d42", "#629e51" ], "datasource": "$Datasource", "description": "Erlaube, neue Geräte direkt mit dem Smart Lock zu koppeln.", "format": "none", "gauge": { "maxValue": 100, "minValue": 0, "show": false, "thresholdLabels": false, "thresholdMarkers": true }, "gridPos": { "h": 2, "w": 3, "x": 21, "y": 22 }, "id": 53, "interval": null, "links": [], "mappingType": 1, "mappingTypes": [ { "name": "value to text", "value": 1 }, { "name": "range to text", "value": 2 } ], "maxDataPoints": 100, "nullPointMode": "connected", "nullText": null, "postfix": "", "postfixFontSize": "80%", "prefix": "", "prefixFontSize": "50%", "rangeMaps": [ { "from": "null", "text": "N/A", "to": "null" } ], "sparkline": { "fillColor": "rgba(31, 118, 189, 0.18)", "full": false, "lineColor": "rgb(31, 120, 193)", "show": false }, "tableColumn": "pairingEnabled", "targets": [ { "alias": "", "format": "table", "group": [], "metricColumn": "none", "rawQuery": true, "rawSql": "SELECT \n s.pairingEnabled\nFROM Smartlock AS s\nWHERE s.name = \"$SmartlockName\"\n;", "refId": "A", "select": [ [ { "params": [ "value" ], "type": "column" } ] ], "timeColumn": "time", "where": [ { "name": "$__timeFilter", "params": [], "type": "macro" } ] } ], "thresholds": "0,1", "title": "Bluetooth Pairing", "type": "singlestat", "valueFontSize": "80%", "valueMaps": [ { "op": "=", "text": "Nein", "value": "0" }, { "op": "=", "text": "Ja", "value": "1" } ], "valueName": "avg" }, { "cacheTimeout": null, "colorBackground": false, "colorValue": false, "colors": [ "#299c46", "rgba(237, 129, 40, 0.89)", "#d44a3a" ], "datasource": "$Datasource", "description": "", "format": "percent", "gauge": { "maxValue": 100, "minValue": 0, "show": false, "thresholdLabels": false, "thresholdMarkers": true }, "gridPos": { "h": 2, "w": 3, "x": 0, "y": 24 }, "id": 55, "interval": null, "links": [], "mappingType": 1, "mappingTypes": [ { "name": "value to text", "value": 1 }, { "name": "range to text", "value": 2 } ], "maxDataPoints": 100, "nullPointMode": "connected", "nullText": null, "postfix": "", "postfixFontSize": "80%", "prefix": "", "prefixFontSize": "50%", "rangeMaps": [ { "from": "null", "text": "N/A", "to": "null" } ], "sparkline": { "fillColor": "rgba(31, 118, 189, 0.18)", "full": false, "lineColor": "rgb(31, 120, 193)", "show": false }, "tableColumn": "ledBrightness", "targets": [ { "alias": "", "format": "table", "group": [], "metricColumn": "none", "rawQuery": true, "rawSql": "SELECT \n s.ledBrightness\nFROM Smartlock AS s\nWHERE s.name = \"$SmartlockName\"\n;", "refId": "A", "select": [ [ { "params": [ "value" ], "type": "column" } ] ], "timeColumn": "time", "where": [ { "name": "$__timeFilter", "params": [], "type": "macro" } ] } ], "thresholds": "", "title": "LED Helligkeit", "type": "singlestat", "valueFontSize": "80%", "valueMaps": [], "valueName": "avg" }, { "cacheTimeout": null, "colorBackground": false, "colorValue": false, "colors": [ "#299c46", "rgba(237, 129, 40, 0.89)", "#d44a3a" ], "datasource": "$Datasource", "description": "", "format": "none", "gauge": { "maxValue": 100, "minValue": 0, "show": false, "thresholdLabels": false, "thresholdMarkers": true }, "gridPos": { "h": 2, "w": 3, "x": 3, "y": 24 }, "id": 62, "interval": null, "links": [], "mappingType": 1, "mappingTypes": [ { "name": "value to text", "value": 1 }, { "name": "range to text", "value": 2 } ], "maxDataPoints": 100, "nullPointMode": "connected", "nullText": null, "postfix": "", "postfixFontSize": "80%", "prefix": "", "prefixFontSize": "50%", "rangeMaps": [ { "from": "null", "text": "N/A", "to": "null" } ], "sparkline": { "fillColor": "rgba(31, 118, 189, 0.18)", "full": false, "lineColor": "rgb(31, 120, 193)", "show": false }, "tableColumn": "automaticBatteryTypeDetection", "targets": [ { "alias": "", "format": "table", "group": [], "metricColumn": "none", "rawQuery": true, "rawSql": "SELECT \n s.automaticBatteryTypeDetection \nFROM Smartlock AS s\nWHERE s.name = \"$SmartlockName\"\n;", "refId": "A", "select": [ [ { "params": [ "value" ], "type": "column" } ] ], "timeColumn": "time", "where": [ { "name": "$__timeFilter", "params": [], "type": "macro" } ] } ], "thresholds": "", "title": "Automatische Batterietyperkennung", "type": "singlestat", "valueFontSize": "80%", "valueMaps": [ { "op": "=", "text": "Inaktiv", "value": "0" }, { "op": "=", "text": "Aktiv", "value": "1" } ], "valueName": "avg" }, { "cacheTimeout": null, "colorBackground": false, "colorValue": false, "colors": [ "#299c46", "rgba(237, 129, 40, 0.89)", "#d44a3a" ], "datasource": "$Datasource", "description": "Die Auto Lock Funktion versperrt deine Tür automatisch, wenn sie eine bestimmte Zeit lang aufgesperrt war.", "format": "dtdurations", "gauge": { "maxValue": 100, "minValue": 0, "show": false, "thresholdLabels": false, "thresholdMarkers": true }, "gridPos": { "h": 2, "w": 3, "x": 6, "y": 24 }, "id": 50, "interval": null, "links": [], "mappingType": 1, "mappingTypes": [ { "name": "value to text", "value": 1 }, { "name": "range to text", "value": 2 } ], "maxDataPoints": 100, "nullPointMode": "connected", "nullText": null, "postfix": " ", "postfixFontSize": "80%", "prefix": "", "prefixFontSize": "50%", "rangeMaps": [ { "from": "null", "text": "N/A", "to": "null" } ], "sparkline": { "fillColor": "rgba(31, 118, 189, 0.18)", "full": false, "lineColor": "rgb(31, 120, 193)", "show": false }, "tableColumn": "autoLockTimeout", "targets": [ { "alias": "", "format": "table", "group": [], "metricColumn": "none", "rawQuery": true, "rawSql": "SELECT \n s.autoLockTimeout \nFROM Smartlock AS s\nWHERE s.name = \"$SmartlockName\"\n;", "refId": "A", "select": [ [ { "params": [ "value" ], "type": "column" } ] ], "timeColumn": "time", "where": [ { "name": "$__timeFilter", "params": [], "type": "macro" } ] } ], "thresholds": "", "title": "Auto Lock Dauer", "type": "singlestat", "valueFontSize": "80%", "valueMaps": [], "valueName": "avg" }, { "cacheTimeout": null, "colorBackground": false, "colorValue": false, "colors": [ "#299c46", "rgba(237, 129, 40, 0.89)", "#d44a3a" ], "datasource": "$Datasource", "description": "Europäische Sommerzeit aktiv/inaktiv", "format": "none", "gauge": { "maxValue": 100, "minValue": 0, "show": false, "thresholdLabels": false, "thresholdMarkers": true }, "gridPos": { "h": 2, "w": 3, "x": 9, "y": 24 }, "id": 59, "interval": null, "links": [], "mappingType": 1, "mappingTypes": [ { "name": "value to text", "value": 1 }, { "name": "range to text", "value": 2 } ], "maxDataPoints": 100, "nullPointMode": "connected", "nullText": null, "postfix": "", "postfixFontSize": "80%", "prefix": "", "prefixFontSize": "50%", "rangeMaps": [ { "from": "null", "text": "N/A", "to": "null" } ], "sparkline": { "fillColor": "rgba(31, 118, 189, 0.18)", "full": false, "lineColor": "rgb(31, 120, 193)", "show": false }, "tableColumn": "daylightSavingMode", "targets": [ { "alias": "", "format": "table", "group": [], "metricColumn": "none", "rawQuery": true, "rawSql": "SELECT \n s.daylightSavingMode \nFROM Smartlock AS s\nWHERE s.name = \"$SmartlockName\"\n;", "refId": "A", "select": [ [ { "params": [ "value" ], "type": "column" } ] ], "timeColumn": "time", "where": [ { "name": "$__timeFilter", "params": [], "type": "macro" } ] } ], "thresholds": "", "title": "Automatische Zeitumstellung", "type": "singlestat", "valueFontSize": "80%", "valueMaps": [ { "op": "=", "text": "Nein", "value": "0" }, { "op": "=", "text": "Ja", "value": "1" } ], "valueName": "avg" }, { "cacheTimeout": null, "colorBackground": false, "colorValue": false, "colors": [ "#299c46", "rgba(237, 129, 40, 0.89)", "#d44a3a" ], "datasource": "$Datasource", "description": "", "format": "degree", "gauge": { "maxValue": 100, "minValue": 0, "show": false, "thresholdLabels": false, "thresholdMarkers": true }, "gridPos": { "h": 2, "w": 3, "x": 12, "y": 24 }, "id": 75, "interval": null, "links": [], "mappingType": 1, "mappingTypes": [ { "name": "value to text", "value": 1 }, { "name": "range to text", "value": 2 } ], "maxDataPoints": 100, "nullPointMode": "connected", "nullText": null, "postfix": "", "postfixFontSize": "80%", "prefix": "", "prefixFontSize": "50%", "rangeMaps": [ { "from": "null", "text": "N/A", "to": "null" } ], "sparkline": { "fillColor": "rgba(31, 118, 189, 0.18)", "full": false, "lineColor": "rgb(31, 120, 193)", "show": false }, "tableColumn": "lockedPositionOffsetDegrees", "targets": [ { "alias": "", "format": "table", "group": [], "metricColumn": "none", "rawQuery": true, "rawSql": "SELECT \n s.lockedPositionOffsetDegrees \nFROM Smartlock AS s\nWHERE s.name = \"$SmartlockName\"\n;", "refId": "A", "select": [ [ { "params": [ "value" ], "type": "column" } ] ], "timeColumn": "time", "where": [ { "name": "$__timeFilter", "params": [], "type": "macro" } ] } ], "thresholds": "", "title": "Versatz in Schließposition", "type": "singlestat", "valueFontSize": "80%", "valueMaps": [], "valueName": "avg" }, { "cacheTimeout": null, "colorBackground": false, "colorValue": false, "colors": [ "#299c46", "rgba(237, 129, 40, 0.89)", "#d44a3a" ], "datasource": "$Datasource", "description": "", "format": "none", "gauge": { "maxValue": 100, "minValue": 0, "show": false, "thresholdLabels": false, "thresholdMarkers": true }, "gridPos": { "h": 2, "w": 3, "x": 15, "y": 24 }, "id": 76, "interval": null, "links": [], "mappingType": 1, "mappingTypes": [ { "name": "value to text", "value": 1 }, { "name": "range to text", "value": 2 } ], "maxDataPoints": 100, "nullPointMode": "connected", "nullText": null, "postfix": "", "postfixFontSize": "80%", "prefix": "", "prefixFontSize": "50%", "rangeMaps": [ { "from": "null", "text": "N/A", "to": "null" } ], "sparkline": { "fillColor": "rgba(31, 118, 189, 0.18)", "full": false, "lineColor": "rgb(31, 120, 193)", "show": false }, "tableColumn": "singleButtonPressAction", "targets": [ { "alias": "", "format": "table", "group": [], "metricColumn": "none", "rawQuery": true, "rawSql": "SELECT \n s.singleButtonPressAction \nFROM Smartlock AS s\nWHERE s.name = \"$SmartlockName\"\n;", "refId": "A", "select": [ [ { "params": [ "value" ], "type": "column" } ] ], "timeColumn": "time", "where": [ { "name": "$__timeFilter", "params": [], "type": "macro" } ] } ], "thresholds": "", "title": "Aktion bei 1x Knopfdrücken", "type": "singlestat", "valueFontSize": "80%", "valueMaps": [ { "op": "=", "text": "Keine Aktion", "value": "0" }, { "op": "=", "text": "Intelligent", "value": "1" }, { "op": "=", "text": "Öffnen", "value": "2" }, { "op": "=", "text": "Schließen", "value": "3" }, { "op": "=", "text": "Falle öffnen", "value": "4" }, { "op": "=", "text": "Lock 'n' Go", "value": "5" }, { "op": "=", "text": "Status zeigen", "value": "6" } ], "valueName": "avg" }, { "cacheTimeout": null, "colorBackground": false, "colorValue": false, "colors": [ "#299c46", "rgba(237, 129, 40, 0.89)", "#d44a3a" ], "datasource": "$Datasource", "description": "", "format": "none", "gauge": { "maxValue": 100, "minValue": 0, "show": false, "thresholdLabels": false, "thresholdMarkers": true }, "gridPos": { "h": 2, "w": 3, "x": 18, "y": 24 }, "id": 67, "interval": null, "links": [], "mappingType": 1, "mappingTypes": [ { "name": "value to text", "value": 1 }, { "name": "range to text", "value": 2 } ], "maxDataPoints": 100, "nullPointMode": "connected", "nullText": null, "postfix": "", "postfixFontSize": "80%", "prefix": "", "prefixFontSize": "50%", "rangeMaps": [ { "from": "null", "text": "N/A", "to": "null" } ], "sparkline": { "fillColor": "rgba(31, 118, 189, 0.18)", "full": false, "lineColor": "rgb(31, 120, 193)", "show": false }, "tableColumn": "fobAction2", "targets": [ { "alias": "", "format": "table", "group": [], "metricColumn": "none", "rawQuery": true, "rawSql": "SELECT \n s.fobAction2\nFROM Smartlock AS s\nWHERE s.name = \"$SmartlockName\"\n;", "refId": "A", "select": [ [ { "params": [ "value" ], "type": "column" } ] ], "timeColumn": "time", "where": [ { "name": "$__timeFilter", "params": [], "type": "macro" } ] } ], "thresholds": "", "title": "FOB Aktion 2", "type": "singlestat", "valueFontSize": "80%", "valueMaps": [ { "op": "=", "text": "Keine Aktion", "value": "0" }, { "op": "=", "text": "Intelligent", "value": "1" }, { "op": "=", "text": "Öffnen", "value": "2" }, { "op": "=", "text": "Schließen", "value": "3" }, { "op": "=", "text": "Falle öffnen", "value": "4" }, { "op": "=", "text": "Lock 'n' Go", "value": "5" }, { "op": "=", "text": "Status zeigen", "value": "6" } ], "valueName": "avg" }, { "cacheTimeout": null, "colorBackground": false, "colorValue": false, "colors": [ "#629e51", "#cca300", "#ba43a9" ], "datasource": "$Datasource", "description": "", "format": "none", "gauge": { "maxValue": 100, "minValue": 0, "show": false, "thresholdLabels": false, "thresholdMarkers": true }, "gridPos": { "h": 2, "w": 3, "x": 21, "y": 24 }, "id": 21, "interval": null, "links": [], "mappingType": 1, "mappingTypes": [ { "name": "value to text", "value": 1 }, { "name": "range to text", "value": 2 } ], "maxDataPoints": 100, "nullPointMode": "connected", "nullText": null, "postfix": "", "postfixFontSize": "50%", "prefix": "", "prefixFontSize": "50%", "rangeMaps": [ { "from": "null", "text": "N/A", "to": "null" } ], "sparkline": { "fillColor": "rgba(31, 118, 189, 0.18)", "full": false, "lineColor": "rgb(31, 120, 193)", "show": false }, "tableColumn": "REVERSE(\n REPLACE(\n INSERT(\n INSERT(\n INSERT(\n INSERT(\n REVERSE(HEX(s.firmwareVersion))\n ,3, 0, '.')\n ,6, 0, '.')\n ,9, 0, '.')\n ,12, 0, '.')\n", "targets": [ { "alias": "", "format": "table", "group": [], "hide": false, "metricColumn": "none", "rawQuery": true, "rawSql": "SELECT\n REVERSE(\n REPLACE(\n INSERT(\n INSERT(\n INSERT(\n INSERT(\n REVERSE(HEX(s.firmwareVersion))\n ,3, 0, '.')\n ,6, 0, '.')\n ,9, 0, '.')\n ,12, 0, '.')\n ,'0','')\n )\nFROM Smartlock AS s\nWHERE s.name = \"$SmartlockName\"\n;", "refId": "A", "select": [ [ { "params": [ "value" ], "type": "column" } ] ], "timeColumn": "time", "where": [ { "name": "$__timeFilter", "params": [], "type": "macro" } ] } ], "thresholds": "", "title": "Firmware Version", "type": "singlestat", "valueFontSize": "80%", "valueMaps": [ { "op": "=", "text": "N/A", "value": "null" } ], "valueName": "avg" }, { "cacheTimeout": null, "colorBackground": false, "colorValue": false, "colors": [ "#299c46", "rgba(237, 129, 40, 0.89)", "#d44a3a" ], "datasource": "$Datasource", "description": "LED-Blitzen, wenn die Tür aufgesperrt ist", "format": "none", "gauge": { "maxValue": 100, "minValue": 0, "show": false, "thresholdLabels": false, "thresholdMarkers": true }, "gridPos": { "h": 2, "w": 3, "x": 0, "y": 26 }, "id": 54, "interval": null, "links": [], "mappingType": 1, "mappingTypes": [ { "name": "value to text", "value": 1 }, { "name": "range to text", "value": 2 } ], "maxDataPoints": 100, "nullPointMode": "connected", "nullText": null, "postfix": "", "postfixFontSize": "80%", "prefix": "", "prefixFontSize": "50%", "rangeMaps": [ { "from": "null", "text": "N/A", "to": "null" } ], "sparkline": { "fillColor": "rgba(31, 118, 189, 0.18)", "full": false, "lineColor": "rgb(31, 120, 193)", "show": false }, "tableColumn": "ledEnabled", "targets": [ { "alias": "", "format": "table", "group": [], "metricColumn": "none", "rawQuery": true, "rawSql": "SELECT \n s.ledEnabled \nFROM Smartlock AS s\nWHERE s.name = \"$SmartlockName\"\n;", "refId": "A", "select": [ [ { "params": [ "value" ], "type": "column" } ] ], "timeColumn": "time", "where": [ { "name": "$__timeFilter", "params": [], "type": "macro" } ] } ], "thresholds": "", "title": "LED Signal", "type": "singlestat", "valueFontSize": "80%", "valueMaps": [ { "op": "=", "text": "Inaktiv", "value": "0" }, { "op": "=", "text": "Aktiv", "value": "1" } ], "valueName": "avg" }, { "cacheTimeout": null, "colorBackground": false, "colorValue": false, "colors": [ "#299c46", "rgba(237, 129, 40, 0.89)", "#d44a3a" ], "datasource": "$Datasource", "description": "Nuki Smart Lock versucht automatisch zu erkennen, ob Alkali Batterien oder Akkus verwendet werden. Damit werden die jeweiligen Grenzwerte für die Batteriewarnung optimiert. Du kannst den Batterietyp auch manuell festlegen.", "format": "none", "gauge": { "maxValue": 100, "minValue": 0, "show": false, "thresholdLabels": false, "thresholdMarkers": true }, "gridPos": { "h": 2, "w": 3, "x": 3, "y": 26 }, "id": 51, "interval": null, "links": [], "mappingType": 1, "mappingTypes": [ { "name": "value to text", "value": 1 }, { "name": "range to text", "value": 2 } ], "maxDataPoints": 100, "nullPointMode": "connected", "nullText": null, "postfix": "", "postfixFontSize": "80%", "prefix": "", "prefixFontSize": "50%", "rangeMaps": [ { "from": "null", "text": "N/A", "to": "null" } ], "sparkline": { "fillColor": "rgba(31, 118, 189, 0.18)", "full": false, "lineColor": "rgb(31, 120, 193)", "show": false }, "tableColumn": "batteryType", "targets": [ { "alias": "", "format": "table", "group": [], "metricColumn": "none", "rawQuery": true, "rawSql": "SELECT \n s.batteryType \nFROM Smartlock AS s\nWHERE s.name = \"$SmartlockName\"\n;", "refId": "A", "select": [ [ { "params": [ "value" ], "type": "column" } ] ], "timeColumn": "time", "where": [ { "name": "$__timeFilter", "params": [], "type": "macro" } ] } ], "thresholds": "", "title": "Batterietyp", "type": "singlestat", "valueFontSize": "50%", "valueMaps": [ { "op": "=", "text": "Alkali Batterien", "value": "0" }, { "op": "=", "text": "Akkus", "value": "1" }, { "op": "=", "text": "Lithium Batterien", "value": "2" } ], "valueName": "avg" }, { "cacheTimeout": null, "colorBackground": false, "colorValue": false, "colors": [ "#299c46", "rgba(237, 129, 40, 0.89)", "#d44a3a" ], "datasource": "$Datasource", "description": "Lock 'n' Go sperrt die Tür auf und nach einigen Sekunden automatisch wieder zu.", "format": "dtdurations", "gauge": { "maxValue": 100, "minValue": 0, "show": false, "thresholdLabels": false, "thresholdMarkers": true }, "gridPos": { "h": 2, "w": 3, "x": 6, "y": 26 }, "id": 56, "interval": null, "links": [], "mappingType": 1, "mappingTypes": [ { "name": "value to text", "value": 1 }, { "name": "range to text", "value": 2 } ], "maxDataPoints": 100, "nullPointMode": "connected", "nullText": null, "postfix": "", "postfixFontSize": "80%", "prefix": "", "prefixFontSize": "50%", "rangeMaps": [ { "from": "null", "text": "N/A", "to": "null" } ], "sparkline": { "fillColor": "rgba(31, 118, 189, 0.18)", "full": false, "lineColor": "rgb(31, 120, 193)", "show": false }, "tableColumn": "lngTimeout", "targets": [ { "alias": "", "format": "table", "group": [], "metricColumn": "none", "rawQuery": true, "rawSql": "SELECT \n s.lngTimeout\nFROM Smartlock AS s\nWHERE s.name = \"$SmartlockName\"\n;", "refId": "A", "select": [ [ { "params": [ "value" ], "type": "column" } ] ], "timeColumn": "time", "where": [ { "name": "$__timeFilter", "params": [], "type": "macro" } ] } ], "thresholds": "", "title": "Lock 'n' Go Dauer", "type": "singlestat", "valueFontSize": "80%", "valueMaps": [], "valueName": "avg" }, { "cacheTimeout": null, "colorBackground": false, "colorValue": false, "colors": [ "#299c46", "#806eb7", "#d44a3a" ], "datasource": "$Datasource", "decimals": 0, "description": "", "format": "m", "gauge": { "maxValue": 100, "minValue": 0, "show": false, "thresholdLabels": false, "thresholdMarkers": true }, "gridPos": { "h": 2, "w": 3, "x": 9, "y": 26 }, "id": 73, "interval": null, "links": [], "mappingType": 1, "mappingTypes": [ { "name": "value to text", "value": 1 }, { "name": "range to text", "value": 2 } ], "maxDataPoints": 100, "nullPointMode": "connected", "nullText": null, "postfix": "", "postfixFontSize": "50%", "prefix": "", "prefixFontSize": "50%", "rangeMaps": [ { "from": "null", "text": "N/A", "to": "null" } ], "sparkline": { "fillColor": "rgba(31, 118, 189, 0.18)", "full": false, "lineColor": "rgb(31, 120, 193)", "show": false }, "tableColumn": "CASE \n WHEN s.timezoneOffset > 0 THEN CONCAT(\"GMT +\",FORMAT(CAST(s.timezoneOffset AS DECIMAL)/60,0), \" Stunden\")\n WHEN s.timezoneOffset < 0 THEN CONCAT(\"GMT -\",FORMAT(CAST(s.timezoneOffset AS DECIMAL)/60,0), \" Stunden\")\n ELSE 0\n END", "targets": [ { "alias": "", "format": "table", "group": [], "metricColumn": "none", "rawQuery": true, "rawSql": "SELECT\n CASE \n WHEN s.timezoneOffset > 0 THEN CONCAT(\"GMT +\",FORMAT(CAST(s.timezoneOffset AS DECIMAL)/60,0), \" Stunden\")\n WHEN s.timezoneOffset < 0 THEN CONCAT(\"GMT -\",FORMAT(CAST(s.timezoneOffset AS DECIMAL)/60,0), \" Stunden\")\n ELSE 0\n END\nFROM\n Smartlock AS s\nWHERE s.name = \"$SmartlockName\"\n;", "refId": "A", "select": [ [ { "params": [ "value" ], "type": "column" } ] ], "timeColumn": "time", "where": [ { "name": "$__timeFilter", "params": [], "type": "macro" } ] } ], "thresholds": "", "title": "Zeitzone", "type": "singlestat", "valueFontSize": "50%", "valueMaps": [], "valueName": "avg" }, { "cacheTimeout": null, "colorBackground": false, "colorValue": false, "colors": [ "#299c46", "rgba(237, 129, 40, 0.89)", "#d44a3a" ], "datasource": "$Datasource", "description": "", "format": "degree", "gauge": { "maxValue": 100, "minValue": 0, "show": false, "thresholdLabels": false, "thresholdMarkers": true }, "gridPos": { "h": 2, "w": 3, "x": 12, "y": 26 }, "id": 77, "interval": null, "links": [], "mappingType": 1, "mappingTypes": [ { "name": "value to text", "value": 1 }, { "name": "range to text", "value": 2 } ], "maxDataPoints": 100, "nullPointMode": "connected", "nullText": null, "postfix": "", "postfixFontSize": "80%", "prefix": "", "prefixFontSize": "50%", "rangeMaps": [ { "from": "null", "text": "N/A", "to": "null" } ], "sparkline": { "fillColor": "rgba(31, 118, 189, 0.18)", "full": false, "lineColor": "rgb(31, 120, 193)", "show": false }, "tableColumn": "singleLockedPositionOffsetDegrees", "targets": [ { "alias": "", "format": "table", "group": [], "metricColumn": "none", "rawQuery": true, "rawSql": "SELECT \n s.singleLockedPositionOffsetDegrees \nFROM Smartlock AS s\nWHERE s.name = \"$SmartlockName\"\n;", "refId": "A", "select": [ [ { "params": [ "value" ], "type": "column" } ] ], "timeColumn": "time", "where": [ { "name": "$__timeFilter", "params": [], "type": "macro" } ] } ], "thresholds": "", "title": "Versatz in Einfachschließposition", "type": "singlestat", "valueFontSize": "80%", "valueMaps": [], "valueName": "avg" }, { "cacheTimeout": null, "colorBackground": false, "colorValue": false, "colors": [ "#299c46", "rgba(237, 129, 40, 0.89)", "#d44a3a" ], "datasource": "$Datasource", "description": "", "format": "none", "gauge": { "maxValue": 100, "minValue": 0, "show": false, "thresholdLabels": false, "thresholdMarkers": true }, "gridPos": { "h": 2, "w": 3, "x": 15, "y": 26 }, "id": 65, "interval": null, "links": [], "mappingType": 1, "mappingTypes": [ { "name": "value to text", "value": 1 }, { "name": "range to text", "value": 2 } ], "maxDataPoints": 100, "nullPointMode": "connected", "nullText": null, "postfix": "", "postfixFontSize": "80%", "prefix": "", "prefixFontSize": "50%", "rangeMaps": [ { "from": "null", "text": "N/A", "to": "null" } ], "sparkline": { "fillColor": "rgba(31, 118, 189, 0.18)", "full": false, "lineColor": "rgb(31, 120, 193)", "show": false }, "tableColumn": "doubleButtonPressAction", "targets": [ { "alias": "", "format": "table", "group": [], "metricColumn": "none", "rawQuery": true, "rawSql": "SELECT \n s.doubleButtonPressAction \nFROM Smartlock AS s\nWHERE s.name = \"$SmartlockName\"\n;", "refId": "A", "select": [ [ { "params": [ "value" ], "type": "column" } ] ], "timeColumn": "time", "where": [ { "name": "$__timeFilter", "params": [], "type": "macro" } ] } ], "thresholds": "", "title": "Aktion bei 2x Knopfdrücken", "type": "singlestat", "valueFontSize": "80%", "valueMaps": [ { "op": "=", "text": "Keine Aktion", "value": "0" }, { "op": "=", "text": "Intelligent", "value": "1" }, { "op": "=", "text": "Öffnen", "value": "2" }, { "op": "=", "text": "Schließen", "value": "3" }, { "op": "=", "text": "Falle öffnen", "value": "4" }, { "op": "=", "text": "Lock 'n' Go", "value": "5" }, { "op": "=", "text": "Status zeigen", "value": "6" } ], "valueName": "avg" }, { "cacheTimeout": null, "colorBackground": false, "colorValue": false, "colors": [ "#299c46", "rgba(237, 129, 40, 0.89)", "#d44a3a" ], "datasource": "$Datasource", "description": "", "format": "none", "gauge": { "maxValue": 100, "minValue": 0, "show": false, "thresholdLabels": false, "thresholdMarkers": true }, "gridPos": { "h": 2, "w": 3, "x": 18, "y": 26 }, "id": 68, "interval": null, "links": [], "mappingType": 1, "mappingTypes": [ { "name": "value to text", "value": 1 }, { "name": "range to text", "value": 2 } ], "maxDataPoints": 100, "nullPointMode": "connected", "nullText": null, "postfix": "", "postfixFontSize": "80%", "prefix": "", "prefixFontSize": "50%", "rangeMaps": [ { "from": "null", "text": "N/A", "to": "null" } ], "sparkline": { "fillColor": "rgba(31, 118, 189, 0.18)", "full": false, "lineColor": "rgb(31, 120, 193)", "show": false }, "tableColumn": "fobAction3", "targets": [ { "alias": "", "format": "table", "group": [], "metricColumn": "none", "rawQuery": true, "rawSql": "SELECT \n s.fobAction3\nFROM Smartlock AS s\nWHERE s.name = \"$SmartlockName\"\n;", "refId": "A", "select": [ [ { "params": [ "value" ], "type": "column" } ] ], "timeColumn": "time", "where": [ { "name": "$__timeFilter", "params": [], "type": "macro" } ] } ], "thresholds": "", "title": "FOB Aktion 3", "type": "singlestat", "valueFontSize": "80%", "valueMaps": [ { "op": "=", "text": "Keine Aktion", "value": "0" }, { "op": "=", "text": "Intelligent", "value": "1" }, { "op": "=", "text": "Öffnen", "value": "2" }, { "op": "=", "text": "Schließen", "value": "3" }, { "op": "=", "text": "Falle öffnen", "value": "4" }, { "op": "=", "text": "Lock 'n' Go", "value": "5" }, { "op": "=", "text": "Status zeigen", "value": "6" } ], "valueName": "avg" }, { "cacheTimeout": null, "colorBackground": false, "colorValue": false, "colors": [ "#629e51", "#cca300", "#ba43a9" ], "datasource": "$Datasource", "description": "", "format": "none", "gauge": { "maxValue": 100, "minValue": 0, "show": false, "thresholdLabels": false, "thresholdMarkers": true }, "gridPos": { "h": 2, "w": 3, "x": 21, "y": 26 }, "id": 88, "interval": null, "links": [], "mappingType": 1, "mappingTypes": [ { "name": "value to text", "value": 1 }, { "name": "range to text", "value": 2 } ], "maxDataPoints": 100, "nullPointMode": "connected", "nullText": null, "postfix": "", "postfixFontSize": "50%", "prefix": "", "prefixFontSize": "50%", "rangeMaps": [ { "from": "null", "text": "N/A", "to": "null" } ], "sparkline": { "fillColor": "rgba(31, 118, 189, 0.18)", "full": false, "lineColor": "rgb(31, 120, 193)", "show": false }, "tableColumn": "REVERSE(\n REPLACE(\n INSERT(\n INSERT(\n INSERT(\n INSERT(\n REVERSE(HEX(s.hardwareVersion))\n ,3, 0, '.')\n ,6, 0, '.')\n ,9, 0, '.')\n ,12, 0, '.')\n", "targets": [ { "alias": "", "format": "table", "group": [], "hide": false, "metricColumn": "none", "rawQuery": true, "rawSql": "SELECT\n REVERSE(\n REPLACE(\n INSERT(\n INSERT(\n INSERT(\n INSERT(\n REVERSE(HEX(s.hardwareVersion))\n ,3, 0, '.')\n ,6, 0, '.')\n ,9, 0, '.')\n ,12, 0, '.')\n ,'0','')\n )\nFROM Smartlock AS s\nWHERE s.name = \"$SmartlockName\"\n;", "refId": "A", "select": [ [ { "params": [ "value" ], "type": "column" } ] ], "timeColumn": "time", "where": [ { "name": "$__timeFilter", "params": [], "type": "macro" } ] } ], "thresholds": "", "title": "Hardware Version", "type": "singlestat", "valueFontSize": "80%", "valueMaps": [ { "op": "=", "text": "N/A", "value": "null" } ], "valueName": "avg" }, { "cacheTimeout": null, "colorBackground": false, "colorValue": true, "colors": [ "#299c46", "#cca300", "#d44a3a" ], "datasource": "$Datasource", "format": "none", "gauge": { "maxValue": 100, "minValue": 0, "show": false, "thresholdLabels": false, "thresholdMarkers": true }, "gridPos": { "h": 2, "w": 9, "x": 0, "y": 28 }, "id": 16, "interval": null, "links": [], "mappingType": 1, "mappingTypes": [ { "name": "value to text", "value": 1 }, { "name": "range to text", "value": 2 } ], "maxDataPoints": 100, "nullPointMode": "connected", "nullText": null, "postfix": "", "postfixFontSize": "50%", "prefix": "", "prefixFontSize": "50%", "rangeMaps": [ { "from": "null", "text": "N/A", "to": "null" } ], "sparkline": { "fillColor": "rgba(31, 118, 189, 0.18)", "full": false, "lineColor": "rgb(31, 120, 193)", "show": false }, "tableColumn": "CONCAT(AccountsGesamt,\" Gesamt (\",a2.AccountsAktiv, \" Aktiv | \",a1.AccountsGesamt - a2.AccountsAktiv, \" Inaktiv)\")", "targets": [ { "alias": "", "format": "table", "group": [], "hide": false, "metricColumn": "none", "rawQuery": true, "rawSql": "SELECT \n CONCAT(AccountsGesamt,\" Gesamt (\",a2.AccountsAktiv, \" Aktiv | \",a1.AccountsGesamt - a2.AccountsAktiv, \" Inaktiv)\") \n FROM (\n SELECT \n COUNT(*) AS AccountsGesamt \n FROM\n SmartlockAuth AS a, \n Smartlock AS s\n WHERE s.name = \"$SmartlockName\"\n ) AS a1,\n (SELECT \n COUNT(*) AS AccountsAktiv \n FROM \n SmartlockAuth AS a,\n Smartlock AS s\n WHERE s.name = \"$SmartlockName\" AND \n a.enabled = TRUE\n ) AS a2\n;", "refId": "A", "select": [ [ { "params": [ "value" ], "type": "column" } ] ], "timeColumn": "time", "where": [ { "name": "$__timeFilter", "params": [], "type": "macro" } ] } ], "thresholds": "", "title": "Anzahl Accounts", "type": "singlestat", "valueFontSize": "80%", "valueMaps": [ { "op": "=", "text": "N/A", "value": "null" } ], "valueName": "avg" }, { "cacheTimeout": null, "colorBackground": false, "colorValue": true, "colors": [ "#299c46", "#cca300", "#d44a3a" ], "datasource": "$Datasource", "description": "", "format": "none", "gauge": { "maxValue": 100, "minValue": 0, "show": false, "thresholdLabels": false, "thresholdMarkers": true }, "gridPos": { "h": 2, "w": 6, "x": 9, "y": 28 }, "id": 17, "interval": null, "links": [], "mappingType": 1, "mappingTypes": [ { "name": "value to text", "value": 1 }, { "name": "range to text", "value": 2 } ], "maxDataPoints": 100, "nullPointMode": "connected", "nullText": null, "postfix": "", "postfixFontSize": "50%", "prefix": "", "prefixFontSize": "50%", "rangeMaps": [ { "from": "null", "text": "N/A", "to": "null" } ], "sparkline": { "fillColor": "rgba(31, 118, 189, 0.18)", "full": false, "lineColor": "rgb(31, 120, 193)", "show": false }, "tableColumn": "Day", "targets": [ { "alias": "", "format": "table", "group": [], "hide": false, "metricColumn": "none", "rawQuery": true, "rawSql": "/*\nZeigt den Tag, der durschschnittlich am meisten frequentiert ist (ermittelt durch die Anzahl der Aufsperrungen)\n*/\nSELECT \n RESULT.`Day` \nFROM\n (\n SELECT \n COUNT(n.date) AS `Count`,\n DAYNAME(ADDTIME(n.date, SEC_TO_TIME(s.timezoneOffset*60))) AS `Day`\n FROM \n SmartlockLog AS n, \n Smartlock AS s\n WHERE \n n.action in (1,4,5) AND /*Aufsperren / Log 'n' Go oder Kombination aus beidem*/\n s.name = \"$SmartlockName\"\n GROUP BY `Day`\n ORDER BY `Count` DESC\n LIMIT 1\n ) AS RESULT\n;", "refId": "A", "select": [ [ { "params": [ "value" ], "type": "column" } ] ], "timeColumn": "time", "where": [ { "name": "$__timeFilter", "params": [], "type": "macro" } ] } ], "thresholds": "", "title": "Meist frequentierter Tag", "type": "singlestat", "valueFontSize": "80%", "valueMaps": [ { "op": "=", "text": "N/A", "value": "null" } ], "valueName": "avg" }, { "cacheTimeout": null, "colorBackground": false, "colorValue": true, "colors": [ "#299c46", "#cca300", "#d44a3a" ], "datasource": "$Datasource", "format": "none", "gauge": { "maxValue": 100, "minValue": 0, "show": false, "thresholdLabels": false, "thresholdMarkers": true }, "gridPos": { "h": 2, "w": 6, "x": 15, "y": 28 }, "id": 11, "interval": null, "links": [], "mappingType": 1, "mappingTypes": [ { "name": "value to text", "value": 1 }, { "name": "range to text", "value": 2 } ], "maxDataPoints": 100, "nullPointMode": "connected", "nullText": null, "postfix": "", "postfixFontSize": "50%", "prefix": "", "prefixFontSize": "50%", "rangeMaps": [ { "from": "null", "text": "N/A", "to": "null" } ], "sparkline": { "fillColor": "rgba(31, 118, 189, 0.18)", "full": false, "lineColor": "rgb(31, 120, 193)", "show": false }, "tableColumn": "Trigger", "targets": [ { "alias": "", "format": "table", "group": [], "hide": false, "metricColumn": "none", "rawQuery": true, "rawSql": "SELECT RESULT.`Trigger` FROM \n (\n SELECT \n COUNT(*) AS \"Anzahl\", \n n.name AS \"Trigger\" \n FROM \n SmartlockLog AS n, \n Smartlock AS s\n WHERE \n n.name != \"\" AND\n s.name = \"$SmartlockName\"\n GROUP BY n.name \n ORDER BY `Anzahl` DESC\n LIMIT 1\n ) AS RESULT\n;", "refId": "A", "select": [ [ { "params": [ "value" ], "type": "column" } ] ], "timeColumn": "time", "where": [ { "name": "$__timeFilter", "params": [], "type": "macro" } ] } ], "thresholds": "", "title": "Recordhalter im Triggern", "type": "singlestat", "valueFontSize": "80%", "valueMaps": [ { "op": "=", "text": "N/A", "value": "null" } ], "valueName": "avg" }, { "cacheTimeout": null, "colorBackground": false, "colorValue": false, "colors": [ "#299c46", "rgba(237, 129, 40, 0.89)", "#d44a3a" ], "datasource": "$Datasource", "description": "", "format": "none", "gauge": { "maxValue": 100, "minValue": 0, "show": false, "thresholdLabels": false, "thresholdMarkers": true }, "gridPos": { "h": 2, "w": 3, "x": 21, "y": 28 }, "id": 60, "interval": null, "links": [], "mappingType": 1, "mappingTypes": [ { "name": "value to text", "value": 1 }, { "name": "range to text", "value": 2 } ], "maxDataPoints": 100, "nullPointMode": "connected", "nullText": null, "postfix": "", "postfixFontSize": "80%", "prefix": "", "prefixFontSize": "50%", "rangeMaps": [ { "from": "null", "text": "N/A", "to": "null" } ], "sparkline": { "fillColor": "rgba(31, 118, 189, 0.18)", "full": false, "lineColor": "rgb(31, 120, 193)", "show": false }, "tableColumn": "accountId", "targets": [ { "alias": "", "format": "table", "group": [], "metricColumn": "none", "rawQuery": true, "rawSql": "SELECT \n s.accountId\nFROM Smartlock AS s\nWHERE s.name = \"$SmartlockName\"\n;", "refId": "A", "select": [ [ { "params": [ "value" ], "type": "column" } ] ], "timeColumn": "time", "where": [ { "name": "$__timeFilter", "params": [], "type": "macro" } ] } ], "thresholds": "", "title": "Account Id", "type": "singlestat", "valueFontSize": "80%", "valueMaps": [], "valueName": "avg" }, { "columns": [], "datasource": "$Datasource", "fontSize": "100%", "gridPos": { "h": 24, "w": 24, "x": 0, "y": 30 }, "id": 2, "links": [], "pageSize": 25, "scroll": true, "showHeader": true, "sort": { "col": null, "desc": false }, "styles": [], "targets": [ { "alias": "", "bucketAggs": [ { "field": "date", "id": "2", "settings": { "interval": "auto", "min_doc_count": 0, "trimEdges": 0 }, "type": "date_histogram" } ], "format": "table", "group": [], "hide": false, "metricColumn": "none", "metrics": [ { "field": "select field", "id": "1", "type": "count" } ], "rawQuery": true, "rawSql": "SELECT\n @row_number:=@row_number + 1 AS \"Nr.\",\n CONCAT(DATE_FORMAT(ADDTIME(n.date, SEC_TO_TIME(s.timezoneOffset*60)),'%d.%m.%Y %H:%i:%s'),' (',DAYNAME(ADDTIME(n.date, SEC_TO_TIME(s.timezoneOffset*60))),')') AS \"Datum\", -- +2 Stunden Aufschlag, da Zeitzone anders\n CASE \n WHEN n.trigger = 0 AND n.name = \"Nuki Web ()\" THEN \"Nuki Web (System/API Call)\"\n WHEN n.trigger = 0 AND n.name != \"\" THEN CONCAT(n.name, \" (User)\")\n WHEN n.trigger = 0 AND n.name = \"\" THEN \"Positionserkennung (Smartlock)\"\n WHEN n.trigger = 1 THEN \"Manuell\"\n WHEN n.trigger = 2 THEN \"Manuell (Button)\"\n WHEN n.trigger = 3 THEN \"Automatisch\"\n WHEN n.trigger = 4 THEN \"Web\"\n WHEN n.trigger = 5 THEN \"App\" \n WHEN n.trigger = 6 THEN \"Auto Lock\"\n WHEN n.trigger = 255 THEN \"Keypad\"\n ELSE CONCAT(\"[\",n.trigger,\"] - \", \" Undefiniert\")\n END \"Trigger\", \n CASE \n WHEN n.action = 1 THEN \"Aufgesperrt\"\n WHEN n.action = 2 THEN \"Zugesperrt\"\n WHEN n.action = 3 THEN \"Tür geöffnet\"\n WHEN n.action = 4 THEN \"Lock 'n' Go\"\n WHEN n.action = 5 THEN \"Lock 'n' Go + Tür geöffnet\"\n WHEN n.action = 252 THEN \"Initialisiert\"\n WHEN n.action = 253 THEN \"Kalibriert\"\n WHEN n.action = 254 THEN \"Log aktiviert\"\n WHEN n.action = 255 THEN \"Log deaktiviert\"\n ELSE CONCAT(\"[\",n.action,\"] - \", \" Undefiniert\")\n END AS \"Aktion\",\n CASE\n WHEN n.state = 0 THEN \"OK\"\n WHEN n.state = 1 THEN \"Motor blockiert\"\n WHEN n.state = 2 THEN \"Abgebrochen\"\n WHEN n.state = 3 THEN \"Zu neu\"\n WHEN n.state = 4 THEN \"Beschäftigt\"\n WHEN n.state = 5 THEN \"Batterien zu schwach\"\n WHEN n.state = 6 THEN \"Kupplungsfehler\"\n WHEN n.state = 7 THEN \"Motorstromfehler\"\n WHEN n.state = 8 THEN \"Kalibriert\"\n WHEN n.state = 254 THEN \"Anderer Fehler\"\n WHEN n.state = 255 THEN \"Unbekannter Fehler\"\n ELSE CONCAT(\"[\",n.state,\"] - \", \" Undefiniert\")\n END AS \"Status\"\n /*n.trigger AS \"Trigger\" */\n /*n.autoUnlock AS \"Auto-Unlock\" */\n /*n.smartLockId AS \"\" */\n /*n.authId */\n /*n.id */\nFROM \n SmartlockLog AS n, \n Smartlock AS s,\n (SELECT @row_number:=0) AS t\nWHERE s.name = \"$SmartlockName\" \nORDER BY n.date DESC\n;", "refId": "A", "select": [ [ { "params": [ "value" ], "type": "column" } ] ], "timeColumn": "time", "timeField": "date", "where": [ { "name": "$__timeFilter", "params": [], "type": "macro" } ] } ], "title": "Nuki Web Log / Audit", "transform": "table", "type": "table" }, { "columns": [], "datasource": "$Datasource", "fontSize": "100%", "gridPos": { "h": 10, "w": 24, "x": 0, "y": 54 }, "id": 15, "links": [], "pageSize": 8, "scroll": true, "showHeader": true, "sort": { "col": 5, "desc": false }, "styles": [ { "alias": "", "colorMode": null, "colors": [ "rgba(245, 54, 54, 0.9)", "rgba(237, 129, 40, 0.89)", "rgba(50, 172, 45, 0.97)" ], "dateFormat": "DD.MM.YYYY HH:mm:ss", "decimals": 2, "mappingType": 1, "pattern": "Zuletzt aktiv", "thresholds": [], "type": "date", "unit": "short" }, { "alias": "", "colorMode": null, "colors": [ "rgba(245, 54, 54, 0.9)", "rgba(237, 129, 40, 0.89)", "rgba(50, 172, 45, 0.97)" ], "dateFormat": "YYYY-MM-DD HH:mm:ss", "decimals": 0, "mappingType": 1, "pattern": "Schließzyklen", "thresholds": [], "type": "number", "unit": "short" }, { "alias": "", "colorMode": "row", "colors": [ "rgba(245, 54, 54, 0.9)", "#629e51", "rgba(50, 172, 45, 0.97)" ], "dateFormat": "YYYY-MM-DD HH:mm:ss", "decimals": 0, "mappingType": 1, "pattern": "Aktiviert", "thresholds": [ "1" ], "type": "string", "unit": "short", "valueMaps": [ { "text": "Ja", "value": "1" }, { "text": "Nein", "value": "0" } ] }, { "alias": "", "colorMode": null, "colors": [ "rgba(245, 54, 54, 0.9)", "rgba(237, 129, 40, 0.89)", "rgba(50, 172, 45, 0.97)" ], "dateFormat": "YYYY-MM-DD HH:mm:ss", "decimals": 2, "mappingType": 1, "pattern": "Remotezugriff", "thresholds": [], "type": "string", "unit": "short", "valueMaps": [ { "text": "Nein", "value": "0" }, { "text": "Ja", "value": "1" } ] }, { "alias": "", "colorMode": null, "colors": [ "rgba(245, 54, 54, 0.9)", "rgba(237, 129, 40, 0.89)", "rgba(50, 172, 45, 0.97)" ], "dateFormat": "DD.MM.YYYY HH:mm", "decimals": 2, "mappingType": 1, "pattern": "Erlaubnis von", "thresholds": [], "type": "date", "unit": "short" }, { "alias": "", "colorMode": null, "colors": [ "rgba(245, 54, 54, 0.9)", "rgba(237, 129, 40, 0.89)", "rgba(50, 172, 45, 0.97)" ], "dateFormat": "DD.MM.YYYY HH:mm", "decimals": 2, "mappingType": 1, "pattern": "Erlaubnis bis", "thresholds": [], "type": "date", "unit": "short" }, { "alias": "", "colorMode": null, "colors": [ "rgba(245, 54, 54, 0.9)", "rgba(237, 129, 40, 0.89)", "rgba(50, 172, 45, 0.97)" ], "dateFormat": "YYYY-MM-DD HH:mm:ss", "decimals": 2, "mappingType": 1, "pattern": "", "thresholds": [], "type": "number", "unit": "short" } ], "targets": [ { "alias": "", "bucketAggs": [ { "field": "date", "id": "2", "settings": { "interval": "auto", "min_doc_count": 0, "trimEdges": 0 }, "type": "date_histogram" } ], "format": "table", "group": [], "hide": false, "metricColumn": "none", "metrics": [ { "field": "select field", "id": "1", "type": "count" } ], "rawQuery": true, "rawSql": "SELECT\n @row_number:=@row_number + 1 AS \"Nr.\",\n /*n.accountUserId,*/\n n.name AS \"Trigger\",\n n.enabled AS \"Aktiviert\",\n n.remoteAllowed AS \"Remotezugriff\",\n ADDTIME(n.lastActiveDate, SEC_TO_TIME(s.timezoneOffset*60)) AS \"Zuletzt aktiv\", -- +2 Stunden Aufschlag, da Zeitzone anders\n /*ADDTIME(updateDate, SEC_TO_TIME(s.timezoneOffset*60)) AS \"Letztes Update\", -- +2 Stunden Aufschlag, da Zeitzone anders*/\n ADDTIME(n.allowedFromDate, SEC_TO_TIME(s.timezoneOffset*60)) AS \"Erlaubnis von\",\n ADDTIME(n.allowedUntilDate, SEC_TO_TIME(s.timezoneOffset*60)) AS \"Erlaubnis bis\",\n TIME_FORMAT(SEC_TO_TIME(n.allowedFromTime * 60),'%H:%i') AS \"Wiederkehrend: von\",\n TIME_FORMAT(SEC_TO_TIME(n.allowedUntilTime * 60),'%H:%i') AS \"Wiederkehrend: bis\",\n DaysFromBitMask(n.allowedWeekDays) AS \"Erlaubte Wochentage\",\n n.lockCount AS \"Schließzyklen\",\n CASE \n WHEN n.type = 0 THEN \"App\"\n WHEN n.type = 1 THEN \"Bridge\"\n WHEN n.type = 2 THEN \"FOB\"\n WHEN n.type = 3 THEN \"Keypad\"\n WHEN n.type = 13 THEN \"Keypad Code\"\n WHEN n.type = 14 THEN \"Z-Key\"\n WHEN n.type = 15 THEN \"Virtual\"\n ELSE \"Undefiniert\" \n END \"Typ\"\n FROM \n SmartlockAuth AS n, \n Smartlock AS s,\n (SELECT @row_number:=0) AS t\n WHERE\n s.name =\"$SmartlockName\"\n;", "refId": "A", "select": [ [ { "params": [ "value" ], "type": "column" } ] ], "timeColumn": "time", "timeField": "date", "where": [ { "name": "$__timeFilter", "params": [], "type": "macro" } ] } ], "title": "Accounts", "transform": "table", "type": "table" }, { "collapsed": false, "gridPos": { "h": 1, "w": 24, "x": 0, "y": 64 }, "id": 26, "panels": [], "title": "Bridge", "type": "row" }, { "cacheTimeout": null, "colorBackground": true, "colorValue": false, "colors": [ "#e24d42", "#629e51", "#e24d42" ], "datasource": "$Datasource", "format": "none", "gauge": { "maxValue": 100, "minValue": 0, "show": false, "thresholdLabels": false, "thresholdMarkers": true }, "gridPos": { "h": 2, "w": 3, "x": 0, "y": 65 }, "id": 44, "interval": null, "links": [], "mappingType": 2, "mappingTypes": [ { "name": "value to text", "value": 1 }, { "name": "range to text", "value": 2 } ], "maxDataPoints": 100, "nullPointMode": "connected", "nullText": null, "postfix": "", "postfixFontSize": "50%", "prefix": "", "prefixFontSize": "50%", "rangeMaps": [ { "from": "0", "text": "Unkalibriert", "to": "0" }, { "from": "1", "text": "Geschlossen", "to": "1" }, { "from": "2", "text": "Öffne ...", "to": "2" }, { "from": "3", "text": "Offen", "to": "3" }, { "from": "4", "text": "Schließe ...", "to": "4" }, { "from": "5", "text": "Schlossfalle offen", "to": "5" }, { "from": "6", "text": "Offen (Lock 'n' Go)", "to": "6" }, { "from": "7", "text": "Schlossfalle öffnen ...", "to": "7" }, { "from": "8", "text": "Fehler", "to": "253" }, { "from": "254", "text": "Motor blockiert", "to": "254" }, { "from": "255", "text": "Undefiniert", "to": "255" } ], "sparkline": { "fillColor": "rgba(31, 118, 189, 0.18)", "full": false, "lineColor": "rgb(31, 120, 193)", "show": false }, "tableColumn": "state", "targets": [ { "alias": "", "format": "table", "group": [], "hide": false, "metricColumn": "none", "rawQuery": true, "rawSql": "SELECT \n l.state\nFROM\n BridgeInfo AS b,\n BridgeLockState AS l\nWHERE b.name = \"$BridgeName\"\n;", "refId": "A", "select": [ [ { "params": [ "value" ], "type": "column" } ] ], "timeColumn": "time", "where": [ { "name": "$__timeFilter", "params": [], "type": "macro" } ] } ], "thresholds": "0,3", "title": "Smartlock Status (Bridge)", "type": "singlestat", "valueFontSize": "80%", "valueMaps": [], "valueName": "avg" }, { "cacheTimeout": null, "colorBackground": true, "colorValue": false, "colors": [ "#d44a3a", "#e24d42", "#629e51" ], "datasource": "$Datasource", "format": "none", "gauge": { "maxValue": 100, "minValue": 0, "show": false, "thresholdLabels": false, "thresholdMarkers": true }, "gridPos": { "h": 2, "w": 3, "x": 3, "y": 65 }, "id": 38, "interval": null, "links": [], "mappingType": 1, "mappingTypes": [ { "name": "value to text", "value": 1 }, { "name": "range to text", "value": 2 } ], "maxDataPoints": 100, "nullPointMode": "connected", "nullText": null, "postfix": "", "postfixFontSize": "50%", "prefix": "", "prefixFontSize": "50%", "rangeMaps": [ { "from": "null", "text": "N/A", "to": "null" } ], "sparkline": { "fillColor": "rgba(31, 118, 189, 0.18)", "full": false, "lineColor": "rgb(31, 120, 193)", "show": false }, "tableColumn": "serverConnected", "targets": [ { "alias": "", "format": "table", "group": [], "hide": false, "metricColumn": "none", "rawQuery": true, "rawSql": "SELECT \n serverConnected\nFROM BridgeInfo AS b\nWHERE b.name = \"$BridgeName\"\n;", "refId": "A", "select": [ [ { "params": [ "value" ], "type": "column" } ] ], "timeColumn": "time", "where": [ { "name": "$__timeFilter", "params": [], "type": "macro" } ] } ], "thresholds": "0,1", "title": "Server verbunden", "type": "singlestat", "valueFontSize": "80%", "valueMaps": [ { "op": "=", "text": "Ja", "value": "1" }, { "op": "=", "text": "Nein", "value": "0" } ], "valueName": "avg" }, { "cacheTimeout": null, "colorBackground": false, "colorValue": false, "colors": [ "#299c46", "rgba(237, 129, 40, 0.89)", "#d44a3a" ], "datasource": "$Datasource", "format": "none", "gauge": { "maxValue": null, "minValue": -100, "show": true, "thresholdLabels": true, "thresholdMarkers": true }, "gridPos": { "h": 4, "w": 3, "x": 6, "y": 65 }, "id": 33, "interval": null, "links": [], "mappingType": 1, "mappingTypes": [ { "name": "value to text", "value": 1 }, { "name": "range to text", "value": 2 } ], "maxDataPoints": 100, "nullPointMode": "connected", "nullText": null, "postfix": "", "postfixFontSize": "50%", "prefix": "", "prefixFontSize": "50%", "rangeMaps": [ { "from": "null", "text": "N/A", "to": "null" } ], "sparkline": { "fillColor": "rgba(31, 118, 189, 0.18)", "full": false, "lineColor": "rgb(31, 120, 193)", "show": false }, "tableColumn": "rssi", "targets": [ { "alias": "", "format": "table", "group": [], "hide": false, "metricColumn": "none", "rawQuery": true, "rawSql": "/*range is 0 to -100 while -100 is maximum and 0 is minimum*/\nSELECT \n rssi\nFROM BridgeInfo AS b\nWHERE b.name = \"$BridgeName\"\n;", "refId": "A", "select": [ [ { "params": [ "value" ], "type": "column" } ] ], "timeColumn": "time", "where": [ { "name": "$__timeFilter", "params": [], "type": "macro" } ] } ], "thresholds": "-75,-50", "title": "RSSI", "type": "singlestat", "valueFontSize": "80%", "valueMaps": [], "valueName": "avg" }, { "cacheTimeout": null, "colorBackground": true, "colorValue": false, "colors": [ "#299c46", "#806eb7", "#d44a3a" ], "datasource": "$Datasource", "format": "none", "gauge": { "maxValue": 100, "minValue": 0, "show": false, "thresholdLabels": false, "thresholdMarkers": true }, "gridPos": { "h": 2, "w": 3, "x": 9, "y": 65 }, "id": 39, "interval": null, "links": [], "mappingType": 1, "mappingTypes": [ { "name": "value to text", "value": 1 }, { "name": "range to text", "value": 2 } ], "maxDataPoints": 100, "nullPointMode": "connected", "nullText": null, "postfix": "", "postfixFontSize": "50%", "prefix": "", "prefixFontSize": "50%", "rangeMaps": [ { "from": "null", "text": "N/A", "to": "null" } ], "sparkline": { "fillColor": "rgba(31, 118, 189, 0.18)", "full": false, "lineColor": "rgb(31, 120, 193)", "show": false }, "tableColumn": "DATE_FORMAT(ADDTIME(b.currentTime, SEC_TO_TIME(s.timezoneOffset*60)),'%d.%m.%Y %H:%i:%s')", "targets": [ { "alias": "", "format": "table", "group": [], "hide": false, "metricColumn": "none", "rawQuery": true, "rawSql": "SELECT\n DATE_FORMAT(ADDTIME(b.currentTime, SEC_TO_TIME(s.timezoneOffset*60)),'%d.%m.%Y %H:%i:%s')\nFROM\n BridgeInfo AS b,\n Smartlock AS s\nWHERE b.name = \"$BridgeName\"\n;", "refId": "A", "select": [ [ { "params": [ "value" ], "type": "column" } ] ], "timeColumn": "time", "where": [ { "name": "$__timeFilter", "params": [], "type": "macro" } ] } ], "thresholds": "", "title": "Zeit", "type": "singlestat", "valueFontSize": "50%", "valueMaps": [], "valueName": "avg" }, { "cacheTimeout": null, "colorBackground": true, "colorValue": false, "colors": [ "#299c46", "#806eb7", "#d44a3a" ], "datasource": "$Datasource", "format": "none", "gauge": { "maxValue": 100, "minValue": 0, "show": false, "thresholdLabels": false, "thresholdMarkers": true }, "gridPos": { "h": 2, "w": 3, "x": 12, "y": 65 }, "id": 40, "interval": null, "links": [], "mappingType": 1, "mappingTypes": [ { "name": "value to text", "value": 1 }, { "name": "range to text", "value": 2 } ], "maxDataPoints": 100, "nullPointMode": "connected", "nullText": null, "postfix": " Tagen", "postfixFontSize": "50%", "prefix": "", "prefixFontSize": "50%", "rangeMaps": [ { "from": "null", "text": "N/A", "to": "null" } ], "sparkline": { "fillColor": "rgba(31, 118, 189, 0.18)", "full": false, "lineColor": "rgb(31, 120, 193)", "show": false }, "tableColumn": "uptime / 60 / 60 / 24", "targets": [ { "alias": "", "format": "table", "group": [], "hide": false, "metricColumn": "none", "rawQuery": true, "rawSql": "SELECT\n /* REPLACE(CAST(FORMAT(CAST(uptime AS DECIMAL) / 60 / 60 / 24, 1) AS CHAR), '.', ',') */\n uptime / 60 / 60 / 24 /*in seconds*/\nFROM\n BridgeInfo AS b\nWHERE b.name = \"$BridgeName\"\n;", "refId": "A", "select": [ [ { "params": [ "value" ], "type": "column" } ] ], "timeColumn": "time", "where": [ { "name": "$__timeFilter", "params": [], "type": "macro" } ] } ], "thresholds": "", "title": "Online seit", "type": "singlestat", "valueFontSize": "50%", "valueMaps": [], "valueName": "avg" }, { "cacheTimeout": null, "colorBackground": false, "colorValue": false, "colors": [ "#299c46", "rgba(237, 129, 40, 0.89)", "#d44a3a" ], "datasource": "$Datasource", "format": "none", "gauge": { "maxValue": 120, "minValue": 0, "show": true, "thresholdLabels": true, "thresholdMarkers": true }, "gridPos": { "h": 6, "w": 3, "x": 15, "y": 65 }, "id": 87, "interval": null, "links": [], "mappingType": 1, "mappingTypes": [ { "name": "value to text", "value": 1 }, { "name": "range to text", "value": 2 } ], "maxDataPoints": 100, "nullPointMode": "connected", "nullText": null, "postfix": " s", "postfixFontSize": "80%", "prefix": "", "prefixFontSize": "50%", "rangeMaps": [ { "from": "null", "text": "N/A", "to": "null" } ], "sparkline": { "fillColor": "rgba(31, 118, 189, 0.18)", "full": false, "lineColor": "rgb(31, 120, 193)", "show": false }, "tableColumn": "(NOW() - ADDTIME(l.timestamp, SEC_TO_TIME(s.timezoneOffset*60)))", "targets": [ { "alias": "", "format": "table", "group": [], "metricColumn": "none", "rawQuery": true, "rawSql": "/*this value is a little bit higher because there are different time offsets due to downloading the log files, maybe syncing them, parsing and importing them */\nSELECT \n (NOW() - ADDTIME(l.timestamp, SEC_TO_TIME(s.timezoneOffset*60)))\nFROM\n BridgeInfo AS b,\n BridgeLog AS l,\n Smartlock AS s\nWHERE b.name = \"$BridgeName\"\n;\n", "refId": "A", "select": [ [ { "params": [ "value" ], "type": "column" } ] ], "timeColumn": "time", "where": [ { "name": "$__timeFilter", "params": [], "type": "macro" } ] } ], "thresholds": "60,90,120", "title": "Letzer Log-Eintrag", "type": "singlestat", "valueFontSize": "50%", "valueMaps": [], "valueName": "avg" }, { "columns": [], "datasource": "$Datasource", "fontSize": "100%", "gridPos": { "h": 6, "w": 6, "x": 18, "y": 65 }, "id": 42, "links": [], "pageSize": null, "scroll": true, "showHeader": true, "sort": { "col": 0, "desc": true }, "styles": [ { "alias": "", "colorMode": null, "colors": [ "rgba(245, 54, 54, 0.9)", "rgba(237, 129, 40, 0.89)", "rgba(50, 172, 45, 0.97)" ], "dateFormat": "YYYY-MM-DD HH:mm:ss", "decimals": 2, "link": false, "linkTooltip": "", "linkUrl": "", "mappingType": 1, "pattern": "URL", "thresholds": [], "type": "number", "unit": "short" }, { "alias": "", "colorMode": null, "colors": [ "rgba(245, 54, 54, 0.9)", "rgba(237, 129, 40, 0.89)", "rgba(50, 172, 45, 0.97)" ], "dateFormat": "YYYY-MM-DD HH:mm:ss", "decimals": 0, "mappingType": 1, "pattern": "Id", "thresholds": [], "type": "number", "unit": "short" } ], "targets": [ { "alias": "", "format": "table", "group": [], "hide": false, "metricColumn": "none", "rawQuery": true, "rawSql": "SELECT\n c.id AS \"Id\",\n c.url AS \"URL\"\nFROM\n BridgeInfo AS b,\n BridgeCallbackList AS c\nWHERE b.name = \"$BridgeName\"\n;", "refId": "A", "select": [ [ { "params": [ "value" ], "type": "column" } ] ], "timeColumn": "time", "where": [ { "name": "$__timeFilter", "params": [], "type": "macro" } ] } ], "title": "Callback URLs", "transform": "table", "type": "table" }, { "cacheTimeout": null, "colorBackground": true, "colorValue": false, "colors": [ "#e24d42", "#e24d42", "#629e51" ], "datasource": "$Datasource", "description": "", "format": "none", "gauge": { "maxValue": 100, "minValue": 0, "show": false, "thresholdLabels": false, "thresholdMarkers": true }, "gridPos": { "h": 2, "w": 3, "x": 0, "y": 67 }, "id": 46, "interval": null, "links": [], "mappingType": 1, "mappingTypes": [ { "name": "value to text", "value": 1 }, { "name": "range to text", "value": 2 } ], "maxDataPoints": 100, "nullPointMode": "connected", "nullText": null, "postfix": "", "postfixFontSize": "50%", "prefix": "", "prefixFontSize": "50%", "rangeMaps": [ { "from": "null", "text": "N/A", "to": "null" } ], "sparkline": { "fillColor": "rgba(31, 118, 189, 0.18)", "full": false, "lineColor": "rgb(31, 120, 193)", "show": false }, "tableColumn": "success", "targets": [ { "alias": "", "format": "table", "group": [], "hide": false, "metricColumn": "none", "rawQuery": true, "rawSql": "SELECT \n l.success\nFROM\n BridgeInfo AS b,\n BridgeLockState AS l\nWHERE b.name = \"$BridgeName\"\n;", "refId": "A", "select": [ [ { "params": [ "value" ], "type": "column" } ] ], "timeColumn": "time", "where": [ { "name": "$__timeFilter", "params": [], "type": "macro" } ] } ], "thresholds": "0,1", "title": "Schließen erfolgreich (Bridge)", "type": "singlestat", "valueFontSize": "80%", "valueMaps": [ { "op": "=", "text": "Nein", "value": "0" }, { "op": "=", "text": "Ja", "value": "1" } ], "valueName": "avg" }, { "cacheTimeout": null, "colorBackground": true, "colorValue": false, "colors": [ "#629e51", "#629e51", "#d44a3a" ], "datasource": "$Datasource", "format": "none", "gauge": { "maxValue": 100, "minValue": 0, "show": false, "thresholdLabels": false, "thresholdMarkers": true }, "gridPos": { "h": 2, "w": 3, "x": 3, "y": 67 }, "id": 37, "interval": null, "links": [], "mappingType": 1, "mappingTypes": [ { "name": "value to text", "value": 1 }, { "name": "range to text", "value": 2 } ], "maxDataPoints": 100, "nullPointMode": "connected", "nullText": null, "postfix": "", "postfixFontSize": "50%", "prefix": "", "prefixFontSize": "50%", "rangeMaps": [ { "from": "null", "text": "N/A", "to": "null" } ], "sparkline": { "fillColor": "rgba(31, 118, 189, 0.18)", "full": false, "lineColor": "rgb(31, 120, 193)", "show": false }, "tableColumn": "paired", "targets": [ { "alias": "", "format": "table", "group": [], "hide": false, "metricColumn": "none", "rawQuery": true, "rawSql": "SELECT \n paired\nFROM BridgeInfo AS b\nWHERE b.name = \"$BridgeName\"\n;", "refId": "A", "select": [ [ { "params": [ "value" ], "type": "column" } ] ], "timeColumn": "time", "where": [ { "name": "$__timeFilter", "params": [], "type": "macro" } ] } ], "thresholds": "1,2", "title": "Pairing", "type": "singlestat", "valueFontSize": "80%", "valueMaps": [ { "op": "=", "text": "Online", "value": "1" }, { "op": "=", "text": "Offline", "value": "2" } ], "valueName": "avg" }, { "cacheTimeout": null, "colorBackground": false, "colorValue": false, "colors": [ "#299c46", "rgba(237, 129, 40, 0.89)", "#d44a3a" ], "datasource": "$Datasource", "format": "none", "gauge": { "maxValue": 100, "minValue": 0, "show": false, "thresholdLabels": false, "thresholdMarkers": true }, "gridPos": { "h": 2, "w": 3, "x": 9, "y": 67 }, "id": 34, "interval": null, "links": [], "mappingType": 1, "mappingTypes": [ { "name": "value to text", "value": 1 }, { "name": "range to text", "value": 2 } ], "maxDataPoints": 100, "nullPointMode": "connected", "nullText": null, "postfix": "", "postfixFontSize": "50%", "prefix": "", "prefixFontSize": "50%", "rangeMaps": [ { "from": "null", "text": "N/A", "to": "null" } ], "sparkline": { "fillColor": "rgba(31, 118, 189, 0.18)", "full": false, "lineColor": "rgb(31, 120, 193)", "show": false }, "tableColumn": "CASE\n WHEN b.firmwareVersion = \"\" THEN \"n.A.\"\n ELSE b.firmwareVersion\n END", "targets": [ { "alias": "", "format": "table", "group": [], "hide": false, "metricColumn": "none", "rawQuery": true, "rawSql": "SELECT \n CASE\n WHEN b.firmwareVersion = \"\" THEN \"n.A.\"\n ELSE b.firmwareVersion\n END\nFROM BridgeInfo AS b\nWHERE b.name = \"$BridgeName\"\n;", "refId": "A", "select": [ [ { "params": [ "value" ], "type": "column" } ] ], "timeColumn": "time", "where": [ { "name": "$__timeFilter", "params": [], "type": "macro" } ] } ], "thresholds": "", "title": "Firmware Version", "type": "singlestat", "valueFontSize": "80%", "valueMaps": [], "valueName": "avg" }, { "cacheTimeout": null, "colorBackground": false, "colorValue": false, "colors": [ "#299c46", "rgba(237, 129, 40, 0.89)", "#d44a3a" ], "datasource": "$Datasource", "format": "none", "gauge": { "maxValue": 100, "minValue": 0, "show": false, "thresholdLabels": false, "thresholdMarkers": true }, "gridPos": { "h": 2, "w": 3, "x": 12, "y": 67 }, "id": 35, "interval": null, "links": [], "mappingType": 1, "mappingTypes": [ { "name": "value to text", "value": 1 }, { "name": "range to text", "value": 2 } ], "maxDataPoints": 100, "nullPointMode": "connected", "nullText": null, "postfix": "", "postfixFontSize": "50%", "prefix": "", "prefixFontSize": "50%", "rangeMaps": [ { "from": "null", "text": "N/A", "to": "null" } ], "sparkline": { "fillColor": "rgba(31, 118, 189, 0.18)", "full": false, "lineColor": "rgb(31, 120, 193)", "show": false }, "tableColumn": "CASE \n WHEN b.wifiFirmwareVersion = \"\" THEN \"n.A.\"\n ELSE b.wifiFirmwareVersion\n END", "targets": [ { "alias": "", "format": "table", "group": [], "hide": false, "metricColumn": "none", "rawQuery": true, "rawSql": "SELECT \n CASE \n WHEN b.wifiFirmwareVersion = \"\" THEN \"n.A.\"\n ELSE b.wifiFirmwareVersion\n END\nFROM BridgeInfo AS b\nWHERE b.name = \"$BridgeName\"\n;", "refId": "A", "select": [ [ { "params": [ "value" ], "type": "column" } ] ], "timeColumn": "time", "where": [ { "name": "$__timeFilter", "params": [], "type": "macro" } ] } ], "thresholds": "", "title": "Wifi Firmware Version", "type": "singlestat", "valueFontSize": "80%", "valueMaps": [], "valueName": "avg" }, { "cacheTimeout": null, "colorBackground": true, "colorValue": false, "colors": [ "#e24d42", "#629e51", "#ba43a9" ], "datasource": "$Datasource", "description": "", "format": "none", "gauge": { "maxValue": 100, "minValue": 0, "show": false, "thresholdLabels": false, "thresholdMarkers": true }, "gridPos": { "h": 2, "w": 3, "x": 0, "y": 69 }, "id": 45, "interval": null, "links": [], "mappingType": 1, "mappingTypes": [ { "name": "value to text", "value": 1 }, { "name": "range to text", "value": 2 } ], "maxDataPoints": 100, "nullPointMode": "connected", "nullText": null, "postfix": "", "postfixFontSize": "50%", "prefix": "", "prefixFontSize": "50%", "rangeMaps": [ { "from": "null", "text": "N/A", "to": "null" } ], "sparkline": { "fillColor": "rgba(31, 118, 189, 0.18)", "full": false, "lineColor": "rgb(31, 120, 193)", "show": false }, "tableColumn": "batteryCritical", "targets": [ { "alias": "", "format": "table", "group": [], "hide": false, "metricColumn": "none", "rawQuery": true, "rawSql": "SELECT \n l.batteryCritical\nFROM\n BridgeInfo AS b,\n BridgeLockState AS l\nWHERE b.name = \"$BridgeName\"\n;", "refId": "A", "select": [ [ { "params": [ "value" ], "type": "column" } ] ], "timeColumn": "time", "where": [ { "name": "$__timeFilter", "params": [], "type": "macro" } ] } ], "thresholds": "0,1", "title": "Batteriestatus (Bridge)", "type": "singlestat", "valueFontSize": "80%", "valueMaps": [ { "op": "=", "text": "Okay", "value": "0" }, { "op": "=", "text": "Kritisch", "value": "1" } ], "valueName": "avg" }, { "cacheTimeout": null, "colorBackground": false, "colorValue": false, "colors": [ "#299c46", "rgba(237, 129, 40, 0.89)", "#d44a3a" ], "datasource": "$Datasource", "format": "none", "gauge": { "maxValue": 100, "minValue": 0, "show": false, "thresholdLabels": false, "thresholdMarkers": true }, "gridPos": { "h": 2, "w": 3, "x": 3, "y": 69 }, "id": 43, "interval": null, "links": [], "mappingType": 1, "mappingTypes": [ { "name": "value to text", "value": 1 }, { "name": "range to text", "value": 2 } ], "maxDataPoints": 100, "nullPointMode": "connected", "nullText": null, "postfix": "", "postfixFontSize": "50%", "prefix": "", "prefixFontSize": "50%", "rangeMaps": [ { "from": "null", "text": "N/A", "to": "null" } ], "sparkline": { "fillColor": "rgba(31, 118, 189, 0.18)", "full": false, "lineColor": "rgb(31, 120, 193)", "show": false }, "tableColumn": "serverId", "targets": [ { "alias": "", "format": "table", "group": [], "hide": false, "metricColumn": "none", "rawQuery": true, "rawSql": "SELECT \n serverId\nFROM BridgeInfo AS b\nWHERE b.name = \"$BridgeName\"\n;", "refId": "A", "select": [ [ { "params": [ "value" ], "type": "column" } ] ], "timeColumn": "time", "where": [ { "name": "$__timeFilter", "params": [], "type": "macro" } ] } ], "thresholds": "", "title": "Server Id", "type": "singlestat", "valueFontSize": "80%", "valueMaps": [], "valueName": "avg" }, { "cacheTimeout": null, "colorBackground": false, "colorValue": false, "colors": [ "#299c46", "rgba(237, 129, 40, 0.89)", "#d44a3a" ], "datasource": "$Datasource", "format": "none", "gauge": { "maxValue": 100, "minValue": 0, "show": false, "thresholdLabels": false, "thresholdMarkers": true }, "gridPos": { "h": 2, "w": 3, "x": 6, "y": 69 }, "id": 32, "interval": null, "links": [], "mappingType": 1, "mappingTypes": [ { "name": "value to text", "value": 1 }, { "name": "range to text", "value": 2 } ], "maxDataPoints": 100, "nullPointMode": "connected", "nullText": null, "postfix": "", "postfixFontSize": "50%", "prefix": "", "prefixFontSize": "50%", "rangeMaps": [ { "from": "null", "text": "N/A", "to": "null" } ], "sparkline": { "fillColor": "rgba(31, 118, 189, 0.18)", "full": false, "lineColor": "rgb(31, 120, 193)", "show": false }, "tableColumn": "bridgeType", "targets": [ { "alias": "", "format": "table", "group": [], "hide": false, "metricColumn": "none", "rawQuery": true, "rawSql": "SELECT \n bridgeType\nFROM BridgeInfo AS b\nWHERE b.name = \"$BridgeName\"\n;", "refId": "A", "select": [ [ { "params": [ "value" ], "type": "column" } ] ], "timeColumn": "time", "where": [ { "name": "$__timeFilter", "params": [], "type": "macro" } ] } ], "thresholds": "", "title": "Typ", "type": "singlestat", "valueFontSize": "50%", "valueMaps": [ { "op": "=", "text": "Hardware Bridge", "value": "1" }, { "op": "=", "text": "Software Bridge", "value": "2" } ], "valueName": "avg" }, { "cacheTimeout": null, "colorBackground": false, "colorValue": false, "colors": [ "#299c46", "rgba(237, 129, 40, 0.89)", "#d44a3a" ], "datasource": "$Datasource", "format": "none", "gauge": { "maxValue": 100, "minValue": 0, "show": false, "thresholdLabels": false, "thresholdMarkers": true }, "gridPos": { "h": 2, "w": 3, "x": 9, "y": 69 }, "id": 36, "interval": null, "links": [], "mappingType": 1, "mappingTypes": [ { "name": "value to text", "value": 1 }, { "name": "range to text", "value": 2 } ], "maxDataPoints": 100, "nullPointMode": "connected", "nullText": null, "postfix": "", "postfixFontSize": "50%", "prefix": "", "prefixFontSize": "50%", "rangeMaps": [ { "from": "null", "text": "N/A", "to": "null" } ], "sparkline": { "fillColor": "rgba(31, 118, 189, 0.18)", "full": false, "lineColor": "rgb(31, 120, 193)", "show": false }, "tableColumn": "CASE\n WHEN b.hardwareId = \"\" THEN \"n.A.\"\n ELSE b.hardwareId\n END", "targets": [ { "alias": "", "format": "table", "group": [], "hide": false, "metricColumn": "none", "rawQuery": true, "rawSql": "SELECT\n CASE\n WHEN b.hardwareId = \"\" THEN \"n.A.\"\n ELSE b.hardwareId\n END\nFROM BridgeInfo AS b\nWHERE b.name = \"$BridgeName\"\n;", "refId": "A", "select": [ [ { "params": [ "value" ], "type": "column" } ] ], "timeColumn": "time", "where": [ { "name": "$__timeFilter", "params": [], "type": "macro" } ] } ], "thresholds": "", "title": "Hardware Id", "type": "singlestat", "valueFontSize": "80%", "valueMaps": [], "valueName": "avg" }, { "cacheTimeout": null, "colorBackground": false, "colorValue": false, "colors": [ "#299c46", "rgba(237, 129, 40, 0.89)", "#d44a3a" ], "datasource": "$Datasource", "description": "Verfügbar im Falle des Typs \"Software Bridge\"\nhttps://play.google.com/store/apps/details?id=io.nuki.bridge&hl=de", "format": "none", "gauge": { "maxValue": 100, "minValue": 0, "show": false, "thresholdLabels": false, "thresholdMarkers": true }, "gridPos": { "h": 2, "w": 3, "x": 12, "y": 69 }, "id": 47, "interval": null, "links": [], "mappingType": 1, "mappingTypes": [ { "name": "value to text", "value": 1 }, { "name": "range to text", "value": 2 } ], "maxDataPoints": 100, "nullPointMode": "connected", "nullText": null, "postfix": "", "postfixFontSize": "50%", "prefix": "", "prefixFontSize": "50%", "rangeMaps": [ { "from": "null", "text": "N/A", "to": "null" } ], "sparkline": { "fillColor": "rgba(31, 118, 189, 0.18)", "full": false, "lineColor": "rgb(31, 120, 193)", "show": false }, "tableColumn": "CASE\n WHEN b.appVersion = \"\" THEN \"n.A.\"\n ELSE b.appVersion\n END", "targets": [ { "alias": "", "format": "table", "group": [], "hide": false, "metricColumn": "none", "rawQuery": true, "rawSql": "SELECT \n CASE\n WHEN b.appVersion = \"\" THEN \"n.A.\"\n ELSE b.appVersion\n END\nFROM BridgeInfo AS b\nWHERE b.name = \"$BridgeName\"\n;", "refId": "A", "select": [ [ { "params": [ "value" ], "type": "column" } ] ], "timeColumn": "time", "where": [ { "name": "$__timeFilter", "params": [], "type": "macro" } ] } ], "thresholds": "", "title": "App Version", "type": "singlestat", "valueFontSize": "80%", "valueMaps": [], "valueName": "avg" }, { "columns": [], "datasource": "$Datasource", "fontSize": "100%", "gridPos": { "h": 19, "w": 24, "x": 0, "y": 71 }, "id": 30, "links": [], "pageSize": 20, "scroll": true, "showHeader": true, "sort": { "col": 0, "desc": false }, "styles": [ { "alias": "", "colorMode": null, "colors": [ "rgba(245, 54, 54, 0.9)", "rgba(237, 129, 40, 0.89)", "rgba(50, 172, 45, 0.97)" ], "dateFormat": "YYYY-MM-DD HH:mm:ss", "decimals": 0, "mappingType": 1, "pattern": "Nr.", "thresholds": [], "type": "number", "unit": "short" } ], "targets": [ { "alias": "", "format": "table", "group": [], "hide": false, "metricColumn": "none", "rawQuery": true, "rawSql": "SELECT \n @row_number:=@row_number + 1 AS \"Nr.\",\n DATE_FORMAT(ADDTIME(l.timestamp, SEC_TO_TIME(s.timezoneOffset*60)),'%d.%m.%Y %H:%i:%s') AS \"Zeitstempel\",\n l.nukiId AS \"Bridge Id\",\n l.cmdId AS \"Command Id\",\n l.connection AS \"Connection\",\n l.macAddr AS \"MAC Adresse\",\n l.type AS \"Typ\"\nFROM\n (SELECT @row_number:=0) AS t,\n BridgeInfo AS b,\n BridgeLog AS l,\n Smartlock AS s\nWHERE b.name = \"$BridgeName\"\n;\n", "refId": "A", "select": [ [ { "params": [ "value" ], "type": "column" } ] ], "timeColumn": "time", "where": [ { "name": "$__timeFilter", "params": [], "type": "macro" } ] } ], "title": "Bridge Log", "transform": "table", "type": "table" } ], "refresh": "30s", "schemaVersion": 16, "style": "dark", "tags": [], "templating": { "list": [ { "current": { "text": "nuki", "value": "nuki" }, "hide": 0, "label": "MySQL/MariaDB", "name": "Datasource", "options": [], "query": "mysql", "refresh": 1, "regex": ".*nuki.*", "skipUrlSync": false, "type": "datasource" }, { "allValue": null, "current": {}, "datasource": "$Datasource", "definition": "", "hide": 0, "includeAll": false, "label": "Smartlock Name", "multi": false, "name": "SmartlockName", "options": [], "query": "SELECT name FROM Smartlock;", "refresh": 1, "regex": "", "skipUrlSync": false, "sort": 4, "tagValuesQuery": "", "tags": [], "tagsQuery": "", "type": "query", "useTags": false }, { "allValue": null, "current": {}, "datasource": "$Datasource", "definition": "", "hide": 0, "includeAll": false, "label": "Smartlock Id", "multi": false, "name": "SmartlockId", "options": [], "query": "SELECT SmartlockId FROM Smartlock AS s WHERE s.name = \"$SmartlockName\";", "refresh": 1, "regex": "", "skipUrlSync": false, "sort": 0, "tagValuesQuery": "", "tags": [], "tagsQuery": "", "type": "query", "useTags": false }, { "allValue": null, "current": {}, "datasource": "$Datasource", "definition": "", "hide": 0, "includeAll": false, "label": "Bridge Name", "multi": false, "name": "BridgeName", "options": [], "query": "SELECT name FROM BridgeInfo AS b WHERE b.nukiId = \"$SmartlockId\";", "refresh": 1, "regex": "", "skipUrlSync": false, "sort": 0, "tagValuesQuery": "", "tags": [], "tagsQuery": "", "type": "query", "useTags": false }, { "allValue": null, "current": {}, "datasource": "$Datasource", "definition": "", "hide": 0, "includeAll": false, "label": "Bridge Id", "multi": false, "name": "BridgeId", "options": [], "query": "SELECT SUBSTRING(\"$BridgeName\",6) FROM BridgeInfo;", "refresh": 1, "regex": "", "skipUrlSync": false, "sort": 0, "tagValuesQuery": "", "tags": [], "tagsQuery": "", "type": "query", "useTags": false } ] }, "time": { "from": "now-60d", "to": "now" }, "timepicker": { "hidden": false, "refresh_intervals": [ "5s", "10s", "30s", "1m", "5m", "15m", "30m", "1h", "2h", "1d" ], "time_options": [ "5m", "15m", "1h", "6h", "12h", "24h", "2d", "7d", "30d" ] }, "timezone": "", "title": "Nuki Smartlock + Bridge (Internals)", "uid": "yEqqGFggz", "version": 179 }