cdzombak / ecobee_influx_connector

Ship your Ecobee runtime, sensor and weather data to InfluxDB.
Apache License 2.0
19 stars 6 forks source link

Add Example Grafana Dashboard #45

Open ryanvs opened 1 year ago

ryanvs commented 1 year ago

It would be great if you added an example Grafana dashboard. I am actually very surprised that I can find zero existing 'ecobee' dashboards: https://grafana.com/grafana/dashboards/?search=ecobee

I haven't used Grafana that much so I'm still trying to figure things out.

cdzombak commented 1 year ago

That's a good idea! I actually don't have an Ecobee-specific dashboard, I just add Ecobee data into some dashboards with data from other sources (1, 2, 3) for home energy usage and home environment.

Here are some individual panels' JSON from my dashboards. Caveat: I don't currently have an Ecobee, so I can't verify these still work as expected … but they should!

Indoor Temp:

{
  "datasource": {
    "type": "influxdb",
    "uid": "4Zm3sSLGk"
  },
  "fieldConfig": {
    "defaults": {
      "custom": {
        "drawStyle": "line",
        "lineInterpolation": "linear",
        "barAlignment": 0,
        "lineWidth": 1,
        "fillOpacity": 0,
        "gradientMode": "none",
        "spanNulls": false,
        "showPoints": "never",
        "pointSize": 5,
        "stacking": {
          "mode": "none",
          "group": "A"
        },
        "axisPlacement": "auto",
        "axisLabel": "",
        "axisColorMode": "text",
        "scaleDistribution": {
          "type": "linear"
        },
        "axisCenteredZero": false,
        "hideFrom": {
          "tooltip": false,
          "viz": false,
          "legend": false
        },
        "thresholdsStyle": {
          "mode": "off"
        }
      },
      "color": {
        "mode": "palette-classic"
      },
      "mappings": [],
      "thresholds": {
        "mode": "absolute",
        "steps": [
          {
            "color": "green",
            "value": null
          },
          {
            "color": "red",
            "value": 80
          }
        ]
      },
      "unit": "fahrenheit"
    },
    "overrides": [
      {
        "matcher": {
          "id": "byName",
          "options": "Basement"
        },
        "properties": [
          {
            "id": "color",
            "value": {
              "fixedColor": "purple",
              "mode": "fixed"
            }
          }
        ]
      },
      {
        "matcher": {
          "id": "byName",
          "options": "HVAC Temp"
        },
        "properties": [
          {
            "id": "color",
            "value": {
              "fixedColor": "green",
              "mode": "fixed"
            }
          }
        ]
      },
      {
        "matcher": {
          "id": "byName",
          "options": "Living Room"
        },
        "properties": [
          {
            "id": "color",
            "value": {
              "fixedColor": "blue",
              "mode": "fixed"
            }
          }
        ]
      },
      {
        "matcher": {
          "id": "byName",
          "options": "HVAC Temp"
        },
        "properties": [
          {
            "id": "custom.lineWidth",
            "value": 2
          }
        ]
      }
    ]
  },
  "gridPos": {
    "h": 8,
    "w": 12,
    "x": 0,
    "y": 0
  },
  "id": 17,
  "options": {
    "tooltip": {
      "mode": "multi",
      "sort": "none"
    },
    "legend": {
      "showLegend": true,
      "displayMode": "list",
      "placement": "bottom",
      "calcs": [
        "lastNotNull"
      ]
    }
  },
  "pluginVersion": "10.0.1",
  "targets": [
    {
      "alias": "[[tag_sensor_name]]",
      "datasource": {
        "type": "influxdb",
        "uid": "4Zm3sSLGk"
      },
      "groupBy": [
        {
          "params": [
            "sensor_name"
          ],
          "type": "tag"
        }
      ],
      "measurement": "ecobee_sensor",
      "orderByTime": "ASC",
      "policy": "default",
      "refId": "A",
      "resultFormat": "time_series",
      "select": [
        [
          {
            "params": [
              "temperature"
            ],
            "type": "field"
          }
        ]
      ],
      "tags": []
    },
    {
      "alias": "HVAC Temp",
      "datasource": {
        "type": "influxdb",
        "uid": "4Zm3sSLGk"
      },
      "groupBy": [],
      "hide": false,
      "measurement": "ecobee_runtime",
      "orderByTime": "ASC",
      "policy": "default",
      "refId": "B",
      "resultFormat": "time_series",
      "select": [
        [
          {
            "params": [
              "temperature"
            ],
            "type": "field"
          }
        ]
      ],
      "tags": []
    }
  ],
  "title": "Indoor Temperature",
  "type": "timeseries"
}

