ctucx.git: nixfiles

ctucx' nixfiles

commit 27edfabaaee3b7740730366568641df9af41d864
parent 034af72678d03d7c49df2a18d693cfe3d08812c6
Author: Leah (ctucx) <git@ctu.cx>
Date: Fri, 12 May 2023 17:50:48 +0200

machines/trabbi/grafana/dashboards: add `Solar` dashboard
1 file changed, 1079 insertions(+), 0 deletions(-)
A
machines/trabbi/grafana/dashboards/Solar.json
|
1079
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
diff --git a/machines/trabbi/grafana/dashboards/Solar.json b/machines/trabbi/grafana/dashboards/Solar.json
@@ -0,0 +1,1078 @@
+{
+  "annotations": {
+    "list": [
+      {
+        "builtIn": 1,
+        "datasource": {
+          "type": "datasource",
+          "uid": "grafana"
+        },
+        "enable": true,
+        "hide": true,
+        "iconColor": "rgba(0, 211, 255, 1)",
+        "name": "Annotations & Alerts",
+        "target": {
+          "limit": 100,
+          "matchAny": false,
+          "tags": [],
+          "type": "dashboard"
+        },
+        "type": "dashboard"
+      }
+    ]
+  },
+  "editable": true,
+  "fiscalYearStartMonth": 0,
+  "graphTooltip": 0,
+  "links": [],
+  "liveNow": false,
+  "panels": [
+    {
+      "datasource": {
+        "type": "influxdb",
+        "uid": "P66F0DCA0E6A1171C"
+      },
+      "description": "",
+      "fieldConfig": {
+        "defaults": {
+          "color": {
+            "mode": "thresholds"
+          },
+          "decimals": 2,
+          "mappings": [],
+          "max": 260,
+          "min": 220,
+          "thresholds": {
+            "mode": "absolute",
+            "steps": [
+              {
+                "color": "#ffffff",
+                "value": null
+              }
+            ]
+          },
+          "unit": "volt"
+        },
+        "overrides": []
+      },
+      "gridPos": {
+        "h": 6,
+        "w": 3,
+        "x": 6,
+        "y": 0
+      },
+      "hideTimeOverride": false,
+      "id": 4,
+      "interval": "1m",
+      "maxDataPoints": 10,
+      "options": {
+        "colorMode": "value",
+        "graphMode": "area",
+        "justifyMode": "auto",
+        "orientation": "auto",
+        "reduceOptions": {
+          "calcs": [
+            "lastNotNull"
+          ],
+          "fields": "",
+          "values": false
+        },
+        "textMode": "auto"
+      },
+      "pluginVersion": "9.4.9",
+      "targets": [
+        {
+          "datasource": {
+            "type": "influxdb",
+            "uid": "P66F0DCA0E6A1171C"
+          },
+          "query": "from(bucket: \"solaxData\")\n  |> range(start: -1m)\n  |> filter(fn: (r) => (r.topic == \"solax2mqtt\" and r._field == \"battery_voltage\"))\n  |> last()\n  |> yield()",
+          "refId": "A"
+        }
+      ],
+      "title": "Battery Voltage",
+      "transparent": true,
+      "type": "stat"
+    },
+    {
+      "datasource": {
+        "type": "influxdb",
+        "uid": "P66F0DCA0E6A1171C"
+      },
+      "fieldConfig": {
+        "defaults": {
+          "decimals": 1,
+          "mappings": [],
+          "thresholds": {
+            "mode": "absolute",
+            "steps": [
+              {
+                "color": "rgb(237, 237, 237)",
+                "value": null
+              }
+            ]
+          },
+          "unit": "kwatth"
+        },
+        "overrides": []
+      },
+      "gridPos": {
+        "h": 6,
+        "w": 4,
+        "x": 9,
+        "y": 0
+      },
+      "id": 14,
+      "options": {
+        "colorMode": "value",
+        "graphMode": "none",
+        "justifyMode": "center",
+        "orientation": "auto",
+        "reduceOptions": {
+          "calcs": [
+            "lastNotNull"
+          ],
+          "fields": "",
+          "values": false
+        },
+        "text": {},
+        "textMode": "value"
+      },
+      "pluginVersion": "9.4.9",
+      "targets": [
+        {
+          "datasource": {
+            "type": "influxdb",
+            "uid": "P66F0DCA0E6A1171C"
+          },
+          "query": "from(bucket: \"solaxData\")\n  |> range(start: v.timeRangeStart, stop:v.timeRangeStop)\n  |> filter(fn: (r) => (r.topic == \"solax2mqtt\" and r._field == \"inverter_grid_in_energy_total\"))\n  |> last()\n  |> yield()",
+          "refId": "A"
+        }
+      ],
+      "title": "Imported",
+      "transformations": [],
+      "transparent": true,
+      "type": "stat"
+    },
+    {
+      "datasource": {
+        "type": "influxdb",
+        "uid": "P66F0DCA0E6A1171C"
+      },
+      "fieldConfig": {
+        "defaults": {
+          "color": {
+            "mode": "thresholds"
+          },
+          "decimals": 2,
+          "mappings": [],
+          "max": 3600,
+          "min": 0,
+          "thresholds": {
+            "mode": "percentage",
+            "steps": [
+              {
+                "color": "green",
+                "value": null
+              }
+            ]
+          },
+          "unit": "watt"
+        },
+        "overrides": []
+      },
+      "gridPos": {
+        "h": 6,
+        "w": 3,
+        "x": 13,
+        "y": 0
+      },
+      "id": 12,
+      "options": {
+        "colorMode": "value",
+        "graphMode": "area",
+        "justifyMode": "auto",
+        "orientation": "auto",
+        "reduceOptions": {
+          "calcs": [
+            "lastNotNull"
+          ],
+          "fields": "",
+          "values": false
+        },
+        "textMode": "auto"
+      },
+      "pluginVersion": "9.4.9",
+      "targets": [
+        {
+          "datasource": {
+            "type": "influxdb",
+            "uid": "P66F0DCA0E6A1171C"
+          },
+          "query": "from(bucket: \"solaxData\")\n  |> range(start: -1m)\n  |> filter(fn: (r) => (r.topic == \"solax2mqtt\" and r._field == \"inverter_power_total\"))\n  |> last()\n  |> yield()\n",
+          "refId": "A"
+        }
+      ],
+      "title": "Gesamtverbrauch",
+      "transparent": true,
+      "type": "stat"
+    },
+    {
+      "datasource": {
+        "type": "influxdb",
+        "uid": "P66F0DCA0E6A1171C"
+      },
+      "fieldConfig": {
+        "defaults": {
+          "color": {
+            "mode": "thresholds"
+          },
+          "decimals": 2,
+          "mappings": [],
+          "max": 3600,
+          "min": 0,
+          "thresholds": {
+            "mode": "percentage",
+            "steps": [
+              {
+                "color": "green",
+                "value": null
+              }
+            ]
+          },
+          "unit": "watt"
+        },
+        "overrides": []
+      },
+      "gridPos": {
+        "h": 6,
+        "w": 3,
+        "x": 16,
+        "y": 0
+      },
+      "id": 36,
+      "options": {
+        "colorMode": "value",
+        "graphMode": "area",
+        "justifyMode": "auto",
+        "orientation": "auto",
+        "reduceOptions": {
+          "calcs": [
+            "lastNotNull"
+          ],
+          "fields": "",
+          "values": false
+        },
+        "textMode": "auto"
+      },
+      "pluginVersion": "9.4.9",
+      "targets": [
+        {
+          "datasource": {
+            "type": "influxdb",
+            "uid": "P66F0DCA0E6A1171C"
+          },
+          "query": "from(bucket: \"solaxData\")\n  |> range(start: -1m)\n  |> filter(fn: (r) => (r.topic == \"solax2mqtt\" and r._field == \"inverter_pv_power\"))\n  |> last()\n  |> yield()\n",
+          "refId": "A"
+        }
+      ],
+      "title": "Produktion",
+      "transparent": true,
+      "type": "stat"
+    },
+    {
+      "datasource": {
+        "type": "influxdb",
+        "uid": "P66F0DCA0E6A1171C"
+      },
+      "description": "",
+      "fieldConfig": {
+        "defaults": {
+          "color": {
+            "mode": "palette-classic"
+          },
+          "custom": {
+            "axisCenteredZero": false,
+            "axisColorMode": "text",
+            "axisLabel": "",
+            "axisPlacement": "auto",
+            "barAlignment": 0,
+            "drawStyle": "line",
+            "fillOpacity": 5,
+            "gradientMode": "hue",
+            "hideFrom": {
+              "legend": false,
+              "tooltip": false,
+              "viz": false
+            },
+            "lineInterpolation": "smooth",
+            "lineWidth": 1,
+            "pointSize": 5,
+            "scaleDistribution": {
+              "type": "linear"
+            },
+            "showPoints": "never",
+            "spanNulls": 3600000,
+            "stacking": {
+              "group": "A",
+              "mode": "none"
+            },
+            "thresholdsStyle": {
+              "mode": "off"
+            }
+          },
+          "mappings": [],
+          "thresholds": {
+            "mode": "absolute",
+            "steps": [
+              {
+                "color": "green",
+                "value": null
+              }
+            ]
+          },
+          "unit": "watt"
+        },
+        "overrides": []
+      },
+      "gridPos": {
+        "h": 8,
+        "w": 24,
+        "x": 0,
+        "y": 6
+      },
+      "id": 37,
+      "options": {
+        "legend": {
+          "calcs": [
+            "lastNotNull"
+          ],
+          "displayMode": "list",
+          "placement": "bottom",
+          "showLegend": true
+        },
+        "tooltip": {
+          "mode": "single",
+          "sort": "none"
+        }
+      },
+      "pluginVersion": "8.5.11",
+      "targets": [
+        {
+          "datasource": {
+            "type": "influxdb",
+            "uid": "P66F0DCA0E6A1171C"
+          },
+          "query": "import \"strings\"\n\nfrom(bucket: \"solaxData\")\n  |> range(start: v.timeRangeStart, stop:v.timeRangeStop)\n  |> filter(fn: (r) => (r.topic == \"solax2mqtt\" and r._field =~ /inverter_pv[0-9]*_power/))\n  |> drop(columns: [ \"host\", \"topic\" ])\n  |> aggregateWindow(every: v.windowPeriod, fn: mean, createEmpty: true)\n",
+          "refId": "A"
+        }
+      ],
+      "title": "Produktion",
+      "transparent": true,
+      "type": "timeseries"
+    },
+    {
+      "datasource": {
+        "type": "influxdb",
+        "uid": "P66F0DCA0E6A1171C"
+      },
+      "description": "",
+      "fieldConfig": {
+        "defaults": {
+          "color": {
+            "mode": "palette-classic"
+          },
+          "custom": {
+            "axisCenteredZero": false,
+            "axisColorMode": "text",
+            "axisLabel": "",
+            "axisPlacement": "auto",
+            "barAlignment": 0,
+            "drawStyle": "line",
+            "fillOpacity": 5,
+            "gradientMode": "hue",
+            "hideFrom": {
+              "legend": false,
+              "tooltip": false,
+              "viz": false
+            },
+            "lineInterpolation": "smooth",
+            "lineWidth": 1,
+            "pointSize": 5,
+            "scaleDistribution": {
+              "type": "linear"
+            },
+            "showPoints": "never",
+            "spanNulls": 3600000,
+            "stacking": {
+              "group": "A",
+              "mode": "none"
+            },
+            "thresholdsStyle": {
+              "mode": "off"
+            }
+          },
+          "mappings": [],
+          "thresholds": {
+            "mode": "absolute",
+            "steps": [
+              {
+                "color": "green",
+                "value": null
+              }
+            ]
+          },
+          "unit": "kwatth"
+        },
+        "overrides": []
+      },
+      "gridPos": {
+        "h": 8,
+        "w": 12,
+        "x": 0,
+        "y": 14
+      },
+      "id": 35,
+      "options": {
+        "legend": {
+          "calcs": [
+            "lastNotNull"
+          ],
+          "displayMode": "list",
+          "placement": "bottom",
+          "showLegend": false
+        },
+        "tooltip": {
+          "mode": "single",
+          "sort": "none"
+        }
+      },
+      "pluginVersion": "8.5.11",
+      "targets": [
+        {
+          "datasource": {
+            "type": "influxdb",
+            "uid": "P66F0DCA0E6A1171C"
+          },
+          "query": "import \"strings\"\n\nfrom(bucket: \"solaxData\")\n  |> range(start: v.timeRangeStart, stop:v.timeRangeStop)\n  |> filter(fn: (r) => (r.topic == \"solax2mqtt\" and r._field == \"battery_remaining_capacity\"))\n  |> drop(columns: [\"host\", \"_field\"])\n  |> aggregateWindow(every: v.windowPeriod, fn: mean, createEmpty: true)\n  |> map(fn: (r) => ({r with topic: strings.trimPrefix(v: r.topic, prefix: \"solax2mqtt/\")}))\n",
+          "refId": "A"
+        }
+      ],
+      "title": "Batteriestand (verbleibend)",
+      "transparent": true,
+      "type": "timeseries"
+    },
+    {
+      "datasource": {
+        "type": "influxdb",
+        "uid": "P66F0DCA0E6A1171C"
+      },
+      "description": "",
+      "fieldConfig": {
+        "defaults": {
+          "color": {
+            "mode": "palette-classic"
+          },
+          "custom": {
+            "axisCenteredZero": false,
+            "axisColorMode": "text",
+            "axisLabel": "",
+            "axisPlacement": "auto",
+            "barAlignment": 0,
+            "drawStyle": "line",
+            "fillOpacity": 5,
+            "gradientMode": "hue",
+            "hideFrom": {
+              "legend": false,
+              "tooltip": false,
+              "viz": false
+            },
+            "lineInterpolation": "smooth",
+            "lineWidth": 1,
+            "pointSize": 5,
+            "scaleDistribution": {
+              "type": "linear"
+            },
+            "showPoints": "never",
+            "spanNulls": 3600000,
+            "stacking": {
+              "group": "A",
+              "mode": "none"
+            },
+            "thresholdsStyle": {
+              "mode": "off"
+            }
+          },
+          "mappings": [],
+          "thresholds": {
+            "mode": "absolute",
+            "steps": [
+              {
+                "color": "green",
+                "value": null
+              }
+            ]
+          },
+          "unit": "watt"
+        },
+        "overrides": []
+      },
+      "gridPos": {
+        "h": 8,
+        "w": 12,
+        "x": 12,
+        "y": 14
+      },
+      "id": 2,
+      "options": {
+        "legend": {
+          "calcs": [
+            "lastNotNull"
+          ],
+          "displayMode": "list",
+          "placement": "bottom",
+          "showLegend": false
+        },
+        "tooltip": {
+          "mode": "single",
+          "sort": "none"
+        }
+      },
+      "pluginVersion": "8.5.11",
+      "targets": [
+        {
+          "datasource": {
+            "type": "influxdb",
+            "uid": "P66F0DCA0E6A1171C"
+          },
+          "query": "import \"strings\"\n\nfrom(bucket: \"solaxData\")\n  |> range(start: v.timeRangeStart, stop:v.timeRangeStop)\n  |> filter(fn: (r) => (r.topic == \"solax2mqtt\" and r._field == \"inverter_power_total\"))\n  |> drop(columns: [\"host\", \"_field\"])\n  |> aggregateWindow(every: v.windowPeriod, fn: mean, createEmpty: true)\n  |> map(fn: (r) => ({r with topic: strings.trimPrefix(v: r.topic, prefix: \"solax2mqtt/\")}))\n",
+          "refId": "A"
+        }
+      ],
+      "title": "Gesamtleistung verbauch",
+      "transparent": true,
+      "type": "timeseries"
+    },
+    {
+      "datasource": {
+        "type": "influxdb",
+        "uid": "P66F0DCA0E6A1171C"
+      },
+      "fieldConfig": {
+        "defaults": {
+          "custom": {
+            "align": "auto",
+            "cellOptions": {
+              "type": "auto"
+            },
+            "inspect": false
+          },
+          "mappings": [],
+          "thresholds": {
+            "mode": "absolute",
+            "steps": [
+              {
+                "color": "green",
+                "value": null
+              }
+            ]
+          },
+          "unit": "kwatth"
+        },
+        "overrides": [
+          {
+            "matcher": {
+              "id": "byName",
+              "options": "Week"
+            },
+            "properties": [
+              {
+                "id": "unit",
+                "value": "time: YYYY, [CW]W"
+              }
+            ]
+          }
+        ]
+      },
+      "gridPos": {
+        "h": 12,
+        "w": 4,
+        "x": 0,
+        "y": 22
+      },
+      "id": 34,
+      "options": {
+        "footer": {
+          "countRows": false,
+          "fields": "",
+          "reducer": [
+            "sum"
+          ],
+          "show": false
+        },
+        "showHeader": true
+      },
+      "pluginVersion": "9.4.9",
+      "targets": [
+        {
+          "datasource": {
+            "type": "influxdb",
+            "uid": "P66F0DCA0E6A1171C"
+          },
+          "query": "import \"timezone\"\nimport \"date\"\n\noption location = {zone: \"Europe/Berlin\", offset: 0h}\n\ndate_start  = date.truncate(t: v.timeRangeStart, unit: 1d)\ndate_stop   = date.truncate(t: v.timeRangeStop, unit: 1d)\n\nfrom(bucket: \"solaxData\")\n  |> range(start: date_start, stop:date_stop)\n  |> filter(fn: (r) => r.topic == \"solax2mqtt\" and r._field == \"inverter_energy_total\")\n  |> drop(columns: [\"_measurement\", \"_field\", \"topic\" \"host\"])\n  |> aggregateWindow(every: duration(v: 1w), fn:max, createEmpty: false, offset: -3d, timeSrc: \"_start\")\n  |> difference()\n",
+          "refId": "A"
+        }
+      ],
+      "timeFrom": "3M",
+      "title": "Weeky Power Consumption",
+      "transformations": [
+        {
+          "id": "sortBy",
+          "options": {
+            "fields": {},
+            "sort": [
+              {
+                "desc": true,
+                "field": "Time"
+              }
+            ]
+          }
+        },
+        {
+          "id": "organize",
+          "options": {
+            "excludeByName": {},
+            "indexByName": {},
+            "renameByName": {
+              "Date": "Week",
+              "Time": "Week",
+              "Value": "Import"
+            }
+          }
+        }
+      ],
+      "type": "table"
+    },
+    {
+      "datasource": {
+        "type": "influxdb",
+        "uid": "P66F0DCA0E6A1171C"
+      },
+      "fieldConfig": {
+        "defaults": {
+          "custom": {
+            "align": "auto",
+            "cellOptions": {
+              "type": "auto"
+            },
+            "inspect": false
+          },
+          "mappings": [],
+          "thresholds": {
+            "mode": "absolute",
+            "steps": [
+              {
+                "color": "green",
+                "value": null
+              }
+            ]
+          },
+          "unit": "kwatth"
+        },
+        "overrides": [
+          {
+            "matcher": {
+              "id": "byName",
+              "options": "Time"
+            },
+            "properties": [
+              {
+                "id": "unit",
+                "value": "time: YYYY, MMM"
+              }
+            ]
+          }
+        ]
+      },
+      "gridPos": {
+        "h": 12,
+        "w": 4,
+        "x": 4,
+        "y": 22
+      },
+      "id": 32,
+      "options": {
+        "footer": {
+          "countRows": false,
+          "fields": "",
+          "reducer": [
+            "sum"
+          ],
+          "show": false
+        },
+        "showHeader": true
+      },
+      "pluginVersion": "9.4.9",
+      "targets": [
+        {
+          "datasource": {
+            "type": "influxdb",
+            "uid": "P66F0DCA0E6A1171C"
+          },
+          "query": "import \"timezone\"\nimport \"date\"\n\noption location = {zone: \"Europe/Berlin\", offset: 0h}\n\ndate_start  = date.truncate(t: v.timeRangeStart, unit: 1d)\ndate_stop   = date.truncate(t: v.timeRangeStop, unit: 1d)\n\nfrom(bucket: \"solaxData\")\n  |> range(start: date_start, stop:date_stop)\n  |> filter(fn: (r) => r.topic == \"solax2mqtt\" and r._field == \"inverter_energy_total\")\n  |> drop(columns: [\"_measurement\", \"_field\", \"topic\" \"host\"])\n  |> aggregateWindow(every: duration(v: 1mo), fn:max, createEmpty: false, timeSrc: \"_start\")\n  |> difference()",
+          "refId": "A"
+        }
+      ],
+      "timeFrom": "1y",
+      "title": "Monthly Power Consumption",
+      "transformations": [
+        {
+          "id": "sortBy",
+          "options": {
+            "fields": {},
+            "sort": [
+              {
+                "desc": true,
+                "field": "Time"
+              }
+            ]
+          }
+        },
+        {
+          "id": "organize",
+          "options": {
+            "excludeByName": {},
+            "indexByName": {},
+            "renameByName": {
+              "Time": "Month",
+              "Value": "Import"
+            }
+          }
+        }
+      ],
+      "type": "table"
+    },
+    {
+      "datasource": {
+        "type": "influxdb",
+        "uid": "P66F0DCA0E6A1171C"
+      },
+      "fieldConfig": {
+        "defaults": {
+          "custom": {
+            "align": "auto",
+            "cellOptions": {
+              "type": "auto"
+            },
+            "inspect": false
+          },
+          "mappings": [],
+          "thresholds": {
+            "mode": "absolute",
+            "steps": [
+              {
+                "color": "green",
+                "value": null
+              }
+            ]
+          },
+          "unit": "kwatth"
+        },
+        "overrides": [
+          {
+            "matcher": {
+              "id": "byName",
+              "options": "Time"
+            },
+            "properties": [
+              {
+                "id": "unit",
+                "value": "time: YYYY"
+              }
+            ]
+          }
+        ]
+      },
+      "gridPos": {
+        "h": 12,
+        "w": 4,
+        "x": 8,
+        "y": 22
+      },
+      "id": 33,
+      "options": {
+        "footer": {
+          "countRows": false,
+          "fields": "",
+          "reducer": [
+            "sum"
+          ],
+          "show": false
+        },
+        "showHeader": true
+      },
+      "pluginVersion": "9.4.9",
+      "targets": [
+        {
+          "datasource": {
+            "type": "influxdb",
+            "uid": "P66F0DCA0E6A1171C"
+          },
+          "query": "import \"timezone\"\nimport \"date\"\n\noption location = {zone: \"Europe/Berlin\", offset: 0h}\n\ndate_start  = date.truncate(t: v.timeRangeStart, unit: 1d)\ndate_stop   = date.truncate(t: v.timeRangeStop, unit: 1d)\n\nfrom(bucket: \"solaxData\")\n  |> range(start: date_start, stop:date_stop)\n  |> filter(fn: (r) => r.topic == \"solax2mqtt\" and r._field == \"inverter_energy_total\")\n  |> drop(columns: [\"_measurement\", \"_field\", \"topic\" \"host\"])\n  |> aggregateWindow(every: duration(v: 1y), fn:max, createEmpty: false, timeSrc: \"_start\")\n  |> difference()",
+          "refId": "A"
+        }
+      ],
+      "timeFrom": "2y",
+      "title": "Yearly Power Consumption",
+      "transformations": [
+        {
+          "id": "sortBy",
+          "options": {
+            "fields": {},
+            "sort": [
+              {
+                "desc": true,
+                "field": "Time"
+              }
+            ]
+          }
+        },
+        {
+          "id": "organize",
+          "options": {
+            "excludeByName": {},
+            "indexByName": {},
+            "renameByName": {
+              "Time": "Year",
+              "Value": "Import"
+            }
+          }
+        }
+      ],
+      "type": "table"
+    },
+    {
+      "datasource": {
+        "type": "influxdb",
+        "uid": "P66F0DCA0E6A1171C"
+      },
+      "fieldConfig": {
+        "defaults": {
+          "color": {
+            "mode": "palette-classic"
+          },
+          "custom": {
+            "axisCenteredZero": false,
+            "axisColorMode": "text",
+            "axisLabel": "",
+            "axisPlacement": "right",
+            "barAlignment": 0,
+            "drawStyle": "bars",
+            "fillOpacity": 100,
+            "gradientMode": "hue",
+            "hideFrom": {
+              "legend": false,
+              "tooltip": false,
+              "viz": false
+            },
+            "lineInterpolation": "linear",
+            "lineWidth": 1,
+            "pointSize": 1,
+            "scaleDistribution": {
+              "type": "linear"
+            },
+            "showPoints": "auto",
+            "spanNulls": false,
+            "stacking": {
+              "group": "A",
+              "mode": "none"
+            },
+            "thresholdsStyle": {
+              "mode": "off"
+            }
+          },
+          "mappings": [],
+          "thresholds": {
+            "mode": "absolute",
+            "steps": [
+              {
+                "color": "green",
+                "value": null
+              }
+            ]
+          },
+          "unit": "kwatth"
+        },
+        "overrides": [
+          {
+            "matcher": {
+              "id": "byName",
+              "options": "date"
+            },
+            "properties": [
+              {
+                "id": "unit",
+                "value": "time: YYYY-MM-DD"
+              }
+            ]
+          }
+        ]
+      },
+      "gridPos": {
+        "h": 8,
+        "w": 12,
+        "x": 12,
+        "y": 22
+      },
+      "id": 30,
+      "options": {
+        "legend": {
+          "calcs": [
+            "last"
+          ],
+          "displayMode": "list",
+          "placement": "bottom",
+          "showLegend": false
+        },
+        "tooltip": {
+          "mode": "single",
+          "sort": "none"
+        }
+      },
+      "pluginVersion": "9.3.1",
+      "targets": [
+        {
+          "datasource": {
+            "type": "influxdb",
+            "uid": "P66F0DCA0E6A1171C"
+          },
+          "query": "import \"timezone\"\nimport \"date\"\n\noption location = {zone: \"Europe/Berlin\", offset: 0h}\n\ndate_start  = date.truncate(t: v.timeRangeStart, unit: 1d)\ndate_stop   = date.truncate(t: v.timeRangeStop, unit: 1d)\n\nfrom(bucket: \"solaxData\")\n  |> range(start: date_start, stop:date_stop)\n  |> filter(fn: (r) => r.topic == \"solax2mqtt\" and r._field == \"inverter_energy_total\")\n  |> aggregateWindow(every: duration(v: 1d), fn:max, createEmpty: false, timeSrc: \"_start\")\n  |> difference()\n  |> drop(columns: [\"_measurement\", \"_field\", \"_start\", \"_stop\", \"topic\" \"host\"])\n  |> rename(columns: {_time: \"date\", _value: \"import\"})",
+          "refId": "A"
+        }
+      ],
+      "timeFrom": "1M",
+      "title": "Tagesverbrauch",
+      "transparent": true,
+      "type": "timeseries"
+    },
+    {
+      "datasource": {
+        "type": "influxdb",
+        "uid": "P66F0DCA0E6A1171C"
+      },
+      "fieldConfig": {
+        "defaults": {
+          "color": {
+            "mode": "palette-classic"
+          },
+          "custom": {
+            "axisCenteredZero": false,
+            "axisColorMode": "text",
+            "axisLabel": "",
+            "axisPlacement": "right",
+            "barAlignment": 0,
+            "drawStyle": "line",
+            "fillOpacity": 5,
+            "gradientMode": "hue",
+            "hideFrom": {
+              "legend": false,
+              "tooltip": false,
+              "viz": false
+            },
+            "lineInterpolation": "smooth",
+            "lineWidth": 1,
+            "pointSize": 5,
+            "scaleDistribution": {
+              "type": "linear"
+            },
+            "showPoints": "never",
+            "spanNulls": 3600000,
+            "stacking": {
+              "group": "A",
+              "mode": "none"
+            },
+            "thresholdsStyle": {
+              "mode": "off"
+            }
+          },
+          "mappings": [],
+          "thresholds": {
+            "mode": "absolute",
+            "steps": [
+              {
+                "color": "green",
+                "value": null
+              }
+            ]
+          },
+          "unit": "volt"
+        },
+        "overrides": []
+      },
+      "gridPos": {
+        "h": 8,
+        "w": 12,
+        "x": 12,
+        "y": 30
+      },
+      "id": 24,
+      "options": {
+        "legend": {
+          "calcs": [],
+          "displayMode": "list",
+          "placement": "bottom",
+          "showLegend": true
+        },
+        "tooltip": {
+          "mode": "multi",
+          "sort": "none"
+        }
+      },
+      "pluginVersion": "8.5.11",
+      "targets": [
+        {
+          "datasource": {
+            "type": "influxdb",
+            "uid": "P66F0DCA0E6A1171C"
+          },
+          "query": "import \"strings\"\n\nfrom(bucket: \"solaxData\")\n  |> range(start: v.timeRangeStart, stop:v.timeRangeStop)\n  |> filter(fn: (r) => (r.topic == \"solax2mqtt\" and r._field =~ /inverter_pv1_voltage|inverter_pv2_voltage/ ))\n  |> drop(columns: [ \"host\", \"topic\" ])\n  |> aggregateWindow(every: v.windowPeriod, fn: mean, createEmpty: true)\n  |> yield()",
+          "refId": "A"
+        }
+      ],
+      "title": "Voltage Panele",
+      "transparent": true,
+      "type": "timeseries"
+    }
+  ],
+  "refresh": "30s",
+  "revision": 1,
+  "schemaVersion": 38,
+  "style": "dark",
+  "tags": [],
+  "templating": {
+    "list": []
+  },
+  "time": {
+    "from": "now-12h",
+    "to": "now"
+  },
+  "timepicker": {
+    "refresh_intervals": [
+      "5s",
+      "10s",
+      "30s",
+      "1m",
+      "5m",
+      "15m",
+      "30m",
+      "1h",
+      "2h",
+      "1d"
+    ]
+  },
+  "timezone": "",
+  "title": "Solar (Influx)",
+  "uid": "aRDYqjEGa",
+  "version": 1,
+  "weekStart": ""
+}+
\ No newline at end of file