{ "annotations": { "list": [ { "builtIn": 1, "datasource": { "type": "grafana", "uid": "-- Grafana --" }, "enable": true, "hide": true, "iconColor": "rgba(0, 211, 255, 1)", "name": "Annotations & Alerts", "type": "dashboard" } ] }, "editable": true, "fiscalYearStartMonth": 0, "graphTooltip": 1, "links": [], "liveNow": false, "refresh": "30s", "schemaVersion": 39, "tags": ["econet", "rheem", "water-heater"], "templating": { "list": [ { "current": {}, "hide": 0, "includeAll": false, "label": "Data source", "multi": false, "name": "datasource", "options": [], "query": "prometheus", "refresh": 1, "regex": "", "type": "datasource" }, { "current": {}, "datasource": { "type": "prometheus", "uid": "${datasource}" }, "definition": "label_values(econet_device_info, econet_friendly_name)", "hide": 0, "includeAll": true, "label": "Device", "multi": true, "name": "device", "options": [], "query": { "query": "label_values(econet_device_info, econet_friendly_name)", "refId": "StandardVariableQuery" }, "refresh": 2, "regex": "", "sort": 1, "type": "query" } ] }, "time": { "from": "now-24h", "to": "now" }, "timepicker": {}, "timezone": "", "title": "EcoNet Water Heater", "uid": "econet-exporter", "version": 1, "weekStart": "", "panels": [ { "collapsed": false, "gridPos": { "h": 1, "w": 24, "x": 0, "y": 0 }, "id": 1, "title": "Overview", "type": "row", "panels": [] }, { "datasource": { "type": "prometheus", "uid": "${datasource}" }, "fieldConfig": { "defaults": { "color": { "mode": "thresholds" }, "mappings": [ { "options": { "0": { "color": "red", "index": 1, "text": "Offline" } }, "type": "value" }, { "options": { "1": { "color": "green", "index": 0, "text": "Online" } }, "type": "value" } ], "thresholds": { "mode": "absolute", "steps": [ { "color": "red", "value": null }, { "color": "green", "value": 1 } ] } }, "overrides": [] }, "gridPos": { "h": 4, "w": 4, "x": 0, "y": 1 }, "id": 2, "options": { "colorMode": "background", "graphMode": "none", "justifyMode": "auto", "orientation": "auto", "reduceOptions": { "calcs": ["lastNotNull"], "fields": "", "values": false }, "textMode": "auto" }, "pluginVersion": "11.0.0", "targets": [ { "datasource": { "type": "prometheus", "uid": "${datasource}" }, "expr": "max by (econet_friendly_name) (econet_connected{econet_friendly_name=~\"$device\"})", "instant": true, "legendFormat": "{{econet_friendly_name}}", "refId": "A" } ], "title": "Connected", "type": "stat" }, { "datasource": { "type": "prometheus", "uid": "${datasource}" }, "fieldConfig": { "defaults": { "color": { "mode": "thresholds" }, "mappings": [ { "options": { "0": { "color": "blue", "index": 1, "text": "Idle" } }, "type": "value" }, { "options": { "1": { "color": "orange", "index": 0, "text": "Heating" } }, "type": "value" } ], "thresholds": { "mode": "absolute", "steps": [ { "color": "blue", "value": null }, { "color": "orange", "value": 1 } ] } }, "overrides": [] }, "gridPos": { "h": 4, "w": 4, "x": 4, "y": 1 }, "id": 3, "options": { "colorMode": "background", "graphMode": "none", "justifyMode": "auto", "orientation": "auto", "reduceOptions": { "calcs": ["lastNotNull"], "fields": "", "values": false }, "textMode": "value_and_name" }, "pluginVersion": "11.0.0", "targets": [ { "datasource": { "type": "prometheus", "uid": "${datasource}" }, "expr": "max by (econet_friendly_name) (econet_running{econet_friendly_name=~\"$device\"})", "instant": true, "legendFormat": "{{econet_friendly_name}}", "refId": "A" } ], "title": "Heating State", "type": "stat" }, { "datasource": { "type": "prometheus", "uid": "${datasource}" }, "fieldConfig": { "defaults": { "color": { "mode": "fixed", "fixedColor": "purple" }, "mappings": [], "thresholds": { "mode": "absolute", "steps": [{ "color": "purple", "value": null }] } }, "overrides": [] }, "gridPos": { "h": 4, "w": 4, "x": 8, "y": 1 }, "id": 4, "options": { "colorMode": "background", "graphMode": "none", "justifyMode": "auto", "orientation": "auto", "reduceOptions": { "calcs": ["lastNotNull"], "fields": "", "values": false }, "textMode": "name" }, "pluginVersion": "11.0.0", "targets": [ { "datasource": { "type": "prometheus", "uid": "${datasource}" }, "expr": "max by (econet_friendly_name, econet_mode) (econet_mode{econet_friendly_name=~\"$device\"}) == 1", "instant": true, "legendFormat": "{{econet_mode}}", "refId": "A" } ], "title": "Mode", "type": "stat" }, { "datasource": { "type": "prometheus", "uid": "${datasource}" }, "fieldConfig": { "defaults": { "color": { "mode": "thresholds" }, "mappings": [], "unit": "fahrenheit", "thresholds": { "mode": "absolute", "steps": [ { "color": "blue", "value": null }, { "color": "green", "value": 110 }, { "color": "orange", "value": 130 } ] } }, "overrides": [] }, "gridPos": { "h": 4, "w": 4, "x": 12, "y": 1 }, "id": 5, "options": { "colorMode": "value", "graphMode": "area", "justifyMode": "auto", "orientation": "auto", "reduceOptions": { "calcs": ["lastNotNull"], "fields": "", "values": false }, "textMode": "auto" }, "pluginVersion": "11.0.0", "targets": [ { "datasource": { "type": "prometheus", "uid": "${datasource}" }, "expr": "avg by (econet_friendly_name) (econet_setpoint_fahrenheit{econet_friendly_name=~\"$device\"})", "instant": true, "legendFormat": "{{econet_friendly_name}}", "refId": "A" } ], "title": "Setpoint", "type": "stat" }, { "datasource": { "type": "prometheus", "uid": "${datasource}" }, "fieldConfig": { "defaults": { "color": { "mode": "thresholds" }, "mappings": [], "max": 100, "min": 0, "unit": "percent", "thresholds": { "mode": "absolute", "steps": [ { "color": "red", "value": null }, { "color": "orange", "value": 25 }, { "color": "green", "value": 60 } ] } }, "overrides": [] }, "gridPos": { "h": 4, "w": 4, "x": 16, "y": 1 }, "id": 6, "options": { "orientation": "auto", "reduceOptions": { "calcs": ["lastNotNull"], "fields": "", "values": false }, "showThresholdLabels": false, "showThresholdMarkers": true }, "pluginVersion": "11.0.0", "targets": [ { "datasource": { "type": "prometheus", "uid": "${datasource}" }, "expr": "avg by (econet_friendly_name) (econet_hot_water_availability_percent{econet_friendly_name=~\"$device\"})", "instant": true, "legendFormat": "{{econet_friendly_name}}", "refId": "A" } ], "title": "Hot Water Available", "type": "gauge" }, { "datasource": { "type": "prometheus", "uid": "${datasource}" }, "fieldConfig": { "defaults": { "color": { "mode": "thresholds" }, "mappings": [], "unit": "short", "thresholds": { "mode": "absolute", "steps": [ { "color": "green", "value": null }, { "color": "red", "value": 1 } ] } }, "overrides": [] }, "gridPos": { "h": 4, "w": 4, "x": 20, "y": 1 }, "id": 7, "options": { "colorMode": "background", "graphMode": "none", "justifyMode": "auto", "orientation": "auto", "reduceOptions": { "calcs": ["lastNotNull"], "fields": "", "values": false }, "textMode": "auto" }, "pluginVersion": "11.0.0", "targets": [ { "datasource": { "type": "prometheus", "uid": "${datasource}" }, "expr": "max by (econet_friendly_name) (econet_alert_count{econet_friendly_name=~\"$device\"})", "instant": true, "legendFormat": "{{econet_friendly_name}}", "refId": "A" } ], "title": "Active Alerts", "type": "stat" }, { "collapsed": false, "gridPos": { "h": 1, "w": 24, "x": 0, "y": 5 }, "id": 10, "title": "Temperature & Hot Water", "type": "row", "panels": [] }, { "datasource": { "type": "prometheus", "uid": "${datasource}" }, "fieldConfig": { "defaults": { "color": { "mode": "palette-classic" }, "custom": { "axisCenteredZero": false, "axisColorMode": "text", "axisLabel": "", "axisPlacement": "auto", "barAlignment": 0, "drawStyle": "line", "fillOpacity": 10, "gradientMode": "none", "hideFrom": { "legend": false, "tooltip": false, "viz": false }, "lineInterpolation": "stepAfter", "lineWidth": 2, "pointSize": 5, "scaleDistribution": { "type": "linear" }, "showPoints": "never", "spanNulls": true, "stacking": { "group": "A", "mode": "none" }, "thresholdsStyle": { "mode": "off" } }, "mappings": [], "unit": "fahrenheit" }, "overrides": [ { "matcher": { "id": "byRegexp", "options": ".*min.*" }, "properties": [{ "id": "custom.lineStyle", "value": { "dash": [10, 10], "fill": "dash" } }, { "id": "color", "value": { "mode": "fixed", "fixedColor": "blue" } }] }, { "matcher": { "id": "byRegexp", "options": ".*max.*" }, "properties": [{ "id": "custom.lineStyle", "value": { "dash": [10, 10], "fill": "dash" } }, { "id": "color", "value": { "mode": "fixed", "fixedColor": "red" } }] } ] }, "gridPos": { "h": 8, "w": 12, "x": 0, "y": 6 }, "id": 11, "options": { "legend": { "calcs": ["lastNotNull", "min", "max"], "displayMode": "table", "placement": "bottom", "showLegend": true }, "tooltip": { "mode": "multi", "sort": "desc" } }, "targets": [ { "datasource": { "type": "prometheus", "uid": "${datasource}" }, "expr": "avg by (econet_friendly_name) (econet_setpoint_fahrenheit{econet_friendly_name=~\"$device\"})", "legendFormat": "{{econet_friendly_name}} setpoint", "refId": "A" }, { "datasource": { "type": "prometheus", "uid": "${datasource}" }, "expr": "min by (econet_friendly_name) (econet_setpoint_min_fahrenheit{econet_friendly_name=~\"$device\"})", "legendFormat": "{{econet_friendly_name}} min", "refId": "B" }, { "datasource": { "type": "prometheus", "uid": "${datasource}" }, "expr": "max by (econet_friendly_name) (econet_setpoint_max_fahrenheit{econet_friendly_name=~\"$device\"})", "legendFormat": "{{econet_friendly_name}} max", "refId": "C" } ], "title": "Setpoint (with allowed range)", "type": "timeseries" }, { "datasource": { "type": "prometheus", "uid": "${datasource}" }, "fieldConfig": { "defaults": { "color": { "mode": "palette-classic" }, "custom": { "axisCenteredZero": false, "axisColorMode": "text", "axisLabel": "", "axisPlacement": "auto", "barAlignment": 0, "drawStyle": "line", "fillOpacity": 20, "gradientMode": "opacity", "hideFrom": { "legend": false, "tooltip": false, "viz": false }, "lineInterpolation": "smooth", "lineWidth": 2, "pointSize": 5, "scaleDistribution": { "type": "linear" }, "showPoints": "never", "spanNulls": true, "stacking": { "group": "A", "mode": "none" }, "thresholdsStyle": { "mode": "off" } }, "mappings": [], "max": 100, "min": 0, "unit": "percent" }, "overrides": [] }, "gridPos": { "h": 8, "w": 12, "x": 12, "y": 6 }, "id": 12, "options": { "legend": { "calcs": ["lastNotNull", "min"], "displayMode": "table", "placement": "bottom", "showLegend": true }, "tooltip": { "mode": "multi", "sort": "desc" } }, "targets": [ { "datasource": { "type": "prometheus", "uid": "${datasource}" }, "expr": "avg by (econet_friendly_name) (econet_hot_water_availability_percent{econet_friendly_name=~\"$device\"})", "legendFormat": "{{econet_friendly_name}}", "refId": "A" } ], "title": "Hot Water Availability", "type": "timeseries" }, { "collapsed": false, "gridPos": { "h": 1, "w": 24, "x": 0, "y": 14 }, "id": 20, "title": "Energy & Water", "type": "row", "panels": [] }, { "datasource": { "type": "prometheus", "uid": "${datasource}" }, "fieldConfig": { "defaults": { "color": { "mode": "palette-classic" }, "custom": { "axisCenteredZero": false, "axisColorMode": "text", "axisLabel": "", "axisPlacement": "auto", "barAlignment": 0, "drawStyle": "bars", "fillOpacity": 60, "gradientMode": "none", "hideFrom": { "legend": false, "tooltip": false, "viz": false }, "lineInterpolation": "linear", "lineWidth": 1, "pointSize": 5, "scaleDistribution": { "type": "linear" }, "showPoints": "never", "spanNulls": true, "stacking": { "group": "A", "mode": "none" }, "thresholdsStyle": { "mode": "off" } }, "mappings": [], "unit": "kwatth" }, "overrides": [] }, "gridPos": { "h": 8, "w": 8, "x": 0, "y": 15 }, "id": 21, "options": { "legend": { "calcs": ["lastNotNull", "max"], "displayMode": "table", "placement": "bottom", "showLegend": true }, "tooltip": { "mode": "multi", "sort": "desc" } }, "targets": [ { "datasource": { "type": "prometheus", "uid": "${datasource}" }, "expr": "max by (econet_friendly_name) (econet_energy_usage_kwh * on(econet_serial) group_left(econet_friendly_name) econet_device_info{econet_friendly_name=~\"$device\"})", "legendFormat": "{{econet_friendly_name}}", "refId": "A" } ], "title": "Energy Usage Today (kWh)", "type": "timeseries" }, { "datasource": { "type": "prometheus", "uid": "${datasource}" }, "fieldConfig": { "defaults": { "color": { "mode": "palette-classic" }, "custom": { "axisCenteredZero": false, "axisColorMode": "text", "axisLabel": "", "axisPlacement": "auto", "barAlignment": 0, "drawStyle": "bars", "fillOpacity": 60, "gradientMode": "none", "hideFrom": { "legend": false, "tooltip": false, "viz": false }, "lineInterpolation": "linear", "lineWidth": 1, "pointSize": 5, "scaleDistribution": { "type": "linear" }, "showPoints": "never", "spanNulls": true, "stacking": { "group": "A", "mode": "none" }, "thresholdsStyle": { "mode": "off" } }, "mappings": [], "unit": "currencyUSD" }, "overrides": [] }, "gridPos": { "h": 8, "w": 8, "x": 8, "y": 15 }, "id": 22, "options": { "legend": { "calcs": ["lastNotNull", "max"], "displayMode": "table", "placement": "bottom", "showLegend": true }, "tooltip": { "mode": "multi", "sort": "desc" } }, "targets": [ { "datasource": { "type": "prometheus", "uid": "${datasource}" }, "expr": "max by (econet_friendly_name) (econet_energy_cost_dollars * on(econet_serial) group_left(econet_friendly_name) econet_device_info{econet_friendly_name=~\"$device\"})", "legendFormat": "{{econet_friendly_name}}", "refId": "A" } ], "title": "Energy Cost Today ($)", "type": "timeseries" }, { "datasource": { "type": "prometheus", "uid": "${datasource}" }, "fieldConfig": { "defaults": { "color": { "mode": "palette-classic" }, "custom": { "axisCenteredZero": false, "axisColorMode": "text", "axisLabel": "", "axisPlacement": "auto", "barAlignment": 0, "drawStyle": "bars", "fillOpacity": 60, "gradientMode": "none", "hideFrom": { "legend": false, "tooltip": false, "viz": false }, "lineInterpolation": "linear", "lineWidth": 1, "pointSize": 5, "scaleDistribution": { "type": "linear" }, "showPoints": "never", "spanNulls": true, "stacking": { "group": "A", "mode": "none" }, "thresholdsStyle": { "mode": "off" } }, "mappings": [], "unit": "volgal" }, "overrides": [] }, "gridPos": { "h": 8, "w": 8, "x": 16, "y": 15 }, "id": 23, "options": { "legend": { "calcs": ["lastNotNull", "max"], "displayMode": "table", "placement": "bottom", "showLegend": true }, "tooltip": { "mode": "multi", "sort": "desc" } }, "targets": [ { "datasource": { "type": "prometheus", "uid": "${datasource}" }, "expr": "max by (econet_friendly_name) (econet_water_usage_gallons * on(econet_serial) group_left(econet_friendly_name) econet_device_info{econet_friendly_name=~\"$device\"})", "legendFormat": "{{econet_friendly_name}}", "refId": "A" } ], "title": "Water Usage Today (gal)", "type": "timeseries" }, { "collapsed": false, "gridPos": { "h": 1, "w": 24, "x": 0, "y": 23 }, "id": 30, "title": "Device Health", "type": "row", "panels": [] }, { "datasource": { "type": "prometheus", "uid": "${datasource}" }, "fieldConfig": { "defaults": { "color": { "mode": "thresholds" }, "custom": { "fillOpacity": 80, "lineWidth": 0 }, "mappings": [ { "options": { "0": { "color": "blue", "index": 1, "text": "Idle" } }, "type": "value" }, { "options": { "1": { "color": "orange", "index": 0, "text": "Heating" } }, "type": "value" } ], "thresholds": { "mode": "absolute", "steps": [ { "color": "blue", "value": null }, { "color": "orange", "value": 1 } ] } }, "overrides": [] }, "gridPos": { "h": 8, "w": 12, "x": 0, "y": 24 }, "id": 31, "options": { "alignValue": "left", "legend": { "displayMode": "list", "placement": "bottom", "showLegend": true }, "mergeValues": true, "rowHeight": 0.9, "showValue": "auto", "tooltip": { "mode": "single", "sort": "none" } }, "targets": [ { "datasource": { "type": "prometheus", "uid": "${datasource}" }, "expr": "max by (econet_friendly_name) (econet_running{econet_friendly_name=~\"$device\"})", "legendFormat": "{{econet_friendly_name}}", "refId": "A" } ], "title": "Heating Timeline", "type": "state-timeline" }, { "datasource": { "type": "prometheus", "uid": "${datasource}" }, "fieldConfig": { "defaults": { "color": { "mode": "palette-classic" }, "custom": { "axisCenteredZero": false, "axisColorMode": "text", "axisLabel": "", "axisPlacement": "auto", "barAlignment": 0, "drawStyle": "line", "fillOpacity": 10, "gradientMode": "none", "hideFrom": { "legend": false, "tooltip": false, "viz": false }, "lineInterpolation": "linear", "lineWidth": 2, "pointSize": 5, "scaleDistribution": { "type": "linear" }, "showPoints": "never", "spanNulls": true, "stacking": { "group": "A", "mode": "none" }, "thresholdsStyle": { "mode": "off" } }, "mappings": [], "unit": "dB" }, "overrides": [] }, "gridPos": { "h": 8, "w": 6, "x": 12, "y": 24 }, "id": 32, "options": { "legend": { "calcs": ["lastNotNull"], "displayMode": "list", "placement": "bottom", "showLegend": true }, "tooltip": { "mode": "multi", "sort": "desc" } }, "targets": [ { "datasource": { "type": "prometheus", "uid": "${datasource}" }, "expr": "avg by (econet_friendly_name) (econet_wifi_signal_db{econet_friendly_name=~\"$device\"})", "legendFormat": "{{econet_friendly_name}}", "refId": "A" } ], "title": "WiFi Signal", "type": "timeseries" }, { "datasource": { "type": "prometheus", "uid": "${datasource}" }, "fieldConfig": { "defaults": { "color": { "mode": "thresholds" }, "custom": { "align": "auto", "cellOptions": { "type": "auto" }, "inspect": false }, "mappings": [], "thresholds": { "mode": "absolute", "steps": [{ "color": "green", "value": null }] } }, "overrides": [] }, "gridPos": { "h": 8, "w": 6, "x": 18, "y": 24 }, "id": 33, "options": { "cellHeight": "sm", "footer": { "countRows": false, "fields": "", "reducer": ["sum"], "show": false }, "showHeader": true }, "pluginVersion": "11.0.0", "targets": [ { "datasource": { "type": "prometheus", "uid": "${datasource}" }, "expr": "econet_device_info{econet_friendly_name=~\"$device\"}", "format": "table", "instant": true, "refId": "A" } ], "title": "Device Info", "transformations": [ { "id": "organize", "options": { "excludeByName": { "Time": true, "Value": true, "__name__": true, "job": true, "instance": true }, "indexByName": {}, "renameByName": { "econet_friendly_name": "Name", "econet_serial": "Serial", "econet_device_id": "Device ID", "econet_type": "Type", "econet_generic_type": "Generic Type", "econet_mode": "Mode" } } } ], "type": "table" } ] }