"rawSql":"SELECT \n COUNT(*) \nFROM \n SmartlockLog AS n,\n Smartlock AS s\nWHERE s.name = \"$SmartlockName\"\n;",
"refId":"A"
}
],
"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",
"hide":false,
"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"
}
],
"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",
"hide":false,
"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"
}
],
"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",
"hide":false,
"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"
}
],
"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",
"hide":false,
"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"
}
],
"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",
"rawSql":"/*It's unclear until now what this means*/\nSELECT \n s.mode\nFROM Smartlock AS s\nWHERE s.name = \"$SmartlockName\"\n;",
"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;",
"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"
}
],
"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",
"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"
}
],
"thresholds":[],
"timeFrom":"60d",
"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",
"hide":false,
"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"
}
],
"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",
"rawSql":"SELECT \n s.detachedCylinder\nFROM Smartlock AS s\nWHERE s.name = \"$SmartlockName\"\n;",
"refId":"A"
}
],
"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",
"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"
}
],
"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",
"rawSql":"SELECT \n s.singleLock \nFROM Smartlock AS s\nWHERE s.name = \"$SmartlockName\"\n;",
"rawSql":"SELECT \n s.fobPaired \nFROM Smartlock AS s\nWHERE s.name = \"$SmartlockName\"\n;",
"refId":"A"
}
],
"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",
"hide":false,
"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"
}
],
"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",
"rawSql":"SELECT \n s.favorite \nFROM Smartlock AS s\nWHERE s.name = \"$SmartlockName\"\n;",
"refId":"A"
}
],
"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",
"rawSql":"SELECT \n s.advertisingMode \nFROM Smartlock AS s\nWHERE s.name = \"$SmartlockName\"\n;",
"refId":"A"
}
],
"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",
"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;",
"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;",
"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",
"rawSql":"SELECT \n s.ledEnabled \nFROM Smartlock AS s\nWHERE s.name = \"$SmartlockName\"\n;",
"refId":"A"
}
],
"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",
"rawSql":"SELECT \n s.batteryType \nFROM Smartlock AS s\nWHERE s.name = \"$SmartlockName\"\n;",
"refId":"A"
}
],
"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",
"rawSql":"SELECT \n s.lngTimeout\nFROM Smartlock AS s\nWHERE s.name = \"$SmartlockName\"\n;",
"refId":"A"
}
],
"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",
"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;",
"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;",
"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;",
"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;",
"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 != \"\" 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;",
"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;",
"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"
}
],
"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",
"hide":false,
"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"
}
],
"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",
"hide":false,
"rawSql":"SELECT \n l.success\nFROM\n BridgeInfo AS b,\n BridgeLockState AS l\nWHERE b.name = \"$BridgeName\"\n;",
"refId":"A"
}
],
"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",
"hide":false,
"rawSql":"SELECT \n paired\nFROM BridgeInfo AS b\nWHERE b.name = \"$BridgeName\"\n;",
"refId":"A"
}
],
"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",
"hide":false,
"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"
}
],
"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",
"hide":false,
"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"
}
],
"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",
"hide":false,
"rawSql":"SELECT \n l.batteryCritical\nFROM\n BridgeInfo AS b,\n BridgeLockState AS l\nWHERE b.name = \"$BridgeName\"\n;",
"refId":"A"
}
],
"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",
"hide":false,
"rawSql":"SELECT \n serverId\nFROM BridgeInfo AS b\nWHERE b.name = \"$BridgeName\"\n;",
"refId":"A"
}
],
"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",
"hide":false,
"rawSql":"SELECT \n bridgeType\nFROM BridgeInfo AS b\nWHERE b.name = \"$BridgeName\"\n;",
"refId":"A"
}
],
"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",
"hide":false,
"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"
}
],
"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",
"hide":false,
"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"
}
],
"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",
"hide":false,
"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",