Nukiana/Grafana/Nuki Smartlock + Bridge (In...

7552 lines
179 KiB
JSON

{
"__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
}