mirror of
https://github.com/netfun2000/hipudding-teslamate.git
synced 2026-02-27 09:44:28 +08:00
1313 lines
34 KiB
JSON
1313 lines
34 KiB
JSON
{
|
||
"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": 0,
|
||
"links": [
|
||
{
|
||
"icon": "dashboard",
|
||
"tags": [],
|
||
"title": "TeslaMate",
|
||
"tooltip": "",
|
||
"type": "link",
|
||
"url": "${base_url:raw}"
|
||
},
|
||
{
|
||
"asDropdown": true,
|
||
"icon": "external link",
|
||
"tags": [
|
||
"tesla"
|
||
],
|
||
"title": "Dashboards",
|
||
"type": "dashboards"
|
||
}
|
||
],
|
||
"panels": [
|
||
{
|
||
"collapsed": false,
|
||
"gridPos": {
|
||
"h": 1,
|
||
"w": 24,
|
||
"x": 0,
|
||
"y": 0
|
||
},
|
||
"id": 10,
|
||
"panels": [],
|
||
"repeat": "car_id",
|
||
"title": "$car_id",
|
||
"type": "row"
|
||
},
|
||
{
|
||
"datasource": {
|
||
"type": "grafana-postgresql-datasource",
|
||
"uid": "TeslaMate"
|
||
},
|
||
"description": "(Range lost while driving * Efficiency) / Distance driven",
|
||
"fieldConfig": {
|
||
"defaults": {
|
||
"decimals": 0,
|
||
"mappings": [],
|
||
"thresholds": {
|
||
"mode": "absolute",
|
||
"steps": [
|
||
{
|
||
"color": "#c7d0d9",
|
||
"value": null
|
||
}
|
||
]
|
||
},
|
||
"unit": "none"
|
||
},
|
||
"overrides": [
|
||
{
|
||
"matcher": {
|
||
"id": "byName",
|
||
"options": "consumption_km"
|
||
},
|
||
"properties": [
|
||
{
|
||
"id": "unit",
|
||
"value": "Wh/km"
|
||
}
|
||
]
|
||
},
|
||
{
|
||
"matcher": {
|
||
"id": "byName",
|
||
"options": "consumption_mi"
|
||
},
|
||
"properties": [
|
||
{
|
||
"id": "unit",
|
||
"value": "Wh/mi"
|
||
}
|
||
]
|
||
}
|
||
]
|
||
},
|
||
"gridPos": {
|
||
"h": 3,
|
||
"w": 8,
|
||
"x": 0,
|
||
"y": 1
|
||
},
|
||
"id": 4,
|
||
"maxDataPoints": 100,
|
||
"options": {
|
||
"colorMode": "value",
|
||
"fieldOptions": {
|
||
"calcs": [
|
||
"mean"
|
||
]
|
||
},
|
||
"graphMode": "none",
|
||
"justifyMode": "auto",
|
||
"orientation": "horizontal",
|
||
"percentChangeColorMode": "standard",
|
||
"reduceOptions": {
|
||
"calcs": [
|
||
"mean"
|
||
],
|
||
"fields": "",
|
||
"values": false
|
||
},
|
||
"showPercentChange": false,
|
||
"textMode": "value",
|
||
"wideLayout": true
|
||
},
|
||
"pluginVersion": "11.5.2",
|
||
"targets": [
|
||
{
|
||
"datasource": {
|
||
"type": "grafana-postgresql-datasource",
|
||
"uid": "TeslaMate"
|
||
},
|
||
"editorMode": "code",
|
||
"format": "table",
|
||
"group": [],
|
||
"metricColumn": "none",
|
||
"rawQuery": true,
|
||
"rawSql": "select \n sum((start_${preferred_range}_range_km - end_${preferred_range}_range_km) * cars.efficiency) / convert_km(sum(distance)::numeric, '$length_unit') * 1000 AS \"consumption_$length_unit\"\nfrom drives \ninner join cars on cars.id = car_id\nwhere \n distance is not null and\n start_${preferred_range}_range_km - end_${preferred_range}_range_km >= 0.1 and\n car_id = $car_id",
|
||
"refId": "A",
|
||
"select": [
|
||
[
|
||
{
|
||
"params": [
|
||
"latitude"
|
||
],
|
||
"type": "column"
|
||
}
|
||
]
|
||
],
|
||
"sql": {
|
||
"columns": [
|
||
{
|
||
"parameters": [],
|
||
"type": "function"
|
||
}
|
||
],
|
||
"groupBy": [
|
||
{
|
||
"property": {
|
||
"type": "string"
|
||
},
|
||
"type": "groupBy"
|
||
}
|
||
],
|
||
"limit": 50
|
||
},
|
||
"table": "addresses",
|
||
"timeColumn": "inserted_at",
|
||
"timeColumnType": "timestamp",
|
||
"where": [
|
||
{
|
||
"name": "$__timeFilter",
|
||
"params": [],
|
||
"type": "macro"
|
||
}
|
||
]
|
||
}
|
||
],
|
||
"title": "Ø Consumption (net)",
|
||
"type": "stat"
|
||
},
|
||
{
|
||
"datasource": {
|
||
"type": "grafana-postgresql-datasource",
|
||
"uid": "TeslaMate"
|
||
},
|
||
"description": "(Range lost between charges * Efficiency) / Distance driven between charges",
|
||
"fieldConfig": {
|
||
"defaults": {
|
||
"decimals": 0,
|
||
"mappings": [],
|
||
"thresholds": {
|
||
"mode": "absolute",
|
||
"steps": [
|
||
{
|
||
"color": "#c7d0d9",
|
||
"value": null
|
||
}
|
||
]
|
||
},
|
||
"unit": "none"
|
||
},
|
||
"overrides": [
|
||
{
|
||
"matcher": {
|
||
"id": "byName",
|
||
"options": "consumption_km"
|
||
},
|
||
"properties": [
|
||
{
|
||
"id": "unit",
|
||
"value": "Wh/km"
|
||
}
|
||
]
|
||
},
|
||
{
|
||
"matcher": {
|
||
"id": "byName",
|
||
"options": "consumption_mi"
|
||
},
|
||
"properties": [
|
||
{
|
||
"id": "unit",
|
||
"value": "Wh/mi"
|
||
}
|
||
]
|
||
}
|
||
]
|
||
},
|
||
"gridPos": {
|
||
"h": 3,
|
||
"w": 8,
|
||
"x": 8,
|
||
"y": 1
|
||
},
|
||
"id": 8,
|
||
"maxDataPoints": 100,
|
||
"options": {
|
||
"colorMode": "value",
|
||
"fieldOptions": {
|
||
"calcs": [
|
||
"mean"
|
||
]
|
||
},
|
||
"graphMode": "none",
|
||
"justifyMode": "auto",
|
||
"orientation": "horizontal",
|
||
"percentChangeColorMode": "standard",
|
||
"reduceOptions": {
|
||
"calcs": [
|
||
"mean"
|
||
],
|
||
"fields": "",
|
||
"values": false
|
||
},
|
||
"showPercentChange": false,
|
||
"textMode": "value",
|
||
"wideLayout": true
|
||
},
|
||
"pluginVersion": "11.5.2",
|
||
"targets": [
|
||
{
|
||
"datasource": {
|
||
"type": "grafana-postgresql-datasource",
|
||
"uid": "TeslaMate"
|
||
},
|
||
"editorMode": "code",
|
||
"format": "table",
|
||
"group": [],
|
||
"metricColumn": "none",
|
||
"rawQuery": true,
|
||
"rawSql": "WITH d1 AS (\n\tSELECT\n\t\tc.car_id,\n\t\tlag(end_${preferred_range}_range_km) OVER (ORDER BY start_date) - start_${preferred_range}_range_km AS range_loss,\n\t\tp.odometer - lag(p.odometer) OVER (ORDER BY start_date) AS distance\n\tFROM\n\t\tcharging_processes c\n\tLEFT JOIN positions p ON p.id = c.position_id \n\tWHERE\n\t end_date IS NOT NULL AND\n\t c.car_id = $car_id\n\tORDER BY\n\t\tstart_date\n),\nd2 AS (\nSELECT\n\tcar_id,\n\tsum(range_loss) AS range_loss,\n\tsum(distance) AS distance\nFROM\n\td1\nWHERE\n\tdistance >= 0 AND range_loss >= 0\nGROUP BY\n\tcar_id\n)\nSELECT\nrange_loss * c.efficiency / convert_km(distance::numeric, '$length_unit') * 1000 AS \"consumption_$length_unit\"\nFROM\n\td2\n\tLEFT JOIN cars c ON c.id = car_id",
|
||
"refId": "A",
|
||
"select": [
|
||
[
|
||
{
|
||
"params": [
|
||
"latitude"
|
||
],
|
||
"type": "column"
|
||
}
|
||
]
|
||
],
|
||
"sql": {
|
||
"columns": [
|
||
{
|
||
"parameters": [],
|
||
"type": "function"
|
||
}
|
||
],
|
||
"groupBy": [
|
||
{
|
||
"property": {
|
||
"type": "string"
|
||
},
|
||
"type": "groupBy"
|
||
}
|
||
],
|
||
"limit": 50
|
||
},
|
||
"table": "addresses",
|
||
"timeColumn": "inserted_at",
|
||
"timeColumnType": "timestamp",
|
||
"where": [
|
||
{
|
||
"name": "$__timeFilter",
|
||
"params": [],
|
||
"type": "macro"
|
||
}
|
||
]
|
||
}
|
||
],
|
||
"title": "Ø Consumption (gross)",
|
||
"type": "stat"
|
||
},
|
||
{
|
||
"datasource": {
|
||
"type": "grafana-postgresql-datasource",
|
||
"uid": "TeslaMate"
|
||
},
|
||
"description": "Distance of all logged drives",
|
||
"fieldConfig": {
|
||
"defaults": {
|
||
"decimals": 0,
|
||
"mappings": [],
|
||
"thresholds": {
|
||
"mode": "absolute",
|
||
"steps": [
|
||
{
|
||
"color": "#c7d0d9",
|
||
"value": null
|
||
}
|
||
]
|
||
},
|
||
"unit": "none"
|
||
},
|
||
"overrides": [
|
||
{
|
||
"matcher": {
|
||
"id": "byName",
|
||
"options": "distance_km"
|
||
},
|
||
"properties": [
|
||
{
|
||
"id": "unit",
|
||
"value": "km"
|
||
}
|
||
]
|
||
},
|
||
{
|
||
"matcher": {
|
||
"id": "byName",
|
||
"options": "distance_mi"
|
||
},
|
||
"properties": [
|
||
{
|
||
"id": "unit",
|
||
"value": "mi"
|
||
}
|
||
]
|
||
}
|
||
]
|
||
},
|
||
"gridPos": {
|
||
"h": 3,
|
||
"w": 8,
|
||
"x": 16,
|
||
"y": 1
|
||
},
|
||
"id": 6,
|
||
"maxDataPoints": 100,
|
||
"options": {
|
||
"colorMode": "value",
|
||
"fieldOptions": {
|
||
"calcs": [
|
||
"mean"
|
||
]
|
||
},
|
||
"graphMode": "none",
|
||
"justifyMode": "auto",
|
||
"orientation": "horizontal",
|
||
"percentChangeColorMode": "standard",
|
||
"reduceOptions": {
|
||
"calcs": [
|
||
"mean"
|
||
],
|
||
"fields": "",
|
||
"values": false
|
||
},
|
||
"showPercentChange": false,
|
||
"textMode": "value",
|
||
"wideLayout": true
|
||
},
|
||
"pluginVersion": "11.5.2",
|
||
"targets": [
|
||
{
|
||
"datasource": {
|
||
"type": "grafana-postgresql-datasource",
|
||
"uid": "TeslaMate"
|
||
},
|
||
"format": "table",
|
||
"group": [],
|
||
"metricColumn": "none",
|
||
"rawQuery": true,
|
||
"rawSql": "select convert_km(sum(distance)::numeric, '$length_unit') as \"distance_$length_unit\" \nfrom drives \nwhere car_id = $car_id;",
|
||
"refId": "A",
|
||
"select": [
|
||
[
|
||
{
|
||
"params": [
|
||
"latitude"
|
||
],
|
||
"type": "column"
|
||
}
|
||
]
|
||
],
|
||
"table": "addresses",
|
||
"timeColumn": "inserted_at",
|
||
"timeColumnType": "timestamp",
|
||
"where": [
|
||
{
|
||
"name": "$__timeFilter",
|
||
"params": [],
|
||
"type": "macro"
|
||
}
|
||
]
|
||
}
|
||
],
|
||
"title": "Logged Distance",
|
||
"type": "stat"
|
||
},
|
||
{
|
||
"datasource": {
|
||
"type": "grafana-postgresql-datasource",
|
||
"uid": "TeslaMate"
|
||
},
|
||
"fieldConfig": {
|
||
"defaults": {
|
||
"custom": {
|
||
"align": "auto",
|
||
"cellOptions": {
|
||
"type": "auto"
|
||
},
|
||
"filterable": false,
|
||
"inspect": false
|
||
},
|
||
"mappings": [],
|
||
"max": 100,
|
||
"min": 0,
|
||
"thresholds": {
|
||
"mode": "absolute",
|
||
"steps": [
|
||
{
|
||
"color": "green",
|
||
"value": null
|
||
}
|
||
]
|
||
}
|
||
},
|
||
"overrides": [
|
||
{
|
||
"matcher": {
|
||
"id": "byName",
|
||
"options": "outside_temp_c"
|
||
},
|
||
"properties": [
|
||
{
|
||
"id": "displayName",
|
||
"value": "Temperature"
|
||
},
|
||
{
|
||
"id": "unit",
|
||
"value": "celsius"
|
||
},
|
||
{
|
||
"id": "custom.width",
|
||
"value": 125
|
||
}
|
||
]
|
||
},
|
||
{
|
||
"matcher": {
|
||
"id": "byName",
|
||
"options": "outside_temp_f"
|
||
},
|
||
"properties": [
|
||
{
|
||
"id": "displayName",
|
||
"value": "Temperature"
|
||
},
|
||
{
|
||
"id": "unit",
|
||
"value": "fahrenheit"
|
||
},
|
||
{
|
||
"id": "custom.width",
|
||
"value": 125
|
||
}
|
||
]
|
||
},
|
||
{
|
||
"matcher": {
|
||
"id": "byName",
|
||
"options": "efficiency"
|
||
},
|
||
"properties": [
|
||
{
|
||
"id": "displayName",
|
||
"value": "Driving Efficiency"
|
||
},
|
||
{
|
||
"id": "unit",
|
||
"value": "percentunit"
|
||
},
|
||
{
|
||
"id": "decimals",
|
||
"value": 1
|
||
},
|
||
{
|
||
"id": "custom.cellOptions",
|
||
"value": {
|
||
"mode": "lcd",
|
||
"type": "gauge"
|
||
}
|
||
},
|
||
{
|
||
"id": "thresholds",
|
||
"value": {
|
||
"mode": "absolute",
|
||
"steps": [
|
||
{
|
||
"color": "super-light-orange",
|
||
"value": null
|
||
},
|
||
{
|
||
"color": "light-orange",
|
||
"value": 0.65
|
||
},
|
||
{
|
||
"color": "light-green",
|
||
"value": 0.99
|
||
}
|
||
]
|
||
}
|
||
},
|
||
{
|
||
"id": "max",
|
||
"value": 1.15
|
||
},
|
||
{
|
||
"id": "min",
|
||
"value": 0
|
||
}
|
||
]
|
||
},
|
||
{
|
||
"matcher": {
|
||
"id": "byName",
|
||
"options": "consumption_km"
|
||
},
|
||
"properties": [
|
||
{
|
||
"id": "displayName",
|
||
"value": "Ø Consumption (net)"
|
||
},
|
||
{
|
||
"id": "unit",
|
||
"value": "Wh/km"
|
||
},
|
||
{
|
||
"id": "custom.width",
|
||
"value": 200
|
||
}
|
||
]
|
||
},
|
||
{
|
||
"matcher": {
|
||
"id": "byName",
|
||
"options": "consumption_mi"
|
||
},
|
||
"properties": [
|
||
{
|
||
"id": "displayName",
|
||
"value": "Ø Consumption (net)"
|
||
},
|
||
{
|
||
"id": "unit",
|
||
"value": "Wh/mi"
|
||
},
|
||
{
|
||
"id": "custom.width",
|
||
"value": 200
|
||
}
|
||
]
|
||
},
|
||
{
|
||
"matcher": {
|
||
"id": "byName",
|
||
"options": "total_distance_km"
|
||
},
|
||
"properties": [
|
||
{
|
||
"id": "displayName",
|
||
"value": "Distance"
|
||
},
|
||
{
|
||
"id": "unit",
|
||
"value": "km"
|
||
},
|
||
{
|
||
"id": "custom.width",
|
||
"value": 200
|
||
}
|
||
]
|
||
},
|
||
{
|
||
"matcher": {
|
||
"id": "byName",
|
||
"options": "total_distance_mi"
|
||
},
|
||
"properties": [
|
||
{
|
||
"id": "displayName",
|
||
"value": "Distance"
|
||
},
|
||
{
|
||
"id": "unit",
|
||
"value": "mi"
|
||
},
|
||
{
|
||
"id": "custom.width",
|
||
"value": 200
|
||
}
|
||
]
|
||
},
|
||
{
|
||
"matcher": {
|
||
"id": "byName",
|
||
"options": "avg_speed_km"
|
||
},
|
||
"properties": [
|
||
{
|
||
"id": "displayName",
|
||
"value": "Ø Speed"
|
||
},
|
||
{
|
||
"id": "unit",
|
||
"value": "velocitykmh"
|
||
},
|
||
{
|
||
"id": "custom.width",
|
||
"value": 200
|
||
}
|
||
]
|
||
},
|
||
{
|
||
"matcher": {
|
||
"id": "byName",
|
||
"options": "avg_speed_mi"
|
||
},
|
||
"properties": [
|
||
{
|
||
"id": "displayName",
|
||
"value": "Ø Speed"
|
||
},
|
||
{
|
||
"id": "unit",
|
||
"value": "velocitymph"
|
||
},
|
||
{
|
||
"id": "custom.width",
|
||
"value": 200
|
||
}
|
||
]
|
||
}
|
||
]
|
||
},
|
||
"gridPos": {
|
||
"h": 12,
|
||
"w": 24,
|
||
"x": 0,
|
||
"y": 4
|
||
},
|
||
"id": 2,
|
||
"options": {
|
||
"cellHeight": "sm",
|
||
"footer": {
|
||
"countRows": false,
|
||
"fields": "",
|
||
"reducer": [
|
||
"sum"
|
||
],
|
||
"show": false
|
||
},
|
||
"showHeader": true,
|
||
"sortBy": [
|
||
{
|
||
"desc": true,
|
||
"displayName": "Temperature"
|
||
}
|
||
]
|
||
},
|
||
"pluginVersion": "11.5.2",
|
||
"targets": [
|
||
{
|
||
"datasource": {
|
||
"type": "grafana-postgresql-datasource",
|
||
"uid": "TeslaMate"
|
||
},
|
||
"editorMode": "code",
|
||
"format": "table",
|
||
"group": [],
|
||
"metricColumn": "none",
|
||
"rawQuery": true,
|
||
"rawSql": "WITH t AS (\n\tSELECT\n\t CASE WHEN '$temp_unit' = 'C' THEN ROUND(cast(outside_temp_avg AS numeric) / 5, 0) * 5 \n\t\t\t WHEN '$temp_unit' = 'F' THEN ROUND(cast(convert_celsius(outside_temp_avg, '$temp_unit') AS numeric) / 10, 0) * 10\n\t\tEND AS outside_temp,\n\t\tsum(start_ideal_range_km - end_ideal_range_km) AS total_ideal_range,\n\t\tsum(start_rated_range_km - end_rated_range_km) AS total_rated_range,\n\t\tsum(distance) AS total_distance,\n\t\tsum(duration_min) as duration,\n\t\tcar_id\n\tFROM\n\t\tdrives\n\tWHERE\n\t\tdistance IS NOT NULL\n\t\tAND car_id = $car_id\n\t\tAND convert_km(distance::numeric, '$length_unit') >= $min_distance \n\t\tAND start_${preferred_range}_range_km - end_${preferred_range}_range_km > 0.1\n\tGROUP BY\n\t\t1,\n\t\tcar_id\n)\n\nSELECT\n\toutside_temp as outside_temp_$temp_unit,\n total_distance / total_${preferred_range}_range AS efficiency,\n\ttotal_${preferred_range}_range / convert_km(total_distance::numeric, '$length_unit') * c.efficiency * 1000 AS consumption_$length_unit,\n convert_km(total_distance::numeric, '$length_unit') as total_distance_$length_unit,\n\t(convert_km(total_distance::numeric, '$length_unit') / duration) * 60 as avg_speed_$length_unit\nFROM\n\tt\nJOIN cars c ON t.car_id = c.id\nWHERE outside_temp IS NOT NULL\norder by 1 desc\n",
|
||
"refId": "A",
|
||
"select": [
|
||
[
|
||
{
|
||
"params": [
|
||
"latitude"
|
||
],
|
||
"type": "column"
|
||
}
|
||
]
|
||
],
|
||
"sql": {
|
||
"columns": [
|
||
{
|
||
"parameters": [],
|
||
"type": "function"
|
||
}
|
||
],
|
||
"groupBy": [
|
||
{
|
||
"property": {
|
||
"type": "string"
|
||
},
|
||
"type": "groupBy"
|
||
}
|
||
],
|
||
"limit": 50
|
||
},
|
||
"table": "addresses",
|
||
"timeColumn": "inserted_at",
|
||
"timeColumnType": "timestamp",
|
||
"where": [
|
||
{
|
||
"name": "$__timeFilter",
|
||
"params": [],
|
||
"type": "macro"
|
||
}
|
||
]
|
||
}
|
||
],
|
||
"title": "Temperature – Driving Efficiency",
|
||
"type": "table"
|
||
},
|
||
{
|
||
"datasource": {
|
||
"type": "grafana-postgresql-datasource",
|
||
"uid": "TeslaMate"
|
||
},
|
||
"fieldConfig": {
|
||
"defaults": {
|
||
"decimals": 0,
|
||
"mappings": [],
|
||
"thresholds": {
|
||
"mode": "absolute",
|
||
"steps": [
|
||
{
|
||
"color": "#c7d0d9",
|
||
"value": null
|
||
}
|
||
]
|
||
},
|
||
"unit": "short"
|
||
},
|
||
"overrides": [
|
||
{
|
||
"matcher": {
|
||
"id": "byName",
|
||
"options": "efficiency_km"
|
||
},
|
||
"properties": [
|
||
{
|
||
"id": "unit",
|
||
"value": "Wh/km"
|
||
}
|
||
]
|
||
},
|
||
{
|
||
"matcher": {
|
||
"id": "byName",
|
||
"options": "efficiency_mi"
|
||
},
|
||
"properties": [
|
||
{
|
||
"id": "unit",
|
||
"value": "Wh/mi"
|
||
}
|
||
]
|
||
}
|
||
]
|
||
},
|
||
"gridPos": {
|
||
"h": 5,
|
||
"w": 4,
|
||
"x": 0,
|
||
"y": 16
|
||
},
|
||
"id": 14,
|
||
"maxDataPoints": 100,
|
||
"options": {
|
||
"colorMode": "value",
|
||
"fieldOptions": {
|
||
"calcs": [
|
||
"mean"
|
||
]
|
||
},
|
||
"graphMode": "none",
|
||
"justifyMode": "auto",
|
||
"orientation": "horizontal",
|
||
"percentChangeColorMode": "standard",
|
||
"reduceOptions": {
|
||
"calcs": [
|
||
"mean"
|
||
],
|
||
"fields": "",
|
||
"values": false
|
||
},
|
||
"showPercentChange": false,
|
||
"textMode": "value",
|
||
"wideLayout": true
|
||
},
|
||
"pluginVersion": "11.5.2",
|
||
"targets": [
|
||
{
|
||
"datasource": {
|
||
"type": "grafana-postgresql-datasource",
|
||
"uid": "TeslaMate"
|
||
},
|
||
"editorMode": "code",
|
||
"format": "table",
|
||
"group": [],
|
||
"metricColumn": "none",
|
||
"rawQuery": true,
|
||
"rawSql": "SELECT\n\tefficiency / convert_km(1, '$length_unit') * 1000 as \"efficiency_$length_unit\"\nFROM\n\tcars\nWHERE\n\tid = $car_id;",
|
||
"refId": "A",
|
||
"select": [
|
||
[
|
||
{
|
||
"params": [
|
||
"charge_energy_added"
|
||
],
|
||
"type": "column"
|
||
}
|
||
]
|
||
],
|
||
"sql": {
|
||
"columns": [
|
||
{
|
||
"parameters": [],
|
||
"type": "function"
|
||
}
|
||
],
|
||
"groupBy": [
|
||
{
|
||
"property": {
|
||
"type": "string"
|
||
},
|
||
"type": "groupBy"
|
||
}
|
||
],
|
||
"limit": 50
|
||
},
|
||
"table": "charges",
|
||
"timeColumn": "date",
|
||
"timeColumnType": "timestamp",
|
||
"where": [
|
||
{
|
||
"name": "$__timeFilter",
|
||
"params": [],
|
||
"type": "macro"
|
||
}
|
||
]
|
||
}
|
||
],
|
||
"title": "Current $preferred_range efficiency",
|
||
"type": "stat"
|
||
},
|
||
{
|
||
"datasource": {
|
||
"type": "grafana-postgresql-datasource",
|
||
"uid": "TeslaMate"
|
||
},
|
||
"fieldConfig": {
|
||
"defaults": {
|
||
"custom": {
|
||
"align": "auto",
|
||
"cellOptions": {
|
||
"type": "auto"
|
||
},
|
||
"filterable": false,
|
||
"inspect": false
|
||
},
|
||
"mappings": [],
|
||
"thresholds": {
|
||
"mode": "absolute",
|
||
"steps": [
|
||
{
|
||
"color": "green",
|
||
"value": null
|
||
}
|
||
]
|
||
}
|
||
},
|
||
"overrides": [
|
||
{
|
||
"matcher": {
|
||
"id": "byName",
|
||
"options": "efficiency_km"
|
||
},
|
||
"properties": [
|
||
{
|
||
"id": "displayName",
|
||
"value": "Efficiency"
|
||
},
|
||
{
|
||
"id": "unit",
|
||
"value": "Wh/km"
|
||
}
|
||
]
|
||
},
|
||
{
|
||
"matcher": {
|
||
"id": "byName",
|
||
"options": "efficiency_mi"
|
||
},
|
||
"properties": [
|
||
{
|
||
"id": "displayName",
|
||
"value": "Efficiency"
|
||
},
|
||
{
|
||
"id": "unit",
|
||
"value": "Wh/mi"
|
||
}
|
||
]
|
||
}
|
||
]
|
||
},
|
||
"gridPos": {
|
||
"h": 5,
|
||
"w": 10,
|
||
"x": 4,
|
||
"y": 16
|
||
},
|
||
"id": 12,
|
||
"options": {
|
||
"cellHeight": "sm",
|
||
"footer": {
|
||
"countRows": false,
|
||
"fields": "",
|
||
"reducer": [
|
||
"sum"
|
||
],
|
||
"show": false
|
||
},
|
||
"showHeader": true
|
||
},
|
||
"pluginVersion": "11.5.2",
|
||
"targets": [
|
||
{
|
||
"datasource": {
|
||
"type": "grafana-postgresql-datasource",
|
||
"uid": "TeslaMate"
|
||
},
|
||
"editorMode": "code",
|
||
"format": "table",
|
||
"group": [],
|
||
"metricColumn": "none",
|
||
"rawQuery": true,
|
||
"rawSql": "SELECT\n round((charge_energy_added / NULLIF(end_ideal_range_km - start_ideal_range_km, 0))::numeric / convert_km(1, '$length_unit'), 3) * 1000 as \"efficiency_$length_unit\",\n count(*) as count\nFROM\n charging_processes\nWHERE \n car_id = $car_id\n AND duration_min > 10\n AND end_battery_level <= 95\n AND start_ideal_range_km IS NOT NULL\n AND end_ideal_range_km IS NOT NULL\n AND charge_energy_added > 0\nGROUP BY\n 1\nORDER BY\n 2 DESC\nLIMIT 3",
|
||
"refId": "A",
|
||
"select": [
|
||
[
|
||
{
|
||
"params": [
|
||
"charge_energy_added"
|
||
],
|
||
"type": "column"
|
||
}
|
||
]
|
||
],
|
||
"sql": {
|
||
"columns": [
|
||
{
|
||
"parameters": [],
|
||
"type": "function"
|
||
}
|
||
],
|
||
"groupBy": [
|
||
{
|
||
"property": {
|
||
"type": "string"
|
||
},
|
||
"type": "groupBy"
|
||
}
|
||
],
|
||
"limit": 50
|
||
},
|
||
"table": "charges",
|
||
"timeColumn": "date",
|
||
"timeColumnType": "timestamp",
|
||
"where": [
|
||
{
|
||
"name": "$__timeFilter",
|
||
"params": [],
|
||
"type": "macro"
|
||
}
|
||
]
|
||
}
|
||
],
|
||
"title": "Derived ideal efficiencies",
|
||
"type": "table"
|
||
},
|
||
{
|
||
"datasource": {
|
||
"type": "grafana-postgresql-datasource",
|
||
"uid": "TeslaMate"
|
||
},
|
||
"fieldConfig": {
|
||
"defaults": {
|
||
"custom": {
|
||
"align": "auto",
|
||
"cellOptions": {
|
||
"type": "auto"
|
||
},
|
||
"filterable": false,
|
||
"inspect": false
|
||
},
|
||
"mappings": [],
|
||
"thresholds": {
|
||
"mode": "absolute",
|
||
"steps": [
|
||
{
|
||
"color": "green",
|
||
"value": null
|
||
}
|
||
]
|
||
}
|
||
},
|
||
"overrides": [
|
||
{
|
||
"matcher": {
|
||
"id": "byName",
|
||
"options": "efficiency_km"
|
||
},
|
||
"properties": [
|
||
{
|
||
"id": "unit",
|
||
"value": "Wh/km"
|
||
},
|
||
{
|
||
"id": "displayName",
|
||
"value": "Efficiency"
|
||
}
|
||
]
|
||
},
|
||
{
|
||
"matcher": {
|
||
"id": "byName",
|
||
"options": "efficiency_mi"
|
||
},
|
||
"properties": [
|
||
{
|
||
"id": "displayName",
|
||
"value": "Efficiency"
|
||
},
|
||
{
|
||
"id": "unit",
|
||
"value": "Wh/mi"
|
||
}
|
||
]
|
||
}
|
||
]
|
||
},
|
||
"gridPos": {
|
||
"h": 5,
|
||
"w": 10,
|
||
"x": 14,
|
||
"y": 16
|
||
},
|
||
"id": 15,
|
||
"options": {
|
||
"cellHeight": "sm",
|
||
"footer": {
|
||
"countRows": false,
|
||
"fields": "",
|
||
"reducer": [
|
||
"sum"
|
||
],
|
||
"show": false
|
||
},
|
||
"showHeader": true
|
||
},
|
||
"pluginVersion": "11.5.2",
|
||
"targets": [
|
||
{
|
||
"datasource": {
|
||
"type": "grafana-postgresql-datasource",
|
||
"uid": "TeslaMate"
|
||
},
|
||
"editorMode": "code",
|
||
"format": "table",
|
||
"group": [],
|
||
"metricColumn": "none",
|
||
"rawQuery": true,
|
||
"rawSql": "SELECT\n round((charge_energy_added / NULLIF(end_rated_range_km - start_rated_range_km, 0))::numeric / convert_km(1, '$length_unit'), 3) * 1000 as \"efficiency_$length_unit\",\n\tcount(*) as count\nFROM\n charging_processes\nWHERE \n car_id = $car_id\n AND duration_min > 10\n AND end_battery_level <= 95\n AND start_rated_range_km IS NOT NULL\n AND end_rated_range_km IS NOT NULL\n AND charge_energy_added > 0\nGROUP BY\n 1\nORDER BY\n 2 DESC\nLIMIT 3",
|
||
"refId": "A",
|
||
"select": [
|
||
[
|
||
{
|
||
"params": [
|
||
"charge_energy_added"
|
||
],
|
||
"type": "column"
|
||
}
|
||
]
|
||
],
|
||
"sql": {
|
||
"columns": [
|
||
{
|
||
"parameters": [],
|
||
"type": "function"
|
||
}
|
||
],
|
||
"groupBy": [
|
||
{
|
||
"property": {
|
||
"type": "string"
|
||
},
|
||
"type": "groupBy"
|
||
}
|
||
],
|
||
"limit": 50
|
||
},
|
||
"table": "charges",
|
||
"timeColumn": "date",
|
||
"timeColumnType": "timestamp",
|
||
"where": [
|
||
{
|
||
"name": "$__timeFilter",
|
||
"params": [],
|
||
"type": "macro"
|
||
}
|
||
]
|
||
}
|
||
],
|
||
"title": "Derived rated efficiencies",
|
||
"type": "table"
|
||
}
|
||
],
|
||
"preload": false,
|
||
"refresh": "",
|
||
"schemaVersion": 40,
|
||
"tags": [
|
||
"tesla"
|
||
],
|
||
"templating": {
|
||
"list": [
|
||
{
|
||
"current": {},
|
||
"datasource": {
|
||
"type": "grafana-postgresql-datasource",
|
||
"uid": "TeslaMate"
|
||
},
|
||
"definition": "SELECT\n id as __value,\n CASE WHEN COUNT(id) OVER (PARTITION BY name) > 1 AND name IS NOT NULL THEN CONCAT(name, ' - ', RIGHT(vin, 6)) ELSE COALESCE(name, CONCAT('VIN ', vin)) end as __text \nFROM cars\nORDER BY display_priority ASC, name ASC, vin ASC;",
|
||
"hide": 2,
|
||
"includeAll": true,
|
||
"label": "Car",
|
||
"name": "car_id",
|
||
"options": [],
|
||
"query": "SELECT\n id as __value,\n CASE WHEN COUNT(id) OVER (PARTITION BY name) > 1 AND name IS NOT NULL THEN CONCAT(name, ' - ', RIGHT(vin, 6)) ELSE COALESCE(name, CONCAT('VIN ', vin)) end as __text \nFROM cars\nORDER BY display_priority ASC, name ASC, vin ASC;",
|
||
"refresh": 1,
|
||
"regex": "",
|
||
"type": "query"
|
||
},
|
||
{
|
||
"current": {},
|
||
"datasource": {
|
||
"type": "grafana-postgresql-datasource",
|
||
"uid": "TeslaMate"
|
||
},
|
||
"definition": "select unit_of_temperature from settings limit 1;",
|
||
"hide": 2,
|
||
"includeAll": false,
|
||
"name": "temp_unit",
|
||
"options": [],
|
||
"query": "select unit_of_temperature from settings limit 1;",
|
||
"refresh": 1,
|
||
"regex": "",
|
||
"type": "query"
|
||
},
|
||
{
|
||
"current": {},
|
||
"datasource": {
|
||
"type": "grafana-postgresql-datasource",
|
||
"uid": "TeslaMate"
|
||
},
|
||
"definition": "select unit_of_length from settings limit 1;",
|
||
"hide": 2,
|
||
"includeAll": false,
|
||
"name": "length_unit",
|
||
"options": [],
|
||
"query": "select unit_of_length from settings limit 1;",
|
||
"refresh": 1,
|
||
"regex": "",
|
||
"type": "query"
|
||
},
|
||
{
|
||
"current": {},
|
||
"datasource": {
|
||
"type": "grafana-postgresql-datasource",
|
||
"uid": "TeslaMate"
|
||
},
|
||
"definition": "select preferred_range from settings limit 1;",
|
||
"hide": 2,
|
||
"includeAll": false,
|
||
"name": "preferred_range",
|
||
"options": [],
|
||
"query": "select preferred_range from settings limit 1;",
|
||
"refresh": 1,
|
||
"regex": "",
|
||
"type": "query"
|
||
},
|
||
{
|
||
"current": {
|
||
"text": "1",
|
||
"value": "1"
|
||
},
|
||
"includeAll": false,
|
||
"label": "min. distance per drive",
|
||
"name": "min_distance",
|
||
"options": [
|
||
{
|
||
"selected": true,
|
||
"text": "1",
|
||
"value": "1"
|
||
},
|
||
{
|
||
"selected": false,
|
||
"text": "5",
|
||
"value": "5"
|
||
},
|
||
{
|
||
"selected": false,
|
||
"text": "10",
|
||
"value": "10"
|
||
},
|
||
{
|
||
"selected": false,
|
||
"text": "25",
|
||
"value": "25"
|
||
},
|
||
{
|
||
"selected": false,
|
||
"text": "50",
|
||
"value": "50"
|
||
}
|
||
],
|
||
"query": "1, 5, 10, 25, 50",
|
||
"type": "custom"
|
||
},
|
||
{
|
||
"current": {},
|
||
"datasource": {
|
||
"type": "grafana-postgresql-datasource",
|
||
"uid": "TeslaMate"
|
||
},
|
||
"definition": "select base_url from settings limit 1;",
|
||
"hide": 2,
|
||
"includeAll": false,
|
||
"name": "base_url",
|
||
"options": [],
|
||
"query": "select base_url from settings limit 1;",
|
||
"refresh": 1,
|
||
"regex": "",
|
||
"type": "query"
|
||
}
|
||
]
|
||
},
|
||
"time": {
|
||
"from": "now-6h",
|
||
"to": "now"
|
||
},
|
||
"timepicker": {
|
||
"hidden": true
|
||
},
|
||
"timezone": "",
|
||
"title": "Efficiency",
|
||
"uid": "fu4SiQgWz",
|
||
"version": 1,
|
||
"weekStart": ""
|
||
} |