HVAC Equipment Runtime:

{
  "datasource": {
    "type": "influxdb",
    "uid": "4Zm3sSLGk"
  },
  "aliasColors": {
    "AC": "blue",
    "Fan": "green",
    "Furnace": "orange",
    "Humidifier": "dark-blue"
  },
  "bars": false,
  "dashLength": 10,
  "dashes": false,
  "fill": 2,
  "fillGradient": 0,
  "gridPos": {
    "h": 8,
    "w": 12,
    "x": 0,
    "y": 16
  },
  "hiddenSeries": false,
  "id": 26,
  "legend": {
    "avg": false,
    "current": false,
    "max": false,
    "min": false,
    "show": true,
    "total": false,
    "values": false
  },
  "lines": true,
  "linewidth": 1,
  "nullPointMode": "null",
  "options": {
    "alertThreshold": true
  },
  "percentage": false,
  "pluginVersion": "10.0.1",
  "pointradius": 2,
  "points": false,
  "renderer": "flot",
  "seriesOverrides": [],
  "spaceLength": 10,
  "stack": false,
  "steppedLine": true,
  "targets": [
    {
      "alias": "Fan",
      "datasource": {
        "type": "influxdb",
        "uid": "4Zm3sSLGk"
      },
      "groupBy": [],
      "hide": false,
      "measurement": "ecobee_runtime",
      "orderByTime": "ASC",
      "policy": "default",
      "refId": "C",
      "resultFormat": "time_series",
      "select": [
        [
          {
            "params": [
              "fan_run_time"
            ],
            "type": "field"
          }
        ]
      ],
      "tags": []
    },
    {
      "alias": "Furnace",
      "datasource": {
        "type": "influxdb",
        "uid": "4Zm3sSLGk"
      },
      "groupBy": [],
      "measurement": "ecobee_runtime",
      "orderByTime": "ASC",
      "policy": "default",
      "refId": "A",
      "resultFormat": "time_series",
      "select": [
        [
          {
            "params": [
              "aux_heat_1_run_time"
            ],
            "type": "field"
          }
        ]
      ],
      "tags": []
    },
    {
      "alias": "AC",
      "datasource": {
        "type": "influxdb",
        "uid": "4Zm3sSLGk"
      },
      "groupBy": [],
      "hide": false,
      "measurement": "ecobee_runtime",
      "orderByTime": "ASC",
      "policy": "default",
      "refId": "B",
      "resultFormat": "time_series",
      "select": [
        [
          {
            "params": [
              "cool_1_run_time"
            ],
            "type": "field"
          }
        ]
      ],
      "tags": []
    }
  ],
  "thresholds": [],
  "timeRegions": [],
  "title": "HVAC Equipment Runtime",
  "tooltip": {
    "shared": true,
    "sort": 0,
    "value_type": "individual"
  },
  "type": "graph",
  "xaxis": {
    "mode": "time",
    "show": true,
    "values": [],
    "name": null,
    "buckets": null
  },
  "yaxes": [
    {
      "$$hashKey": "object:873",
      "format": "s",
      "logBase": 1,
      "max": "360",
      "show": true
    },
    {
      "$$hashKey": "object:874",
      "format": "short",
      "logBase": 1,
      "show": true
    }
  ],
  "yaxis": {
    "align": false
  },
  "timeFrom": null,
  "timeShift": null
}

This post documents how you can use these JSON documents (in theory, I haven't tried them myself yet).