commit decb17d54502f1b264eb41a9fddb597eae7a0b1c
parent d5f3e8492dc5fadb2559f907c2b2fb00c692dee5
Author: Leah (ctucx) <git@ctu.cx>
Date: Wed, 14 Dec 2022 10:59:39 +0100
parent d5f3e8492dc5fadb2559f907c2b2fb00c692dee5
Author: Leah (ctucx) <git@ctu.cx>
Date: Wed, 14 Dec 2022 10:59:39 +0100
machines/trabbi/grafana: update dashboard
4 files changed, 288 insertions(+), 730 deletions(-)
M
|
798
++++++++++++++++++-------------------------------------------------------------
M
|
181
++++++++++++++++++++++++++++++++++++++++---------------------------------------
diff --git a/flake.lock b/flake.lock @@ -360,7 +360,7 @@ "local-secrets": { "locked": { "lastModified": 0, - "narHash": "sha256-n4YQlbRjltid1vgovueppFYRRnuWkAgE50Iyf8R0ySA=", + "narHash": "sha256-XK2UpQxrxZtsRkdngah8ugkKzptRPbOlDdi3y83iJTY=", "type": "git", "url": "file:///tmp/nix-secrets" }, @@ -403,10 +403,10 @@ ] }, "locked": { - "lastModified": 1670953149, - "narHash": "sha256-VADBy42h3jxcrlMtwaNIf3Xo1B/gnOt3pj0hRde65Lo=", + "lastModified": 1671011305, + "narHash": "sha256-ZeZNVoblnfWDhoULjWxndjKEjP85Q8NNh/IWoiSUeJ4=", "ref": "master", - "rev": "06253735ad68b6133a4fbcac5a2b847aae1a7b5a", + "rev": "ad9343f711898047e6df6a82f7e0993895b6dd37", "revCount": 18, "type": "git", "url": "https://git.ctu.cx/mqtt-webui"
diff --git a/machines/trabbi/grafana/dashboards/SmartHome.json b/machines/trabbi/grafana/dashboards/SmartHome.json @@ -30,7 +30,7 @@ { "datasource": { "type": "influxdb", - "uid": "PA0E6B47E27FEC54C" + "uid": "PE2A2C1E083866E29" }, "fieldConfig": { "defaults": { @@ -79,30 +79,15 @@ "showThresholdMarkers": true, "text": {} }, - "pluginVersion": "8.5.11", + "pluginVersion": "9.2.5", "targets": [ { - "alias": "L. Zimmer", - "groupBy": [], - "measurement": "lacrosse-l1", - "orderByTime": "ASC", - "policy": "autogen", - "query": "SELECT mean(\"value\") FROM \"sensors\".\"measurement\" WHERE $timeFilter GROUP BY time($__interval) fill(null)", - "queryType": "randomWalk", - "rawQuery": false, - "refId": "A", - "resultFormat": "time_series", - "select": [ - [ - { - "params": [ - "temperature" - ], - "type": "field" - } - ] - ], - "tags": [] + "datasource": { + "type": "influxdb", + "uid": "PE2A2C1E083866E29" + }, + "query": "from(bucket: \"mqttData\")\n |> range(start: v.timeRangeStart, stop:v.timeRangeStop)\n |> filter(fn: (r) => (r._measurement == \"mqtt_consumer\" and r._field == \"temperature\" and r.topic == \"lacrosse2mqtt/5\"))\n |> last()\n |> yield()", + "refId": "A" } ], "title": "Bad", @@ -112,7 +97,7 @@ { "datasource": { "type": "influxdb", - "uid": "PAA5748F9FC9E31B1" + "uid": "PE2A2C1E083866E29" }, "description": "", "fieldConfig": { @@ -153,6 +138,7 @@ "y": 0 }, "id": 4, + "maxDataPoints": 10, "options": { "orientation": "auto", "reduceOptions": { @@ -166,31 +152,15 @@ "showThresholdMarkers": true, "text": {} }, - "pluginVersion": "8.5.11", + "pluginVersion": "9.2.5", "targets": [ { - "alias": "L. Zimmer", - "groupBy": [], - "measurement": "modbus-50", - "orderByTime": "ASC", - "policy": "default", - "refId": "B", - "resultFormat": "time_series", - "select": [ - [ - { - "params": [ - "voltage" - ], - "type": "field" - }, - { - "params": [], - "type": "last" - } - ] - ], - "tags": [] + "datasource": { + "type": "influxdb", + "uid": "PE2A2C1E083866E29" + }, + "query": "from(bucket: \"mqttData\")\n |> range(start: v.timeRangeStart, stop:v.timeRangeStop)\n |> filter(fn: (r) => (r._measurement == \"mqtt_consumer\" and r._field == \"voltage\"))\n |> last()\n |> yield()", + "refId": "A" } ], "title": "Voltage", @@ -200,7 +170,7 @@ { "datasource": { "type": "influxdb", - "uid": "PAA5748F9FC9E31B1" + "uid": "PE2A2C1E083866E29" }, "fieldConfig": { "defaults": { @@ -245,121 +215,25 @@ "showThresholdMarkers": true, "text": {} }, - "pluginVersion": "8.5.11", + "pluginVersion": "9.2.5", "targets": [ { - "alias": "L. Zimmer", - "groupBy": [], - "measurement": "modbus-50", - "orderByTime": "ASC", - "policy": "default", - "queryType": "randomWalk", - "refId": "B", - "resultFormat": "time_series", - "select": [ - [ - { - "params": [ - "frequency" - ], - "type": "field" - }, - { - "params": [], - "type": "last" - } - ] - ], - "tags": [] - } - ], - "title": "Frequency", - "transparent": true, - "type": "gauge" - }, - { - "datasource": { - "type": "influxdb", - "uid": "PAA5748F9FC9E31B1" - }, - "fieldConfig": { - "defaults": { - "decimals": 2, - "mappings": [], - "max": 16, - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "green", - "value": null - }, - { - "color": "red", - "value": 10 - } - ] + "datasource": { + "type": "influxdb", + "uid": "PE2A2C1E083866E29" }, - "unit": "amp" - }, - "overrides": [] - }, - "gridPos": { - "h": 6, - "w": 3, - "x": 9, - "y": 0 - }, - "id": 8, - "options": { - "orientation": "auto", - "reduceOptions": { - "calcs": [ - "lastNotNull" - ], - "fields": "", - "values": false - }, - "showThresholdLabels": false, - "showThresholdMarkers": true, - "text": {} - }, - "pluginVersion": "8.5.11", - "targets": [ - { - "alias": "L. Zimmer", - "groupBy": [], - "measurement": "modbus-50", - "orderByTime": "ASC", - "policy": "default", - "queryType": "randomWalk", - "refId": "B", - "resultFormat": "time_series", - "select": [ - [ - { - "params": [ - "current" - ], - "type": "field" - }, - { - "params": [], - "type": "last" - } - ] - ], - "tags": [] + "query": "from(bucket: \"mqttData\")\n |> range(start: v.timeRangeStart, stop:v.timeRangeStop)\n |> filter(fn: (r) => (r._measurement == \"mqtt_consumer\" and r._field == \"frequency\"))\n |> last()\n |> yield()", + "refId": "A" } ], - "title": "Current", + "title": "Frequency", "transparent": true, "type": "gauge" }, { "datasource": { "type": "influxdb", - "uid": "PAA5748F9FC9E31B1" + "uid": "PE2A2C1E083866E29" }, "fieldConfig": { "defaults": { @@ -404,31 +278,15 @@ "showThresholdMarkers": true, "text": {} }, - "pluginVersion": "8.5.11", + "pluginVersion": "9.2.5", "targets": [ { - "alias": "L. Zimmer", - "groupBy": [], - "measurement": "modbus-50", - "orderByTime": "ASC", - "policy": "default", - "refId": "B", - "resultFormat": "time_series", - "select": [ - [ - { - "params": [ - "cosphi" - ], - "type": "field" - }, - { - "params": [], - "type": "last" - } - ] - ], - "tags": [] + "datasource": { + "type": "influxdb", + "uid": "PE2A2C1E083866E29" + }, + "query": "from(bucket: \"mqttData\")\n |> range(start: v.timeRangeStart, stop:v.timeRangeStop)\n |> filter(fn: (r) => (r._measurement == \"mqtt_consumer\" and r._field == \"cosphi\"))\n |> last()\n |> yield()", + "refId": "A" } ], "title": "Power Factor", @@ -438,7 +296,7 @@ { "datasource": { "type": "influxdb", - "uid": "PAA5748F9FC9E31B1" + "uid": "PE2A2C1E083866E29" }, "fieldConfig": { "defaults": { @@ -487,32 +345,15 @@ "showThresholdMarkers": true, "text": {} }, - "pluginVersion": "8.5.11", + "pluginVersion": "9.2.5", "targets": [ { - "alias": "L. Zimmer", - "groupBy": [], - "measurement": "modbus-50", - "orderByTime": "ASC", - "policy": "default", - "queryType": "randomWalk", - "refId": "B", - "resultFormat": "time_series", - "select": [ - [ - { - "params": [ - "power" - ], - "type": "field" - }, - { - "params": [], - "type": "last" - } - ] - ], - "tags": [] + "datasource": { + "type": "influxdb", + "uid": "PE2A2C1E083866E29" + }, + "query": "from(bucket: \"mqttData\")\n |> range(start: v.timeRangeStart, stop:v.timeRangeStop)\n |> filter(fn: (r) => (r._measurement == \"mqtt_consumer\" and r._field == \"power\"))\n |> last()\n |> yield()\n", + "refId": "A" } ], "title": "Power", @@ -522,7 +363,7 @@ { "datasource": { "type": "influxdb", - "uid": "PAA5748F9FC9E31B1" + "uid": "PE2A2C1E083866E29" }, "fieldConfig": { "defaults": { @@ -561,44 +402,28 @@ "values": false }, "text": {}, - "textMode": "value_and_name" + "textMode": "value" }, - "pluginVersion": "8.5.11", + "pluginVersion": "9.2.5", "targets": [ { - "alias": "L. Zimmer", - "groupBy": [], - "measurement": "modbus-50", - "orderByTime": "ASC", - "policy": "default", - "queryType": "randomWalk", - "refId": "B", - "resultFormat": "time_series", - "select": [ - [ - { - "params": [ - "import" - ], - "type": "field" - }, - { - "params": [], - "type": "last" - } - ] - ], - "tags": [] + "datasource": { + "type": "influxdb", + "uid": "PE2A2C1E083866E29" + }, + "query": "from(bucket: \"mqttData\")\n |> range(start: v.timeRangeStart, stop:v.timeRangeStop)\n |> filter(fn: (r) => (r._measurement == \"mqtt_consumer\" and r._field == \"import\"))\n |> last()\n |> yield()", + "refId": "A" } ], "title": "Imported", + "transformations": [], "transparent": true, "type": "stat" }, { "datasource": { "type": "influxdb", - "uid": "PA0E6B47E27FEC54C" + "uid": "PE2A2C1E083866E29" }, "fieldConfig": { "defaults": { @@ -647,34 +472,15 @@ "showThresholdMarkers": true, "text": {} }, - "pluginVersion": "8.5.11", + "pluginVersion": "9.2.5", "targets": [ { - "alias": "", - "groupBy": [], - "measurement": "lacrosse-kuehlschrank", - "orderByTime": "ASC", - "policy": "autogen", - "query": "SELECT mean(\"value\") FROM \"sensors\".\"measurement\" WHERE $timeFilter GROUP BY time($__interval) fill(null)", - "queryType": "randomWalk", - "rawQuery": false, - "refId": "A", - "resultFormat": "time_series", - "select": [ - [ - { - "params": [ - "temperature" - ], - "type": "field" - }, - { - "params": [], - "type": "last" - } - ] - ], - "tags": [] + "datasource": { + "type": "influxdb", + "uid": "PE2A2C1E083866E29" + }, + "query": "from(bucket: \"mqttData\")\n |> range(start: v.timeRangeStart, stop:v.timeRangeStop)\n |> filter(fn: (r) => (r._measurement == \"mqtt_consumer\" and r._field == \"temperature\" and r.topic == \"lacrosse2mqtt/33\"))\n |> last()\n |> yield()", + "refId": "A" } ], "title": "Kühlschrank", @@ -684,7 +490,7 @@ { "datasource": { "type": "influxdb", - "uid": "PAA5748F9FC9E31B1" + "uid": "PE2A2C1E083866E29" }, "description": "", "fieldConfig": { @@ -693,6 +499,8 @@ "mode": "palette-classic" }, "custom": { + "axisCenteredZero": false, + "axisColorMode": "text", "axisLabel": "", "axisPlacement": "auto", "barAlignment": 0, @@ -749,7 +557,8 @@ "legend": { "calcs": [], "displayMode": "list", - "placement": "bottom" + "placement": "bottom", + "showLegend": true }, "tooltip": { "mode": "multi", @@ -759,43 +568,12 @@ "pluginVersion": "8.5.11", "targets": [ { - "alias": "L. Zimmer", - "groupBy": [ - { - "params": [ - "$__interval" - ], - "type": "time" - }, - { - "params": [ - "linear" - ], - "type": "fill" - } - ], - "measurement": "modbus-50", - "orderByTime": "ASC", - "policy": "default", - "query": "SELECT mean(\"value\") FROM \"modbus-50\" WHERE $timeFilter GROUP BY time($__interval) fill(null)", - "rawQuery": false, - "refId": "B", - "resultFormat": "time_series", - "select": [ - [ - { - "params": [ - "power" - ], - "type": "field" - }, - { - "params": [], - "type": "mean" - } - ] - ], - "tags": [] + "datasource": { + "type": "influxdb", + "uid": "PE2A2C1E083866E29" + }, + "query": "from(bucket: \"mqttData\")\n |> range(start: v.timeRangeStart, stop:v.timeRangeStop)\n |> filter(fn: (r) => (r._measurement == \"mqtt_consumer\" and r._field == \"power\"))\n |> yield()", + "refId": "A" } ], "title": "Power Consumption", @@ -805,7 +583,7 @@ { "datasource": { "type": "influxdb", - "uid": "PAA5748F9FC9E31B1" + "uid": "PE2A2C1E083866E29" }, "fieldConfig": { "defaults": { @@ -813,6 +591,8 @@ "mode": "palette-classic" }, "custom": { + "axisCenteredZero": false, + "axisColorMode": "text", "axisLabel": "", "axisPlacement": "auto", "barAlignment": 0, @@ -869,7 +649,8 @@ "legend": { "calcs": [], "displayMode": "list", - "placement": "bottom" + "placement": "bottom", + "showLegend": true }, "tooltip": { "mode": "multi", @@ -879,41 +660,12 @@ "pluginVersion": "8.5.11", "targets": [ { - "alias": "L. Zimmer", - "groupBy": [ - { - "params": [ - "$__interval" - ], - "type": "time" - }, - { - "params": [ - "linear" - ], - "type": "fill" - } - ], - "measurement": "modbus-50", - "orderByTime": "ASC", - "policy": "default", - "refId": "B", - "resultFormat": "time_series", - "select": [ - [ - { - "params": [ - "voltage" - ], - "type": "field" - }, - { - "params": [], - "type": "mean" - } - ] - ], - "tags": [] + "datasource": { + "type": "influxdb", + "uid": "PE2A2C1E083866E29" + }, + "query": "from(bucket: \"mqttData\")\n |> range(start: v.timeRangeStart, stop:v.timeRangeStop)\n |> filter(fn: (r) => (r._measurement == \"mqtt_consumer\" and r._field == \"voltage\"))\n |> yield()", + "refId": "A" } ], "title": "Voltage", @@ -923,7 +675,7 @@ { "datasource": { "type": "influxdb", - "uid": "PA0E6B47E27FEC54C" + "uid": "PE2A2C1E083866E29" }, "fieldConfig": { "defaults": { @@ -931,6 +683,8 @@ "mode": "palette-classic" }, "custom": { + "axisCenteredZero": false, + "axisColorMode": "text", "axisLabel": "", "axisPlacement": "auto", "barAlignment": 0, @@ -974,7 +728,56 @@ }, "unit": "celsius" }, - "overrides": [] + "overrides": [ + { + "matcher": { + "id": "byName", + "options": "temperature {host=\"lollo\", topic=\"lacrosse2mqtt/33\"}" + }, + "properties": [ + { + "id": "displayName", + "value": "Kühlschrank" + } + ] + }, + { + "matcher": { + "id": "byName", + "options": "temperature {host=\"lollo\", topic=\"lacrosse2mqtt/5\"}" + }, + "properties": [ + { + "id": "displayName", + "value": "Bad" + } + ] + }, + { + "matcher": { + "id": "byName", + "options": "temperature {host=\"lollo\", topic=\"lacrosse2mqtt/3a\"}" + }, + "properties": [ + { + "id": "displayName", + "value": "Leah" + } + ] + }, + { + "matcher": { + "id": "byName", + "options": "temperature {host=\"lollo\", topic=\"lacrosse2mqtt/3c\"}" + }, + "properties": [ + { + "id": "displayName", + "value": "Isa" + } + ] + } + ] }, "gridPos": { "h": 8, @@ -987,7 +790,8 @@ "legend": { "calcs": [], "displayMode": "list", - "placement": "bottom" + "placement": "bottom", + "showLegend": true }, "tooltip": { "mode": "multi", @@ -997,205 +801,12 @@ "pluginVersion": "8.5.11", "targets": [ { - "alias": "Bad", - "groupBy": [ - { - "params": [ - "$__interval" - ], - "type": "time" - }, - { - "params": [ - "linear" - ], - "type": "fill" - } - ], - "measurement": "lacrosse-bad", - "orderByTime": "ASC", - "policy": "default", - "query": "SELECT mean(\"value\") FROM \"measurement\" WHERE $timeFilter GROUP BY time($__interval) fill(null)", - "queryType": "randomWalk", - "rawQuery": false, - "refId": "A", - "resultFormat": "time_series", - "select": [ - [ - { - "params": [ - "temperature" - ], - "type": "field" - }, - { - "params": [], - "type": "mean" - } - ] - ], - "tags": [] - }, - { - "alias": "Draußen", - "groupBy": [ - { - "params": [ - "$__interval" - ], - "type": "time" - }, - { - "params": [ - "linear" - ], - "type": "fill" - } - ], - "measurement": "lacrosse-draussen", - "orderByTime": "ASC", - "policy": "default", - "query": "SELECT mean(\"value\") FROM \"measurement\" WHERE $timeFilter GROUP BY time($__interval) fill(null)", - "queryType": "randomWalk", - "rawQuery": false, - "refId": "B", - "resultFormat": "time_series", - "select": [ - [ - { - "params": [ - "temperature" - ], - "type": "field" - }, - { - "params": [], - "type": "mean" - } - ] - ], - "tags": [] - }, - { - "alias": "Kühlschrank", - "groupBy": [ - { - "params": [ - "$__interval" - ], - "type": "time" - }, - { - "params": [ - "linear" - ], - "type": "fill" - } - ], - "measurement": "lacrosse-kuehlschrank", - "orderByTime": "ASC", - "policy": "default", - "query": "SELECT mean(\"temperature\") FROM \"lacrosse-kuehlschrank\" WHERE $timeFilter GROUP BY time($__interval) fill(linear)", - "queryType": "randomWalk", - "rawQuery": false, - "refId": "C", - "resultFormat": "time_series", - "select": [ - [ - { - "params": [ - "temperature" - ], - "type": "field" - }, - { - "params": [], - "type": "mean" - } - ] - ], - "tags": [] - }, - { - "alias": "Zimmer1", - "groupBy": [ - { - "params": [ - "$__interval" - ], - "type": "time" - }, - { - "params": [ - "linear" - ], - "type": "fill" - } - ], - "measurement": "lacrosse-l1", - "orderByTime": "ASC", - "policy": "default", - "query": "SELECT mean(\"temperature\") FROM \"lacrosse-kuehlschrank\" WHERE $timeFilter GROUP BY time($__interval) fill(linear)", - "queryType": "randomWalk", - "rawQuery": false, - "refId": "D", - "resultFormat": "time_series", - "select": [ - [ - { - "params": [ - "temperature" - ], - "type": "field" - }, - { - "params": [], - "type": "mean" - } - ] - ], - "tags": [] - }, - { - "alias": "Zimmer2", - "groupBy": [ - { - "params": [ - "$__interval" - ], - "type": "time" - }, - { - "params": [ - "linear" - ], - "type": "fill" - } - ], - "hide": false, - "measurement": "lacrosse-l2", - "orderByTime": "ASC", - "policy": "default", - "query": "SELECT mean(\"temperature\") FROM \"lacrosse-kuehlschrank\" WHERE $timeFilter GROUP BY time($__interval) fill(linear)", - "queryType": "randomWalk", - "rawQuery": false, - "refId": "E", - "resultFormat": "time_series", - "select": [ - [ - { - "params": [ - "temperature" - ], - "type": "field" - }, - { - "params": [], - "type": "mean" - } - ] - ], - "tags": [] + "datasource": { + "type": "influxdb", + "uid": "PE2A2C1E083866E29" + }, + "query": "from(bucket: \"mqttData\")\n |> range(start: v.timeRangeStart, stop:v.timeRangeStop)\n |> filter(fn: (r) => (r._measurement == \"mqtt_consumer\" and r._field == \"temperature\"))\n |> yield()", + "refId": "A" } ], "title": "Temperature", @@ -1205,7 +816,7 @@ { "datasource": { "type": "influxdb", - "uid": "PA0E6B47E27FEC54C" + "uid": "PE2A2C1E083866E29" }, "fieldConfig": { "defaults": { @@ -1213,6 +824,8 @@ "mode": "palette-classic" }, "custom": { + "axisCenteredZero": false, + "axisColorMode": "text", "axisLabel": "", "axisPlacement": "auto", "barAlignment": 0, @@ -1256,7 +869,32 @@ }, "unit": "humidity" }, - "overrides": [] + "overrides": [ + { + "matcher": { + "id": "byName", + "options": "humidity {host=\"lollo\", topic=\"lacrosse2mqtt/3c\"}" + }, + "properties": [ + { + "id": "displayName", + "value": "Isa" + } + ] + }, + { + "matcher": { + "id": "byName", + "options": "humidity {host=\"lollo\", topic=\"lacrosse2mqtt/5\"}" + }, + "properties": [ + { + "id": "displayName", + "value": "Bad" + } + ] + } + ] }, "gridPos": { "h": 8, @@ -1269,7 +907,8 @@ "legend": { "calcs": [], "displayMode": "list", - "placement": "bottom" + "placement": "bottom", + "showLegend": true }, "tooltip": { "mode": "multi", @@ -1279,85 +918,12 @@ "pluginVersion": "8.5.11", "targets": [ { - "alias": "Bad", - "groupBy": [ - { - "params": [ - "$__interval" - ], - "type": "time" - }, - { - "params": [ - "linear" - ], - "type": "fill" - } - ], - "measurement": "lacrosse-bad", - "orderByTime": "ASC", - "policy": "default", - "query": "SELECT mean(\"value\") FROM \"measurement\" WHERE $timeFilter GROUP BY time($__interval) fill(null)", - "queryType": "randomWalk", - "rawQuery": false, - "refId": "A", - "resultFormat": "time_series", - "select": [ - [ - { - "params": [ - "humidity" - ], - "type": "field" - }, - { - "params": [], - "type": "mean" - } - ] - ], - "tags": [] - }, - { - "alias": "L. Zimmer", - "groupBy": [ - { - "params": [ - "$__interval" - ], - "type": "time" - }, - { - "params": [ - "linear" - ], - "type": "fill" - } - ], - "hide": false, - "measurement": "lacrosse-l1", - "orderByTime": "ASC", - "policy": "default", - "query": "SELECT mean(\"temperature\") FROM \"lacrosse-kuehlschrank\" WHERE $timeFilter GROUP BY time($__interval) fill(linear)", - "queryType": "randomWalk", - "rawQuery": false, - "refId": "C", - "resultFormat": "time_series", - "select": [ - [ - { - "params": [ - "humidity" - ], - "type": "field" - }, - { - "params": [], - "type": "mean" - } - ] - ], - "tags": [] + "datasource": { + "type": "influxdb", + "uid": "PE2A2C1E083866E29" + }, + "query": "from(bucket: \"mqttData\")\n |> range(start: v.timeRangeStart, stop:v.timeRangeStop)\n |> filter(fn: (r) => (r._measurement == \"mqtt_consumer\" and r._field == \"humidity\"))\n |> yield()", + "refId": "A" } ], "title": "Humidity", @@ -1366,14 +932,14 @@ } ], "refresh": "5s", - "schemaVersion": 36, + "schemaVersion": 37, "style": "dark", "tags": [], "templating": { "list": [] }, "time": { - "from": "now-12h", + "from": "now-30m", "to": "now" }, "timepicker": { @@ -1393,6 +959,6 @@ "timezone": "", "title": "SmartHome (Influx)", "uid": "FRDYqjEGz", - "version": 3, + "version": 1, "weekStart": "" } \ No newline at end of file
diff --git a/machines/trabbi/grafana/default.nix b/machines/trabbi/grafana/default.nix @@ -32,29 +32,18 @@ } { - name = "InfluxDB (Powermeters)"; - type = "influxdb"; - url = "https://influx.home.ctu.cx"; - orgId = 1; - database = "powermeters"; - editable = false; - jsonData.httpMode = "GET"; - jsonData.httpHeaderName1 = "Authorization"; - secureJsonData.httpHeaderValue1 = "Token ${inputs.local-secrets.hosts.lollo.smartied.influxToken}"; + name = "InfluxDB (mqttData)"; + type = "influxdb"; + url = "https://influx.home.ctu.cx"; + orgId = 1; + database = "mqttData"; + editable = false; + jsonData.version = "Flux"; + jsonData.organization = "leah"; + jsonData.defaultBucket = "mqttData"; + secureJsonData.token = inputs.local-secrets.hosts.trabbi.grafana.influxToken; } - { - name = "InfluxDB (Sensors)"; - type = "influxdb"; - url = "https://influx.home.ctu.cx"; - orgId = 1; - database = "sensors"; - editable = false; - jsonData.httpMode = "GET"; - jsonData.httpHeaderName1 = "Authorization"; - secureJsonData.httpHeaderValue1 = "Token ${inputs.local-secrets.hosts.lollo.smartied.influxToken}"; - } - ]; dashboards.settings.providers = [{
diff --git a/secrets/flake.nix.age b/secrets/flake.nix.age @@ -1,91 +1,94 @@ -----BEGIN AGE ENCRYPTED FILE----- -YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSAxcXQvR2Erc0drZEl6TlJY -Q2s1S1RnMllTK1hoMk9mNVY4VGZmanNRUUMwCjFKNmp0eXdxMWlsS0tFeVQ5RlRw -UFR3aWhncWZSVjFjUlBPVGtZU095dkUKLS0tIHYzdlRHRmE2cWNDY29xaDh5b2du -Q21Bdk9ZQ3BQcnJNMmk4ZTYvdEFNM0UKGwR+T0HVXNsnlfU/85a+dE0rl4GMVIER -WsSfJrwuOhySi0DoxjcDv67U904rXK5cVoA2m2yP6qooeqg0Mk0QMsZvwtmvgRwi -FKRLRI+uOk453ixQtYFIGUkPxRAFCVoOVX9b6TnaQMBB4i8o9ivVN3k6L1QKS6Qn -A7vXfUHpd4G81nVktcUiTfW1GwKkluphT+eNmzXKPU1hPcuIBJycbt6CxNnFrY0J -Mi2rKDoEAOcP43mlFL84K+JuACZz72gdIFIK0zZmJvRp2srOv1PzSqnTKeLsPNqM -5aGwOWsJLocAW/W2mhQICvBG4BiTO80DBFxb/N5Vsl9zSffmtki/zGKdU4iW7cz0 -8JjSXwdr61ZvQreiXcjspzf15j4uQfRwk+uZNc2pbjE0Ktv/QLC8RzJ27uZYo0e9 -cMdJb0AFn9ZhI2NS+eEXl9v78tfjuH5+SLBvSlVC2RB4cHep0iSsklJ0GrN0OEnE -OTX+ySW28wjHDGNezJRcmFy35e7woxYeQKsqqlofCg2qJenU55msrKk+NbB3T4Cg -hO6uVWJTpInqJu5jwQ8xfByE5HD8CfpkTddLZRjGuLN1ehJRn8Kcf/zS6enx2mXs -LO/yeSSt6qy+So/7oq9al9vK064VSIYdHFxBJEdA6qVI5aJtPzmNLzveFEQ46qcR -RFe7cHQ60whuVKsZXYZWNUZAZ5Qs5M5EIQyDIyq1LDtd2FrJPfskzcam0EEBz8+K -a0Ol2X0zoUaAtq5YfmMqe6c7qDsYDjs+k+kC6pV5MvFoJYha1pk5E1xSBLGEAGbV -ymwAZcb6go2wIjuhdf8MpSDZseaZiAwR0R8bwGsux9Sq5zurx1Seds92JvP2S/3a -2sTDMyhwiuAbF/QKTU27HXAEPKDGvwDoO+Hfs6kecyeXEEp1me39pWZYFJvpwEQ+ -4ABDpf1+c57Ge3TVTWyQiu6siydAL+I7RJtXQ5BmMxoinf7LHRh2MYGSZlSEP3hp -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 -vXkDkwpEqqMFBS5as7q5QS1x365jzGHXiYvkNtTqp+kfSm0JlVV16ZhjakV3xgDG -UXEfJm4bycRys3MtHccr4G34Vh/w0aG1/cZpXSXrFV1Imd58+WcsgU9VO4/Zog63 -Um2Rdg/HWO1ZWxA1vPLS5l1RWhLO6Wr63q7WzHaPcsdecFajQCcOIGqPvWyje3yV -xgLpgdQOvjXHNhevWtR2YTPKcuZzKb1J8mE/gS+UXTqzLsaaUO14qGG9Lk93op+T -6XDyU71jcW60cXWGT9mpGiooo7fHpUN5ctMS2KQpMu7VzYCQiGzyHfKnH2GYZeML -lcR7NLWY7ufzhQtM3G015LpaRWK5DUSts7OXDWFpojC+wrAb62sLUWbNuTrv1uQ5 -ZQkzP8mQSTD2WaD620cY+Zr5VmtdoSakjNzPbes+26YpquT9UZQuuqi5hsK6Rt1y -9Z1qe2kX9xeBuz095MLhUnUBSEiPWhNjLFoLXN0If+2EJl2cltZt8ncP8aFbqTuj -NAY2Zk8AILckx68CqwBSGgmYcfN5hGIVmTbJu7+hzgAlkjqfh27zKIN5720TAZaO -72HYXOXzpbswUbueK19yq9kj6vLFyEelGqo5duP3F7cDyljveVnrve/s7zP3QkcM -gzPPNiiS2RlanZMcm85oqC0OBBYe/nCzD6yUSYAZ2m4MzjutuEvM1oRF9xahDZ5k -mENMDYc5KAyltGzL1OPc0UWOo0ZDQ55qzLpHDaC7NWH3kczpnGusvoaBaRS8d/eF -uuvgbbSu4ip+F1YpRlMdJcqVhLxEg3iaCPAo+ZdA +YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBHY3p2dVYrR3c2YzhXc0ph +NWpyS0d4Tm0rLzUyM0ozK1dpSVdMYmpySEVjCkducUQ2eWppNWV5ZTJCS2JuNG84 +RGo3SFpaSTZGQ0Y5K05FdW9uVlNrWncKLS0tIGo5MlFBcTNmY28vVFVjc0hreVZP +MGkzRkdXc2hJRUNod0djeVI0Qm1UOWMKc0j8/ASihWQAlKcgqQUcMI3KGvFjPQ/X +cN9I7dva+CuueVfjP2kT7k+NgZ11iLtwpi/43jiYu8snpkqQxjKPxB0uFvYBeBQ8 +UfsukWPeHZ064OHAezayA04xDXwouCF7xRCMYpuU+pxP1pq5rqC74Zl/qvvLgJTn +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 +P1yDxRAibSfGl5Jd584ov89uTLZGvQ== -----END AGE ENCRYPTED FILE-----