Displays temp, setpoint, heatison and preheat. heatison and preheat are 100% for on, 0 for off, and shown below the temperature graphs.
You need to create a variable first called Room which contains static list of your thermostat names. I also have heatmiser controlling towerl rail timers, so have an exclusion for those.
Attached is the variable settings, and example.
Grafana is awesome! Full marks to VTMikeL (and racarter for the Heatmiser plugin)
- Code: Select all
{
"aliasColors": {
"Heat": "#bf1b00",
"PreHeat": "#e0752d",
"Temp": "#bf1b00"
},
"bars": false,
"dashLength": 10,
"dashes": false,
"datasource": "Indigo",
"fill": 1,
"gridPos": {
"h": 10,
"w": 12,
"x": 0,
"y": 0
},
"id": 2,
"legend": {
"avg": false,
"current": true,
"max": false,
"min": false,
"show": true,
"total": false,
"values": true
},
"lines": true,
"linewidth": 1,
"links": [],
"nullPointMode": "null",
"percentage": false,
"pointradius": 5,
"points": false,
"renderer": "flot",
"repeat": "Room",
"repeatDirection": "h",
"seriesOverrides": [
{
"alias": "TwinsTRV - Valve",
"yaxis": 2
},
{
"alias": "TRV Valve",
"yaxis": 2
},
{
"alias": "PreHeat",
"yaxis": 2
},
{
"alias": "Heat",
"yaxis": 2
}
],
"spaceLength": 10,
"stack": false,
"steppedLine": false,
"targets": [
{
"alias": "Stat SP",
"groupBy": [
{
"params": [
"name"
],
"type": "tag"
}
],
"hide": false,
"measurement": "thermostat_changes",
"orderByTime": "ASC",
"policy": "default",
"query": "SELECT \"state.temperatureInput1\" FROM \"thermostat_changes\" WHERE $timeFilter GROUP BY \"name\"\n",
"rawQuery": false,
"refId": "A",
"resultFormat": "time_series",
"select": [
[
{
"params": [
"heatSetpoint"
],
"type": "field"
}
]
],
"tags": [
{
"key": "name",
"operator": "=~",
"value": "/$Room/"
},
{
"condition": "AND",
"key": "name",
"operator": "!~",
"value": "/Rail/"
}
]
},
{
"alias": "Temp",
"groupBy": [
{
"params": [
"name"
],
"type": "tag"
}
],
"measurement": "thermostat_changes",
"orderByTime": "ASC",
"policy": "default",
"refId": "D",
"resultFormat": "time_series",
"select": [
[
{
"params": [
"state.temperatureInput1"
],
"type": "field"
}
]
],
"tags": [
{
"key": "name",
"operator": "=~",
"value": "/$Room/"
},
{
"condition": "AND",
"key": "name",
"operator": "!~",
"value": "/Rail/"
}
]
},
{
"alias": "PreHeat",
"groupBy": [
{
"params": [
"name"
],
"type": "tag"
}
],
"measurement": "thermostat_changes",
"orderByTime": "ASC",
"policy": "default",
"refId": "B",
"resultFormat": "time_series",
"select": [
[
{
"params": [
"state.preHeat.num"
],
"type": "field"
}
]
],
"tags": [
{
"key": "name",
"operator": "=~",
"value": "/$Room/"
},
{
"condition": "AND",
"key": "name",
"operator": "!~",
"value": "/Rail/"
}
]
},
{
"alias": "Heat",
"groupBy": [
{
"params": [
"name"
],
"type": "tag"
}
],
"measurement": "thermostat_changes",
"orderByTime": "ASC",
"policy": "default",
"refId": "C",
"resultFormat": "time_series",
"select": [
[
{
"params": [
"state.heatIsOn.num"
],
"type": "field"
}
]
],
"tags": [
{
"key": "name",
"operator": "=~",
"value": "/$Room/"
},
{
"condition": "AND",
"key": "name",
"operator": "!~",
"value": "/Rail/"
}
]
}
],
"thresholds": [],
"timeFrom": null,
"timeShift": null,
"title": "$Room Heating",
"tooltip": {
"shared": true,
"sort": 0,
"value_type": "individual"
},
"type": "graph",
"xaxis": {
"buckets": null,
"mode": "time",
"name": null,
"show": true,
"values": []
},
"yaxes": [
{
"format": "celsius",
"label": "Temp",
"logBase": 1,
"max": null,
"min": "-10",
"show": true
},
{
"format": "percentunit",
"label": "Heat On",
"logBase": 1,
"max": "4",
"min": null,
"show": true
}
],
"yaxis": {
"align": false,
"alignLevel": null
},
"minSpan": 12,
"scopedVars": {
"Room": {
"text": "Living Room",
"value": "Living Room",
"selected": false
}
}
}