From ba012a31fa056841692e828fc14a3a2f161bd3fc Mon Sep 17 00:00:00 2001 From: Jedri Visser Date: Thu, 14 Mar 2019 20:44:44 +0200 Subject: [PATCH] Add Grafana dashboard --- README.md | 6 + grafana/dashboard.png | Bin 0 -> 58037 bytes grafana/prometheus-dashboard.json | 1349 +++++++++++++++++++++++++++++ 3 files changed, 1355 insertions(+) create mode 100644 grafana/dashboard.png create mode 100644 grafana/prometheus-dashboard.json diff --git a/README.md b/README.md index 886c809..4fe012b 100644 --- a/README.md +++ b/README.md @@ -313,3 +313,9 @@ The last four lines are optional, but is useful when debugging and logging conne proxy_set_header X-Forwarded-Proto $scheme; proxy_set_header X-Forwarded-Port $server_port; ``` + +## Grafana + +This repos includes a [Grafana](https://grafana.com/) dashboard in the [grafana folder](./grafana/prometheus-dashboard.json) that you can import. This is useful if you are using prometheus to log your data and want to display it in a nice way. + +![grafana](https://rawcdn.githack.com/diebietse/invertergui/e20f8fb9161758cd12de95d675aee0ed2e044d8e/grafana/dashboard.png "Grafana Dashboard") \ No newline at end of file diff --git a/grafana/dashboard.png b/grafana/dashboard.png new file mode 100644 index 0000000000000000000000000000000000000000..97b2d74824152a71ef075b8d758f7ca6c9fdee4e GIT binary patch literal 58037 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 LhBhS{d&K<@SKHE$ literal 0 HcmV?d00001 diff --git a/grafana/prometheus-dashboard.json b/grafana/prometheus-dashboard.json new file mode 100644 index 0000000..3d6d10a --- /dev/null +++ b/grafana/prometheus-dashboard.json @@ -0,0 +1,1349 @@ +{ + "__inputs": [], + "__requires": [ + { + "type": "grafana", + "id": "grafana", + "name": "Grafana", + "version": "6.0.1" + }, + { + "type": "panel", + "id": "graph", + "name": "Graph", + "version": "5.0.0" + }, + { + "type": "panel", + "id": "singlestat", + "name": "Singlestat", + "version": "5.0.0" + } + ], + "annotations": { + "list": [ + { + "builtIn": 1, + "datasource": "-- Grafana --", + "enable": true, + "hide": true, + "iconColor": "rgba(0, 211, 255, 1)", + "name": "Annotations & Alerts", + "type": "dashboard" + } + ] + }, + "editable": true, + "gnetId": null, + "graphTooltip": 2, + "id": null, + "links": [], + "panels": [ + { + "cacheTimeout": null, + "colorBackground": false, + "colorValue": false, + "colors": [ + "rgba(245, 54, 54, 0.9)", + "rgba(237, 129, 40, 0.89)", + "rgba(50, 172, 45, 0.97)" + ], + "format": "percent", + "gauge": { + "maxValue": 100, + "minValue": 0, + "show": true, + "thresholdLabels": false, + "thresholdMarkers": true + }, + "gridPos": { + "h": 7, + "w": 4, + "x": 0, + "y": 0 + }, + "id": 1, + "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": "", + "targets": [ + { + "expr": "battery_charge_percentage", + "format": "time_series", + "intervalFactor": 2, + "legendFormat": "", + "metric": "battery_charge_percentage", + "refId": "A", + "step": 600 + } + ], + "thresholds": "20,50", + "title": "Battery Charge State", + "type": "singlestat", + "valueFontSize": "80%", + "valueMaps": [ + { + "op": "=", + "text": "N/A", + "value": "null" + } + ], + "valueName": "current" + }, + { + "cacheTimeout": null, + "colorBackground": false, + "colorValue": false, + "colors": [ + "rgba(245, 54, 54, 0.9)", + "rgba(237, 129, 40, 0.89)", + "rgba(50, 172, 45, 0.97)" + ], + "format": "volt", + "gauge": { + "maxValue": 100, + "minValue": 0, + "show": false, + "thresholdLabels": false, + "thresholdMarkers": true + }, + "gridPos": { + "h": 7, + "w": 4, + "x": 4, + "y": 0 + }, + "id": 2, + "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": "", + "targets": [ + { + "expr": "mains_voltage_in_v", + "format": "time_series", + "intervalFactor": 2, + "legendFormat": "", + "metric": "mains_voltage_in_v", + "refId": "A", + "step": 600 + } + ], + "thresholds": "", + "title": "Input Voltage", + "type": "singlestat", + "valueFontSize": "80%", + "valueMaps": [ + { + "op": "=", + "text": "N/A", + "value": "null" + } + ], + "valueName": "current" + }, + { + "cacheTimeout": null, + "colorBackground": false, + "colorValue": false, + "colors": [ + "rgba(245, 54, 54, 0.9)", + "rgba(237, 129, 40, 0.89)", + "rgba(50, 172, 45, 0.97)" + ], + "format": "volt", + "gauge": { + "maxValue": 100, + "minValue": 0, + "show": false, + "thresholdLabels": false, + "thresholdMarkers": true + }, + "gridPos": { + "h": 7, + "w": 4, + "x": 8, + "y": 0 + }, + "id": 5, + "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": "", + "targets": [ + { + "expr": "mains_voltage_out_v", + "format": "time_series", + "intervalFactor": 2, + "metric": "mains_voltage_out_v", + "refId": "A", + "step": 600 + } + ], + "thresholds": "", + "title": "Output Voltage", + "type": "singlestat", + "valueFontSize": "80%", + "valueMaps": [ + { + "op": "=", + "text": "N/A", + "value": "null" + } + ], + "valueName": "current" + }, + { + "cacheTimeout": null, + "colorBackground": false, + "colorValue": false, + "colors": [ + "rgba(245, 54, 54, 0.9)", + "rgba(237, 129, 40, 0.89)", + "rgba(50, 172, 45, 0.97)" + ], + "format": "voltamp", + "gauge": { + "maxValue": 100, + "minValue": 0, + "show": false, + "thresholdLabels": false, + "thresholdMarkers": true + }, + "gridPos": { + "h": 7, + "w": 4, + "x": 12, + "y": 0 + }, + "id": 3, + "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": "", + "targets": [ + { + "expr": "mains_power_out_va", + "format": "time_series", + "intervalFactor": 2, + "metric": "mains_power_out_va", + "refId": "A", + "step": 600 + } + ], + "thresholds": "", + "title": "Output Power", + "type": "singlestat", + "valueFontSize": "80%", + "valueMaps": [ + { + "op": "=", + "text": "N/A", + "value": "null" + } + ], + "valueName": "current" + }, + { + "cacheTimeout": null, + "colorBackground": false, + "colorValue": false, + "colors": [ + "rgba(245, 54, 54, 0.9)", + "rgba(237, 129, 40, 0.89)", + "rgba(50, 172, 45, 0.97)" + ], + "format": "amp", + "gauge": { + "maxValue": 100, + "minValue": 0, + "show": false, + "thresholdLabels": false, + "thresholdMarkers": true + }, + "gridPos": { + "h": 7, + "w": 4, + "x": 16, + "y": 0 + }, + "id": 4, + "interval": null, + "links": [], + "mappingType": 1, + "mappingTypes": [ + { + "name": "value to text", + "value": 1 + }, + { + "name": "range to text", + "value": 2 + } + ], + "maxDataPoints": 100, + "nullPointMode": "connected", + "nullText": null, + "postfix": "", + "postfixFontSize": "50%", + "prefix": "", + "prefixFontSize": "50%", + "rangeMaps": [ + { + "from": "null", + "text": "N/A", + "to": "null" + } + ], + "sparkline": { + "fillColor": "rgba(31, 118, 189, 0.18)", + "full": false, + "lineColor": "rgb(31, 120, 193)", + "show": false + }, + "tableColumn": "", + "targets": [ + { + "expr": "mains_current_out_a", + "format": "time_series", + "intervalFactor": 3, + "metric": "mains_current_out_a", + "refId": "A", + "step": 900 + } + ], + "thresholds": "", + "title": "Output Current", + "type": "singlestat", + "valueFontSize": "80%", + "valueMaps": [ + { + "op": "=", + "text": "N/A", + "value": "null" + } + ], + "valueName": "current" + }, + { + "cacheTimeout": null, + "colorBackground": false, + "colorValue": false, + "colors": [ + "rgba(245, 54, 54, 0.9)", + "rgba(237, 129, 40, 0.89)", + "rgba(50, 172, 45, 0.97)" + ], + "format": "hertz", + "gauge": { + "maxValue": 100, + "minValue": 0, + "show": false, + "thresholdLabels": false, + "thresholdMarkers": true + }, + "gridPos": { + "h": 7, + "w": 4, + "x": 20, + "y": 0 + }, + "id": 12, + "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": "", + "targets": [ + { + "expr": "mains_freq_in_hz", + "format": "time_series", + "intervalFactor": 2, + "metric": "mains_freq_in_hz", + "refId": "A", + "step": 600 + } + ], + "thresholds": "", + "title": "Input Freq", + "type": "singlestat", + "valueFontSize": "80%", + "valueMaps": [ + { + "op": "=", + "text": "N/A", + "value": "null" + } + ], + "valueName": "current" + }, + { + "aliasColors": {}, + "bars": false, + "dashLength": 10, + "dashes": false, + "fill": 0, + "gridPos": { + "h": 7, + "w": 12, + "x": 0, + "y": 7 + }, + "id": 6, + "legend": { + "alignAsTable": true, + "avg": true, + "current": false, + "max": true, + "min": true, + "show": true, + "total": false, + "values": true + }, + "lines": true, + "linewidth": 1, + "links": [], + "nullPointMode": "null", + "paceLength": 10, + "percentage": false, + "pointradius": 5, + "points": false, + "renderer": "flot", + "seriesOverrides": [ + { + "alias": "Input Frequency", + "color": "#D683CE" + }, + { + "alias": "Output Frequency", + "color": "#508642" + } + ], + "spaceLength": 10, + "stack": false, + "steppedLine": true, + "targets": [ + { + "expr": "mains_freq_in_hz", + "format": "time_series", + "interval": "", + "intervalFactor": 2, + "legendFormat": "Input Frequency", + "metric": "mains_freq_in_hz", + "refId": "A", + "step": 60 + }, + { + "expr": "mains_freq_out_hz", + "format": "time_series", + "intervalFactor": 2, + "legendFormat": "Output Frequency", + "metric": "mains_freq_out_hz", + "refId": "B", + "step": 60 + } + ], + "thresholds": [], + "timeFrom": null, + "timeRegions": [], + "timeShift": null, + "title": "System Frequency", + "tooltip": { + "shared": true, + "sort": 0, + "value_type": "individual" + }, + "type": "graph", + "xaxis": { + "buckets": null, + "mode": "time", + "name": null, + "show": true, + "values": [] + }, + "yaxes": [ + { + "format": "hertz", + "label": "", + "logBase": 1, + "max": "51", + "min": "49", + "show": true + }, + { + "format": "short", + "label": null, + "logBase": 1, + "max": null, + "min": null, + "show": true + } + ], + "yaxis": { + "align": false, + "alignLevel": null + } + }, + { + "aliasColors": {}, + "bars": false, + "dashLength": 10, + "dashes": false, + "fill": 1, + "gridPos": { + "h": 7, + "w": 12, + "x": 12, + "y": 7 + }, + "id": 9, + "legend": { + "alignAsTable": true, + "avg": true, + "current": false, + "max": true, + "min": true, + "show": true, + "total": false, + "values": true + }, + "lines": true, + "linewidth": 1, + "links": [], + "nullPointMode": "null", + "paceLength": 10, + "percentage": false, + "pointradius": 5, + "points": false, + "renderer": "flot", + "seriesOverrides": [ + { + "alias": "Battery Voltage", + "color": "#BF1B00" + } + ], + "spaceLength": 10, + "stack": false, + "steppedLine": false, + "targets": [ + { + "expr": "battery_voltage_v", + "format": "time_series", + "intervalFactor": 2, + "legendFormat": "Battery Voltage", + "metric": "battery_voltage_v", + "refId": "A", + "step": 60 + } + ], + "thresholds": [], + "timeFrom": null, + "timeRegions": [], + "timeShift": null, + "title": "Battery Voltage", + "tooltip": { + "shared": true, + "sort": 0, + "value_type": "individual" + }, + "type": "graph", + "xaxis": { + "buckets": null, + "mode": "time", + "name": null, + "show": true, + "values": [] + }, + "yaxes": [ + { + "format": "short", + "label": null, + "logBase": 1, + "max": null, + "min": null, + "show": true + }, + { + "format": "short", + "label": null, + "logBase": 1, + "max": null, + "min": null, + "show": true + } + ], + "yaxis": { + "align": false, + "alignLevel": null + } + }, + { + "aliasColors": {}, + "bars": false, + "dashLength": 10, + "dashes": false, + "fill": 1, + "gridPos": { + "h": 7, + "w": 12, + "x": 0, + "y": 14 + }, + "id": 7, + "legend": { + "alignAsTable": true, + "avg": true, + "current": false, + "max": true, + "min": true, + "show": true, + "total": false, + "values": true + }, + "lines": true, + "linewidth": 1, + "links": [], + "nullPointMode": "null", + "paceLength": 10, + "percentage": false, + "pointradius": 5, + "points": false, + "renderer": "flot", + "seriesOverrides": [], + "spaceLength": 10, + "stack": false, + "steppedLine": false, + "targets": [ + { + "expr": "mains_power_in_va", + "format": "time_series", + "intervalFactor": 2, + "legendFormat": "Power In", + "metric": "mains_power_in_va", + "refId": "A", + "step": 60 + }, + { + "expr": "mains_power_out_va", + "format": "time_series", + "intervalFactor": 2, + "legendFormat": "Power Out", + "metric": "mains_power_out_va", + "refId": "B", + "step": 60 + } + ], + "thresholds": [], + "timeFrom": null, + "timeRegions": [], + "timeShift": null, + "title": "Power Usage", + "tooltip": { + "shared": true, + "sort": 0, + "value_type": "individual" + }, + "type": "graph", + "xaxis": { + "buckets": null, + "mode": "time", + "name": null, + "show": true, + "values": [] + }, + "yaxes": [ + { + "format": "voltamp", + "label": null, + "logBase": 1, + "max": null, + "min": null, + "show": true + }, + { + "format": "short", + "label": null, + "logBase": 1, + "max": null, + "min": null, + "show": true + } + ], + "yaxis": { + "align": false, + "alignLevel": null + } + }, + { + "aliasColors": {}, + "bars": false, + "dashLength": 10, + "dashes": false, + "fill": 1, + "gridPos": { + "h": 7, + "w": 12, + "x": 12, + "y": 14 + }, + "id": 8, + "legend": { + "alignAsTable": true, + "avg": true, + "current": false, + "max": true, + "min": true, + "show": true, + "total": false, + "values": true + }, + "lines": true, + "linewidth": 1, + "links": [], + "nullPointMode": "null", + "paceLength": 10, + "percentage": false, + "pointradius": 5, + "points": false, + "renderer": "flot", + "seriesOverrides": [ + { + "alias": "Input Voltage", + "color": "#BF1B00" + }, + { + "alias": "Ouput Voltage", + "color": "#E0F9D7" + } + ], + "spaceLength": 10, + "stack": false, + "steppedLine": false, + "targets": [ + { + "expr": "mains_voltage_in_v", + "format": "time_series", + "intervalFactor": 2, + "legendFormat": "Input Voltage", + "metric": "mains_voltage_in_v", + "refId": "A", + "step": 60 + }, + { + "expr": "mains_voltage_out_v", + "format": "time_series", + "intervalFactor": 2, + "legendFormat": "Ouput Voltage", + "metric": "mains_voltage_out_v", + "refId": "B", + "step": 60 + } + ], + "thresholds": [], + "timeFrom": null, + "timeRegions": [], + "timeShift": null, + "title": "Voltage", + "tooltip": { + "shared": true, + "sort": 0, + "value_type": "individual" + }, + "type": "graph", + "xaxis": { + "buckets": null, + "mode": "time", + "name": null, + "show": true, + "values": [] + }, + "yaxes": [ + { + "format": "volt", + "label": null, + "logBase": 1, + "max": null, + "min": null, + "show": true + }, + { + "format": "short", + "label": null, + "logBase": 1, + "max": null, + "min": null, + "show": true + } + ], + "yaxis": { + "align": false, + "alignLevel": null + } + }, + { + "aliasColors": {}, + "bars": false, + "dashLength": 10, + "dashes": false, + "fill": 1, + "gridPos": { + "h": 7, + "w": 12, + "x": 0, + "y": 21 + }, + "id": 10, + "legend": { + "avg": true, + "current": false, + "max": true, + "min": true, + "show": true, + "total": false, + "values": true + }, + "lines": true, + "linewidth": 1, + "links": [], + "nullPointMode": "null", + "paceLength": 10, + "percentage": false, + "pointradius": 5, + "points": false, + "renderer": "flot", + "seriesOverrides": [ + { + "alias": "Input Current", + "color": "#65C5DB" + }, + { + "alias": "Output Current", + "color": "#F4D598" + } + ], + "spaceLength": 10, + "stack": false, + "steppedLine": false, + "targets": [ + { + "expr": "mains_current_in_a", + "format": "time_series", + "intervalFactor": 2, + "legendFormat": "Input Current", + "metric": "mains_current_in_a", + "refId": "A", + "step": 60 + }, + { + "expr": "mains_current_out_a", + "format": "time_series", + "intervalFactor": 2, + "legendFormat": "Output Current", + "metric": "mains_current_out_a", + "refId": "B", + "step": 60 + } + ], + "thresholds": [], + "timeFrom": null, + "timeRegions": [], + "timeShift": null, + "title": "Current", + "tooltip": { + "shared": true, + "sort": 0, + "value_type": "individual" + }, + "type": "graph", + "xaxis": { + "buckets": null, + "mode": "time", + "name": null, + "show": true, + "values": [] + }, + "yaxes": [ + { + "format": "amp", + "label": null, + "logBase": 1, + "max": null, + "min": null, + "show": true + }, + { + "format": "short", + "label": null, + "logBase": 1, + "max": null, + "min": null, + "show": true + } + ], + "yaxis": { + "align": false, + "alignLevel": null + } + }, + { + "aliasColors": {}, + "bars": false, + "dashLength": 10, + "dashes": false, + "fill": 1, + "gridPos": { + "h": 7, + "w": 12, + "x": 12, + "y": 21 + }, + "id": 11, + "legend": { + "alignAsTable": true, + "avg": true, + "current": false, + "max": true, + "min": true, + "show": true, + "total": false, + "values": true + }, + "lines": true, + "linewidth": 1, + "links": [], + "nullPointMode": "null", + "paceLength": 10, + "percentage": false, + "pointradius": 5, + "points": false, + "renderer": "flot", + "seriesOverrides": [ + { + "alias": "Current", + "color": "#70DBED" + } + ], + "spaceLength": 10, + "stack": false, + "steppedLine": false, + "targets": [ + { + "expr": "battery_current_a", + "format": "time_series", + "intervalFactor": 2, + "legendFormat": "Current", + "metric": "battery_current_a", + "refId": "A", + "step": 60 + } + ], + "thresholds": [], + "timeFrom": null, + "timeRegions": [], + "timeShift": null, + "title": "Battery Current", + "tooltip": { + "shared": true, + "sort": 0, + "value_type": "individual" + }, + "type": "graph", + "xaxis": { + "buckets": null, + "mode": "time", + "name": null, + "show": true, + "values": [] + }, + "yaxes": [ + { + "format": "amp", + "label": null, + "logBase": 1, + "max": null, + "min": null, + "show": true + }, + { + "format": "short", + "label": null, + "logBase": 1, + "max": null, + "min": null, + "show": true + } + ], + "yaxis": { + "align": false, + "alignLevel": null + } + }, + { + "aliasColors": {}, + "bars": false, + "dashLength": 10, + "dashes": false, + "fill": 0, + "gridPos": { + "h": 7, + "w": 12, + "x": 0, + "y": 28 + }, + "id": 13, + "legend": { + "avg": false, + "current": false, + "max": false, + "min": false, + "show": true, + "total": false, + "values": false + }, + "lines": true, + "linewidth": 1, + "links": [], + "nullPointMode": "null", + "paceLength": 10, + "percentage": false, + "pointradius": 5, + "points": false, + "renderer": "flot", + "seriesOverrides": [ + { + "alias": "Battery Power", + "color": "#E24D42" + } + ], + "spaceLength": 10, + "stack": false, + "steppedLine": false, + "targets": [ + { + "expr": "battery_power_w", + "format": "time_series", + "intervalFactor": 2, + "legendFormat": "Battery Power", + "refId": "A", + "step": 60 + } + ], + "thresholds": [], + "timeFrom": null, + "timeRegions": [], + "timeShift": null, + "title": "Battery Power", + "tooltip": { + "shared": true, + "sort": 0, + "value_type": "individual" + }, + "type": "graph", + "xaxis": { + "buckets": null, + "mode": "time", + "name": null, + "show": true, + "values": [] + }, + "yaxes": [ + { + "format": "watt", + "label": null, + "logBase": 1, + "max": null, + "min": null, + "show": true + }, + { + "format": "short", + "label": null, + "logBase": 1, + "max": null, + "min": null, + "show": true + } + ], + "yaxis": { + "align": false, + "alignLevel": null + } + }, + { + "aliasColors": {}, + "bars": false, + "dashLength": 10, + "dashes": false, + "fill": 1, + "gridPos": { + "h": 7, + "w": 12, + "x": 12, + "y": 28 + }, + "id": 14, + "legend": { + "avg": false, + "current": false, + "max": false, + "min": false, + "show": true, + "total": false, + "values": false + }, + "lines": true, + "linewidth": 1, + "links": [], + "nullPointMode": "null", + "paceLength": 10, + "percentage": false, + "pointradius": 5, + "points": false, + "renderer": "flot", + "seriesOverrides": [], + "spaceLength": 10, + "stack": false, + "steppedLine": false, + "targets": [ + { + "expr": "battery_charge_percentage", + "format": "time_series", + "intervalFactor": 2, + "legendFormat": "Battery Charge", + "refId": "A", + "step": 60 + } + ], + "thresholds": [], + "timeFrom": null, + "timeRegions": [], + "timeShift": null, + "title": "Battery Charge", + "tooltip": { + "shared": true, + "sort": 0, + "value_type": "individual" + }, + "type": "graph", + "xaxis": { + "buckets": null, + "mode": "time", + "name": null, + "show": true, + "values": [] + }, + "yaxes": [ + { + "format": "percent", + "label": null, + "logBase": 1, + "max": null, + "min": null, + "show": true + }, + { + "format": "short", + "label": null, + "logBase": 1, + "max": null, + "min": null, + "show": true + } + ], + "yaxis": { + "align": false, + "alignLevel": null + } + } + ], + "refresh": false, + "schemaVersion": 18, + "style": "dark", + "tags": [], + "templating": { + "list": [] + }, + "time": { + "from": "now-12h", + "to": "now" + }, + "timepicker": { + "refresh_intervals": [ + "5s", + "10s", + "30s", + "1m", + "5m", + "15m", + "30m", + "1h", + "2h", + "1d" + ], + "time_options": [ + "5m", + "15m", + "1h", + "6h", + "12h", + "24h", + "2d", + "7d", + "30d" + ] + }, + "timezone": "", + "title": "Victron", + "uid": "000000004", + "version": 1 +} \ No newline at end of file