diff --git a/docker_configs/dashboard-definitions/ASSUME.json b/docker_configs/dashboard-definitions/ASSUME.json index 14e7bc69..75706a16 100644 --- a/docker_configs/dashboard-definitions/ASSUME.json +++ b/docker_configs/dashboard-definitions/ASSUME.json @@ -232,8 +232,8 @@ "legend": { "calcs": [ "min", - "mean", - "max" + "max", + "mean" ], "displayMode": "table", "placement": "bottom", @@ -259,7 +259,7 @@ "group": [], "metricColumn": "none", "rawQuery": true, - "rawSql": "SELECT\n product_start AS \"time\",\n demand_volume AS \"Demand Volume\",\n supply_volume AS \"Supply Volume\"\nFROM market_meta\nWHERE (\"simulation\" LIKE '$simulation') AND (\"market_id\" LIKE '$market') AND $__timeFilter(product_start)\nGROUP BY market_id, simulation, product_start, demand_volume, supply_volume\nORDER BY 1;\n", + "rawSql": "SELECT\n product_start AS \"time\",\n demand_volume AS \"Demand volume\",\n supply_volume AS \"Supply volume\"\nFROM market_meta\nWHERE (\"simulation\" LIKE '$simulation') AND (\"market_id\" LIKE '$market') AND $__timeFilter(product_start)\nGROUP BY market_id, simulation, product_start, demand_volume, supply_volume\nORDER BY 1;\n", "refId": "Volume", "select": [ [ @@ -365,8 +365,7 @@ "mode": "absolute", "steps": [ { - "color": "green", - "value": null + "color": "green" }, { "color": "red", @@ -379,10 +378,10 @@ "overrides": [] }, "gridPos": { - "h": 8, + "h": 9, "w": 12, "x": 0, - "y": 20 + "y": 296 }, "id": 19, "options": { @@ -391,7 +390,7 @@ "mean" ], "displayMode": "table", - "placement": "right", + "placement": "bottom", "showLegend": true }, "tooltip": { @@ -423,7 +422,7 @@ ], "metricColumn": "none", "rawQuery": true, - "rawSql": "SELECT\n $__timeGroupAlias(start_time,$__interval),\n avg(original_price) AS \" \",\n bid_id AS \"bid_id\"\nFROM market_orders\nWHERE\n $__timeFilter(start_time) AND\n market_id = '$market' AND\n simulation = '$simulation'\nGROUP BY 1, bid_id\nORDER BY 1", + "rawSql": "SELECT\n $__timeGroupAlias(start_time,$__interval),\n avg(accepted_price) AS \" \",\n bid_id AS \"bid_id\"\nFROM market_orders\nWHERE\n $__timeFilter(start_time) AND\n market_id = '$market' AND\n simulation = '$simulation'\nGROUP BY 1, bid_id\nORDER BY 1", "refId": "A", "select": [ [ @@ -556,10 +555,10 @@ "overrides": [] }, "gridPos": { - "h": 8, + "h": 9, "w": 12, "x": 12, - "y": 20 + "y": 296 }, "id": 20, "options": { @@ -568,7 +567,7 @@ "mean" ], "displayMode": "table", - "placement": "right", + "placement": "bottom", "showLegend": true }, "tooltip": { @@ -600,7 +599,7 @@ ], "metricColumn": "none", "rawQuery": true, - "rawSql": "SELECT\n $__timeGroupAlias(start_time,$__interval),\n avg(volume) AS \" \",\n bid_id AS \"bid_id\"\nFROM market_orders\nWHERE\n $__timeFilter(start_time) AND\n market_id = '$market' AND\n simulation = '$simulation'\nGROUP BY 1, bid_id\nORDER BY 1", + "rawSql": "SELECT\n $__timeGroupAlias(start_time,$__interval),\n avg(accepted_volume) AS \" \",\n bid_id AS \"bid_id\"\nFROM market_orders\nWHERE\n $__timeFilter(start_time) AND\n market_id = '$market' AND\n simulation = '$simulation'\nGROUP BY 1, bid_id\nORDER BY 1", "refId": "A", "select": [ [ @@ -679,7 +678,7 @@ "h": 1, "w": 24, "x": 0, - "y": 28 + "y": 305 }, "id": 74, "panels": [], @@ -718,7 +717,8 @@ "mode": "absolute", "steps": [ { - "color": "green" + "color": "green", + "value": null }, { "color": "red", @@ -767,7 +767,7 @@ "h": 12, "w": 10, "x": 0, - "y": 29 + "y": 306 }, "id": 72, "options": { @@ -847,7 +847,8 @@ "mode": "absolute", "steps": [ { - "color": "green" + "color": "green", + "value": null }, { "color": "red", @@ -900,7 +901,7 @@ "h": 12, "w": 9, "x": 10, - "y": 29 + "y": 306 }, "id": 76, "options": { @@ -985,7 +986,7 @@ "h": 12, "w": 5, "x": 19, - "y": 29 + "y": 306 }, "id": 7, "options": { @@ -1078,7 +1079,7 @@ "h": 3, "w": 24, "x": 0, - "y": 41 + "y": 318 }, "id": 22, "options": { @@ -1133,7 +1134,7 @@ "h": 1, "w": 24, "x": 0, - "y": 44 + "y": 321 }, "id": 41, "panels": [], @@ -1204,13 +1205,17 @@ "h": 9, "w": 18, "x": 0, - "y": 45 + "y": 322 }, "id": 24, "options": { "legend": { - "calcs": [], - "displayMode": "list", + "calcs": [ + "min", + "max", + "mean" + ], + "displayMode": "table", "placement": "bottom", "showLegend": true }, @@ -1230,7 +1235,7 @@ "hide": false, "metricColumn": "none", "rawQuery": true, - "rawSql": "SELECT\n $__timeGroupAlias(datetime,$__interval),\n power AS \"market_dispatch\",\n unit_id,\n market_id\nFROM market_dispatch\nWHERE\n $__timeFilter(datetime) AND\n simulation = '$simulation' AND\n unit_id in ($Gen_Units)\nGROUP BY 1, unit_id, power, market_id\nORDER BY 1", + "rawSql": "SELECT\n $__timeGroupAlias(datetime,$__interval),\n avg(power) AS \"Market dispatch\",\n concat(unit_id, ' - ', market_id) as \"unit_id\"\nFROM market_dispatch\nWHERE\n $__timeFilter(datetime) AND\n simulation = '$simulation' AND\n unit_id in ($Gen_Units)\nGROUP BY 1, unit_id, power, market_id\nORDER BY 1", "refId": "A", "select": [ [ @@ -1263,7 +1268,7 @@ "hide": false, "metricColumn": "none", "rawQuery": true, - "rawSql": "SELECT\n $__timeGroupAlias(index,$__interval),\n power AS \"dispatch\",\n unit\nFROM unit_dispatch\nWHERE\n $__timeFilter(index) AND\n simulation = '$simulation' AND\n unit in ($Gen_Units)\nGROUP BY 1, unit, power\nORDER BY 1", + "rawSql": "SELECT\n $__timeGroupAlias(index,$__interval),\n avg(power) AS \"Actual dispatch\",\n unit\nFROM unit_dispatch\nWHERE\n $__timeFilter(index) AND\n simulation = '$simulation' AND\n unit in ($Gen_Units)\nGROUP BY 1, unit, power\nORDER BY 1", "refId": "B", "select": [ [ @@ -1301,7 +1306,8 @@ "mode": "absolute", "steps": [ { - "color": "green" + "color": "green", + "value": null }, { "color": "red", @@ -1316,7 +1322,7 @@ "h": 9, "w": 6, "x": 18, - "y": 45 + "y": 322 }, "id": 26, "options": { @@ -1417,7 +1423,8 @@ "mode": "absolute", "steps": [ { - "color": "green" + "color": "green", + "value": null }, { "color": "red", @@ -1446,13 +1453,17 @@ "h": 8, "w": 12, "x": 0, - "y": 54 + "y": 331 }, "id": 70, "options": { "legend": { - "calcs": [], - "displayMode": "list", + "calcs": [ + "min", + "max", + "mean" + ], + "displayMode": "table", "placement": "bottom", "showLegend": true }, @@ -1486,7 +1497,7 @@ ], "metricColumn": "none", "rawQuery": true, - "rawSql": "SELECT\r\n $__timeGroupAlias(start_time,$__interval),\r\n accepted_price AS \"market_price\",\r\n price AS \"bid_price\",\r\n concat(unit_id, ' - ', market_id) as \"unit_id\"\r\nFROM market_orders\r\nWHERE\r\n $__timeFilter(start_time) AND\r\n unit_id in ($Gen_Units) AND\r\n simulation = '$simulation'\r\nGROUP BY 1, unit_id, market_id, price, accepted_price\r\nORDER BY 1", + "rawSql": "SELECT\r\n $__timeGroupAlias(start_time,$__interval),\r\n accepted_price AS \"Accepted price:\",\r\n price AS \"Bid price:\",\r\n concat(unit_id, ' - ', market_id) as \"unit_id\"\r\nFROM market_orders\r\nWHERE\r\n $__timeFilter(start_time) AND\r\n unit_id in ($Gen_Units) AND\r\n simulation = '$simulation'\r\nGROUP BY 1, unit_id, market_id, price, accepted_price\r\nORDER BY 1", "refId": "A", "select": [ [ @@ -1556,7 +1567,7 @@ ] } ], - "title": "Accepted Bid Prices", + "title": "Bid Prices", "type": "timeseries" }, { @@ -1605,7 +1616,8 @@ "mode": "absolute", "steps": [ { - "color": "green" + "color": "green", + "value": null }, { "color": "red", @@ -1649,13 +1661,17 @@ "h": 8, "w": 12, "x": 12, - "y": 54 + "y": 331 }, "id": 78, "options": { "legend": { - "calcs": [], - "displayMode": "list", + "calcs": [ + "min", + "max", + "mean" + ], + "displayMode": "table", "placement": "bottom", "showLegend": true }, @@ -1674,7 +1690,7 @@ "group": [], "metricColumn": "none", "rawQuery": true, - "rawSql": "SELECT\r\n $__timeGroupAlias(start_time,$__interval),\r\n avg(accepted_volume) AS \"accepted_volume\",\r\n unit_id\r\nFROM market_orders\r\nWHERE\r\n $__timeFilter(start_time) AND\r\n unit_id in ($Gen_Units) AND\r\n simulation = '$simulation'\r\nGROUP BY 1, unit_id\r\nORDER BY 1\r\n", + "rawSql": "SELECT\r\n $__timeGroupAlias(start_time,$__interval),\r\n avg(accepted_volume) AS \"Accepted volume:\",\r\n concat(unit_id, ' - ', market_id) as \"unit_id\"\r\nFROM market_orders\r\nWHERE\r\n $__timeFilter(start_time) AND\r\n unit_id in ($Gen_Units) AND\r\n simulation = '$simulation'\r\nGROUP BY 1, unit_id, market_id\r\nORDER BY 1\r\n", "refId": "A", "select": [ [ @@ -1707,7 +1723,7 @@ "hide": false, "metricColumn": "none", "rawQuery": true, - "rawSql": "SELECT\r\n $__timeGroupAlias(start_time,$__interval),\r\n avg(volume) AS \"bid_volume\",\r\n unit_id\r\nFROM market_orders\r\nWHERE\r\n $__timeFilter(start_time) AND\r\n unit_id in ($Gen_Units) AND\r\n simulation = '$simulation'\r\nGROUP BY 1, unit_id\r\nORDER BY 1", + "rawSql": "SELECT\r\n $__timeGroupAlias(start_time,$__interval),\r\n avg(volume) AS \"Bid volume:\",\r\n unit_id\r\nFROM market_orders\r\nWHERE\r\n $__timeFilter(start_time) AND\r\n unit_id in ($Gen_Units) AND\r\n simulation = '$simulation'\r\nGROUP BY 1, unit_id\r\nORDER BY 1", "refId": "B", "select": [ [ @@ -1731,7 +1747,7 @@ ] } ], - "title": "Volume Acceptance Ratio", + "title": "Bid volume", "transformations": [ { "id": "calculateField", @@ -1825,16 +1841,21 @@ ] }, "gridPos": { - "h": 10, + "h": 9, "w": 24, "x": 0, - "y": 62 + "y": 339 }, "id": 82, "options": { "legend": { - "calcs": [], - "displayMode": "list", + "calcs": [ + "min", + "max", + "mean", + "sum" + ], + "displayMode": "table", "placement": "bottom", "showLegend": true }, @@ -1854,7 +1875,7 @@ "group": [], "metricColumn": "none", "rawQuery": true, - "rawSql": "SELECT\r\n $__timeGroupAlias(index,$__interval),\r\n energy_cashflow AS \"energy_cashflow\",\r\n unit\r\nFROM unit_dispatch\r\nWHERE\r\n $__timeFilter(index) AND\r\n simulation = '$simulation' AND\r\n unit in ($Gen_Units)\r\nGROUP BY 1, unit, energy_cashflow\r\nORDER BY 1", + "rawSql": "SELECT\r\n $__timeGroupAlias(index,$__interval),\r\n energy_cashflow AS \"Cashflow\",\r\n unit\r\nFROM unit_dispatch\r\nWHERE\r\n $__timeFilter(index) AND\r\n simulation = '$simulation' AND\r\n unit in ($Gen_Units)\r\nGROUP BY 1, unit, energy_cashflow\r\nORDER BY 1", "refId": "A", "select": [ [ @@ -1887,7 +1908,7 @@ "hide": false, "metricColumn": "none", "rawQuery": true, - "rawSql": "SELECT\r\n $__timeGroupAlias(index,$__interval),\r\n energy_marginal_costs AS \"energy_marginal_costs\",\r\n unit\r\nFROM unit_dispatch\r\nWHERE\r\n $__timeFilter(index) AND\r\n simulation = '$simulation' AND\r\n unit in ($Gen_Units)\r\nGROUP BY 1, unit, energy_marginal_costs\r\nORDER BY 1", + "rawSql": "SELECT\r\n $__timeGroupAlias(index,$__interval),\r\n energy_marginal_costs AS \"Production costs\",\r\n unit\r\nFROM unit_dispatch\r\nWHERE\r\n $__timeFilter(index) AND\r\n simulation = '$simulation' AND\r\n unit in ($Gen_Units)\r\nGROUP BY 1, unit, energy_marginal_costs\r\nORDER BY 1", "refId": "B", "select": [ [ @@ -1920,7 +1941,7 @@ "h": 1, "w": 24, "x": 0, - "y": 72 + "y": 348 }, "id": 39, "panels": [], @@ -1988,13 +2009,17 @@ "h": 9, "w": 18, "x": 0, - "y": 73 + "y": 349 }, "id": 36, "options": { "legend": { - "calcs": [], - "displayMode": "list", + "calcs": [ + "min", + "max", + "mean" + ], + "displayMode": "table", "placement": "bottom", "showLegend": true }, @@ -2013,7 +2038,7 @@ "group": [], "metricColumn": "none", "rawQuery": true, - "rawSql": "SELECT\n $__timeGroupAlias(datetime,$__interval),\n power AS \"power\",\n unit_id,\n market_id\nFROM market_dispatch\nWHERE\n $__timeFilter(datetime) AND\n simulation = '$simulation' AND\n unit_id in ($Demand_Units)\nGROUP BY 1, unit_id, power, market_id\nORDER BY 1", + "rawSql": "SELECT\n $__timeGroupAlias(datetime,$__interval),\n power AS \"Market dispatch\",\n concat(unit_id, ' - ', market_id) as \"unit_id\"\nFROM market_dispatch\nWHERE\n $__timeFilter(datetime) AND\n simulation = '$simulation' AND\n unit_id in ($Demand_Units)\nGROUP BY 1, unit_id, power, market_id\nORDER BY 1", "refId": "A", "select": [ [ @@ -2046,7 +2071,7 @@ "hide": false, "metricColumn": "none", "rawQuery": true, - "rawSql": "SELECT\n $__timeGroupAlias(index,$__interval),\n power AS \"dispatch\",\n unit\nFROM unit_dispatch\nWHERE\n $__timeFilter(index) AND\n simulation = '$simulation' AND\n unit in ($Demand_Units)\nGROUP BY 1, unit, power\nORDER BY 1", + "rawSql": "SELECT\n $__timeGroupAlias(index,$__interval),\n power AS \"Actual dispatch\",\n unit\nFROM unit_dispatch\nWHERE\n $__timeFilter(index) AND\n simulation = '$simulation' AND\n unit in ($Demand_Units)\nGROUP BY 1, unit, power\nORDER BY 1", "refId": "B", "select": [ [ @@ -2084,7 +2109,8 @@ "mode": "absolute", "steps": [ { - "color": "green" + "color": "green", + "value": null }, { "color": "red", @@ -2099,7 +2125,7 @@ "h": 9, "w": 6, "x": 18, - "y": 73 + "y": 349 }, "id": 37, "options": { @@ -2159,6 +2185,7 @@ "type": "postgres", "uid": "P7B13B9DF907EC40C" }, + "description": "Bid prices of accepted bids per unit in the chosen market", "fieldConfig": { "defaults": { "color": { @@ -2212,16 +2239,13 @@ "overrides": [ { "matcher": { - "id": "byName", - "options": "energy_marginal_costs demand_EOM" + "id": "byRegexp", + "options": "price .*" }, "properties": [ { - "id": "color", - "value": { - "fixedColor": "blue", - "mode": "fixed" - } + "id": "unit", + "value": "€/MW" } ] } @@ -2229,23 +2253,28 @@ }, "gridPos": { "h": 9, - "w": 18, + "w": 12, "x": 0, - "y": 82 + "y": 358 }, - "id": 86, + "id": 89, "options": { "legend": { - "calcs": [], - "displayMode": "list", + "calcs": [ + "min", + "max", + "mean" + ], + "displayMode": "table", "placement": "bottom", "showLegend": true }, "tooltip": { - "mode": "single", - "sort": "none" + "mode": "multi", + "sort": "desc" } }, + "pluginVersion": "9.2.15", "targets": [ { "datasource": { @@ -2253,67 +2282,94 @@ "uid": "P7B13B9DF907EC40C" }, "format": "time_series", - "group": [], + "group": [ + { + "params": [ + "$__interval", + "none" + ], + "type": "time" + }, + { + "params": [ + "unit_id" + ], + "type": "column" + } + ], "metricColumn": "none", "rawQuery": true, - "rawSql": "SELECT\r\n $__timeGroupAlias(index,$__interval),\r\n energy_cashflow AS \"energy_cashflow\",\r\n unit\r\nFROM unit_dispatch\r\nWHERE\r\n $__timeFilter(index) AND\r\n simulation = '$simulation' AND\r\n unit in ($Demand_Units)\r\nGROUP BY 1, unit, energy_cashflow\r\nORDER BY 1", + "rawSql": "SELECT\r\n $__timeGroupAlias(start_time,$__interval),\r\n accepted_price AS \"Accepted price:\",\r\n price AS \"Bid price:\",\r\n concat(unit_id, ' - ', market_id) as \"unit_id\"\r\nFROM market_orders\r\nWHERE\r\n $__timeFilter(start_time) AND\r\n unit_id in ($Demand_Units) AND\r\n simulation = '$simulation'\r\nGROUP BY 1, unit_id, market_id, price, accepted_price\r\nORDER BY 1", "refId": "A", "select": [ [ { "params": [ - "power" + "original_price" ], "type": "column" + }, + { + "params": [ + "avg" + ], + "type": "aggregate" + }, + { + "params": [ + "price" + ], + "type": "alias" } - ] - ], - "table": "market_dispatch", - "timeColumn": "datetime", - "timeColumnType": "timestamp", - "where": [ - { - "name": "$__timeFilter", - "params": [], - "type": "macro" - } - ] - }, - { - "datasource": { - "type": "postgres", - "uid": "P7B13B9DF907EC40C" - }, - "format": "time_series", - "group": [], - "hide": false, - "metricColumn": "none", - "rawQuery": true, - "rawSql": "SELECT\r\n $__timeGroupAlias(index,$__interval),\r\n energy_marginal_costs AS \"energy_marginal_costs\",\r\n unit\r\nFROM unit_dispatch\r\nWHERE\r\n $__timeFilter(index) AND\r\n simulation = '$simulation' AND\r\n unit in ($Demand_Units)\r\nGROUP BY 1, unit, energy_marginal_costs\r\nORDER BY 1", - "refId": "B", - "select": [ + ], [ { "params": [ - "power" + "unit_id" ], "type": "column" + }, + { + "params": [ + "unit_id" + ], + "type": "alias" } ] ], - "table": "market_dispatch", - "timeColumn": "datetime", + "table": "market_orders", + "timeColumn": "start_time", "timeColumnType": "timestamp", "where": [ { "name": "$__timeFilter", "params": [], "type": "macro" + }, + { + "datatype": "text", + "name": "", + "params": [ + "market_id", + "=", + "'$market'" + ], + "type": "expression" + }, + { + "datatype": "text", + "name": "", + "params": [ + "simulation", + "=", + "'$simulation'" + ], + "type": "expression" } ] } ], - "title": "Energy Related Cashflow", + "title": "Bid Prices", "type": "timeseries" }, { @@ -2362,7 +2418,8 @@ "mode": "absolute", "steps": [ { - "color": "green" + "color": "green", + "value": null }, { "color": "red", @@ -2404,15 +2461,19 @@ }, "gridPos": { "h": 9, - "w": 5, - "x": 18, - "y": 82 + "w": 12, + "x": 12, + "y": 358 }, - "id": 87, + "id": 90, "options": { "legend": { - "calcs": [], - "displayMode": "list", + "calcs": [ + "min", + "max", + "mean" + ], + "displayMode": "table", "placement": "bottom", "showLegend": true }, @@ -2431,7 +2492,7 @@ "group": [], "metricColumn": "none", "rawQuery": true, - "rawSql": "SELECT\r\n $__timeGroupAlias(start_time,$__interval),\r\n avg(accepted_volume) AS \"accepted_volume\",\r\n unit_id\r\nFROM market_orders\r\nWHERE\r\n $__timeFilter(start_time) AND\r\n unit_id in ($Demand_Units) AND\r\n simulation = '$simulation'\r\nGROUP BY 1, unit_id\r\nORDER BY 1\r\n", + "rawSql": "SELECT\r\n $__timeGroupAlias(start_time,$__interval),\r\n avg(accepted_volume) AS \"Accepted volume:\",\r\n concat(unit_id, ' - ', market_id) as \"unit_id\"\r\nFROM market_orders\r\nWHERE\r\n $__timeFilter(start_time) AND\r\n unit_id in ($Demand_Units) AND\r\n simulation = '$simulation'\r\nGROUP BY 1, unit_id, market_id\r\nORDER BY 1\r\n", "refId": "A", "select": [ [ @@ -2464,7 +2525,7 @@ "hide": false, "metricColumn": "none", "rawQuery": true, - "rawSql": "SELECT\r\n $__timeGroupAlias(start_time,$__interval),\r\n avg(volume) AS \"bid_volume\",\r\n unit_id\r\nFROM market_orders\r\nWHERE\r\n $__timeFilter(start_time) AND\r\n unit_id in ($Demand_Units) AND\r\n simulation = '$simulation'\r\nGROUP BY 1, unit_id\r\nORDER BY 1", + "rawSql": "SELECT\r\n $__timeGroupAlias(start_time,$__interval),\r\n avg(volume) AS \"Bid volume:\",\r\n unit_id\r\nFROM market_orders\r\nWHERE\r\n $__timeFilter(start_time) AND\r\n unit_id in ($Demand_Units) AND\r\n simulation = '$simulation'\r\nGROUP BY 1, unit_id\r\nORDER BY 1", "refId": "B", "select": [ [ @@ -2488,17 +2549,17 @@ ] } ], - "title": "Volume Acceptance Ratio", + "title": "Bid volume", "transformations": [ { "id": "calculateField", "options": { "alias": "volume_acceptance_ratio", "binary": { - "left": "accepted_volume demand_EOM", + "left": "accepted_volume Unit 1", "operator": "/", "reducer": "sum", - "right": "bid_volume demand_EOM" + "right": "bid_volume Unit 1" }, "mode": "binary", "reduce": { @@ -2509,19 +2570,6 @@ ], "type": "timeseries" }, - { - "collapsed": false, - "gridPos": { - "h": 1, - "w": 24, - "x": 0, - "y": 91 - }, - "id": 44, - "panels": [], - "title": "Storage units data $Storage_Units", - "type": "row" - }, { "datasource": { "type": "postgres", @@ -2546,14 +2594,14 @@ "tooltip": false, "viz": false }, - "lineInterpolation": "smooth", - "lineWidth": 2, + "lineInterpolation": "linear", + "lineWidth": 1, "pointSize": 5, "scaleDistribution": { "type": "linear" }, - "showPoints": "always", - "spanNulls": true, + "showPoints": "auto", + "spanNulls": false, "stacking": { "group": "A", "mode": "none" @@ -2575,27 +2623,48 @@ } ] }, - "unit": "megwatt" + "unit": "currencyEUR" }, - "overrides": [] + "overrides": [ + { + "matcher": { + "id": "byName", + "options": "energy_marginal_costs demand_EOM" + }, + "properties": [ + { + "id": "color", + "value": { + "fixedColor": "blue", + "mode": "fixed" + } + } + ] + } + ] }, "gridPos": { "h": 9, - "w": 9, + "w": 24, "x": 0, - "y": 92 + "y": 367 }, - "id": 65, + "id": 86, "options": { "legend": { - "calcs": [], - "displayMode": "list", + "calcs": [ + "min", + "max", + "mean", + "sum" + ], + "displayMode": "table", "placement": "bottom", "showLegend": true }, "tooltip": { - "mode": "multi", - "sort": "desc" + "mode": "single", + "sort": "none" } }, "targets": [ @@ -2608,20 +2677,20 @@ "group": [], "metricColumn": "none", "rawQuery": true, - "rawSql": "SELECT\n $__timeGroupAlias(datetime,$__interval),\n power AS \"power\",\n unit_id,\n market_id\nFROM market_dispatch\nWHERE\n $__timeFilter(datetime) AND\n simulation = '$simulation' AND\n unit_id in ($Storage_Units)\nGROUP BY 1, unit_id, power, market_id\nORDER BY 1", + "rawSql": "SELECT\r\n $__timeGroupAlias(index,$__interval),\r\n energy_cashflow AS \"Cashflow\",\r\n unit\r\nFROM unit_dispatch\r\nWHERE\r\n $__timeFilter(index) AND\r\n simulation = '$simulation' AND\r\n unit in ($Demand_Units)\r\nGROUP BY 1, unit, energy_cashflow\r\nORDER BY 1", "refId": "A", "select": [ [ { "params": [ - "volume" + "power" ], "type": "column" } ] ], - "table": "demand_meta", - "timeColumn": "\"Timestamp\"", + "table": "market_dispatch", + "timeColumn": "datetime", "timeColumnType": "timestamp", "where": [ { @@ -2641,7 +2710,7 @@ "hide": false, "metricColumn": "none", "rawQuery": true, - "rawSql": "SELECT\n $__timeGroupAlias(index,$__interval),\n power AS \"dispatch\",\n unit\nFROM unit_dispatch\nWHERE\n $__timeFilter(index) AND\n simulation = '$simulation' AND\n unit in ($Storage_Units)\nGROUP BY 1, unit, power\nORDER BY 1", + "rawSql": "SELECT\r\n $__timeGroupAlias(index,$__interval),\r\n energy_marginal_costs AS \"Production costs\",\r\n unit\r\nFROM unit_dispatch\r\nWHERE\r\n $__timeFilter(index) AND\r\n simulation = '$simulation' AND\r\n unit in ($Demand_Units)\r\nGROUP BY 1, unit, energy_marginal_costs\r\nORDER BY 1", "refId": "B", "select": [ [ @@ -2665,9 +2734,22 @@ ] } ], - "title": "Storage Dispatch", + "title": "Energy Related Cashflow", "type": "timeseries" }, + { + "collapsed": false, + "gridPos": { + "h": 1, + "w": 24, + "x": 0, + "y": 376 + }, + "id": 44, + "panels": [], + "title": "Storage units data $Storage_Units", + "type": "row" + }, { "datasource": { "type": "postgres", @@ -2692,14 +2774,14 @@ "tooltip": false, "viz": false }, - "lineInterpolation": "linear", - "lineWidth": 1, + "lineInterpolation": "smooth", + "lineWidth": 2, "pointSize": 5, "scaleDistribution": { "type": "linear" }, - "showPoints": "auto", - "spanNulls": false, + "showPoints": "always", + "spanNulls": true, "stacking": { "group": "A", "mode": "none" @@ -2721,27 +2803,31 @@ } ] }, - "unit": "%" + "unit": "megwatt" }, "overrides": [] }, "gridPos": { "h": 9, - "w": 11, - "x": 9, - "y": 92 + "w": 18, + "x": 0, + "y": 377 }, - "id": 80, + "id": 65, "options": { "legend": { - "calcs": [], - "displayMode": "list", + "calcs": [ + "min", + "max", + "mean" + ], + "displayMode": "table", "placement": "bottom", "showLegend": true }, "tooltip": { - "mode": "single", - "sort": "none" + "mode": "multi", + "sort": "desc" } }, "targets": [ @@ -2754,8 +2840,41 @@ "group": [], "metricColumn": "none", "rawQuery": true, - "rawSql": "SELECT\r\n $__timeGroupAlias(index,$__interval),\r\n SOC AS \"State of Charge\",\r\n unit\r\nFROM unit_dispatch\r\nWHERE\r\n $__timeFilter(index) AND\r\n simulation = '$simulation' AND\r\n unit in ($Storage_Units)\r\nGROUP BY 1, unit, SOC\r\nORDER BY 1", + "rawSql": "SELECT\n $__timeGroupAlias(datetime,$__interval),\n power AS \"Market dispatch\",\n unit_id,\n market_id\nFROM market_dispatch\nWHERE\n $__timeFilter(datetime) AND\n simulation = '$simulation' AND\n unit_id in ($Storage_Units)\nGROUP BY 1, unit_id, power, market_id\nORDER BY 1", "refId": "A", + "select": [ + [ + { + "params": [ + "volume" + ], + "type": "column" + } + ] + ], + "table": "demand_meta", + "timeColumn": "\"Timestamp\"", + "timeColumnType": "timestamp", + "where": [ + { + "name": "$__timeFilter", + "params": [], + "type": "macro" + } + ] + }, + { + "datasource": { + "type": "postgres", + "uid": "P7B13B9DF907EC40C" + }, + "format": "time_series", + "group": [], + "hide": false, + "metricColumn": "none", + "rawQuery": true, + "rawSql": "SELECT\n $__timeGroupAlias(index,$__interval),\n power AS \"Actual dispatch\",\n unit\nFROM unit_dispatch\nWHERE\n $__timeFilter(index) AND\n simulation = '$simulation' AND\n unit in ($Storage_Units)\nGROUP BY 1, unit, power\nORDER BY 1", + "refId": "B", "select": [ [ { @@ -2778,25 +2897,7 @@ ] } ], - "title": "State of Charge", - "transformations": [ - { - "id": "calculateField", - "options": { - "binary": { - "left": "State of Charge Storage 1", - "operator": "*", - "reducer": "sum", - "right": "100" - }, - "mode": "binary", - "reduce": { - "reducer": "sum" - }, - "replaceFields": true - } - } - ], + "title": "Storage Dispatch", "type": "timeseries" }, { @@ -2810,7 +2911,8 @@ "mode": "absolute", "steps": [ { - "color": "green" + "color": "green", + "value": null }, { "color": "red", @@ -2823,9 +2925,9 @@ }, "gridPos": { "h": 9, - "w": 4, - "x": 20, - "y": 92 + "w": 6, + "x": 18, + "y": 377 }, "id": 47, "options": { @@ -2933,37 +3035,25 @@ } ] }, - "unit": "currencyEUR" + "unit": "%" }, - "overrides": [ - { - "matcher": { - "id": "byName", - "options": "energy_marginal_costs Storage 1" - }, - "properties": [ - { - "id": "color", - "value": { - "fixedColor": "blue", - "mode": "fixed" - } - } - ] - } - ] + "overrides": [] }, "gridPos": { - "h": 8, - "w": 19, + "h": 9, + "w": 24, "x": 0, - "y": 101 + "y": 386 }, - "id": 84, + "id": 80, "options": { "legend": { - "calcs": [], - "displayMode": "list", + "calcs": [ + "min", + "max", + "mean" + ], + "displayMode": "table", "placement": "bottom", "showLegend": true }, @@ -2982,7 +3072,7 @@ "group": [], "metricColumn": "none", "rawQuery": true, - "rawSql": "SELECT\r\n $__timeGroupAlias(index,$__interval),\r\n energy_cashflow AS \"energy_cashflow\",\r\n unit\r\nFROM unit_dispatch\r\nWHERE\r\n $__timeFilter(index) AND\r\n simulation = '$simulation' AND\r\n unit in ($Storage_Units)\r\nGROUP BY 1, unit, energy_cashflow\r\nORDER BY 1", + "rawSql": "SELECT\r\n $__timeGroupAlias(index,$__interval),\r\n SOC AS \"State of Charge\",\r\n unit\r\nFROM unit_dispatch\r\nWHERE\r\n $__timeFilter(index) AND\r\n simulation = '$simulation' AND\r\n unit in ($Storage_Units)\r\nGROUP BY 1, unit, SOC\r\nORDER BY 1", "refId": "A", "select": [ [ @@ -3004,42 +3094,219 @@ "type": "macro" } ] + } + ], + "title": "State of Charge", + "transformations": [ + { + "id": "calculateField", + "options": { + "binary": { + "left": "State of Charge Storage 1", + "operator": "*", + "reducer": "sum", + "right": "100" + }, + "mode": "binary", + "reduce": { + "reducer": "sum" + }, + "replaceFields": true + } + } + ], + "type": "timeseries" + }, + { + "datasource": { + "type": "postgres", + "uid": "P7B13B9DF907EC40C" + }, + "description": "Bid prices of accepted bids per unit in the chosen market", + "fieldConfig": { + "defaults": { + "color": { + "mode": "palette-classic" + }, + "custom": { + "axisCenteredZero": false, + "axisColorMode": "text", + "axisLabel": "", + "axisPlacement": "auto", + "barAlignment": 0, + "drawStyle": "line", + "fillOpacity": 0, + "gradientMode": "none", + "hideFrom": { + "legend": false, + "tooltip": false, + "viz": false + }, + "lineInterpolation": "linear", + "lineWidth": 1, + "pointSize": 5, + "scaleDistribution": { + "type": "linear" + }, + "showPoints": "auto", + "spanNulls": false, + "stacking": { + "group": "A", + "mode": "none" + }, + "thresholdsStyle": { + "mode": "off" + } + }, + "mappings": [], + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green" + }, + { + "color": "red", + "value": 80 + } + ] + }, + "unit": "currencyEUR" }, + "overrides": [ + { + "matcher": { + "id": "byRegexp", + "options": "price .*" + }, + "properties": [ + { + "id": "unit", + "value": "€/MW" + } + ] + } + ] + }, + "gridPos": { + "h": 9, + "w": 12, + "x": 0, + "y": 395 + }, + "id": 91, + "options": { + "legend": { + "calcs": [ + "min", + "max", + "mean" + ], + "displayMode": "table", + "placement": "bottom", + "showLegend": true + }, + "tooltip": { + "mode": "multi", + "sort": "desc" + } + }, + "pluginVersion": "9.2.15", + "targets": [ { "datasource": { "type": "postgres", "uid": "P7B13B9DF907EC40C" }, "format": "time_series", - "group": [], - "hide": false, + "group": [ + { + "params": [ + "$__interval", + "none" + ], + "type": "time" + }, + { + "params": [ + "unit_id" + ], + "type": "column" + } + ], "metricColumn": "none", "rawQuery": true, - "rawSql": "SELECT\n $__timeGroupAlias(index,$__interval),\nenergy_marginal_costs AS \"energy_marginal_costs\",\nunit\nFROM unit_dispatch\nWHERE\n $__timeFilter(index) AND\n simulation = '$simulation' AND\n unit in ($Storage_Units)\nGROUP BY 1, unit, energy_marginal_costs\nORDER BY 1", - "refId": "B", + "rawSql": "SELECT\r\n $__timeGroupAlias(start_time,$__interval),\r\n accepted_price AS \"Accepted price:\",\r\n price AS \"Bid price:\",\r\n concat(unit_id, ' - ', market_id) as \"unit_id\"\r\nFROM market_orders\r\nWHERE\r\n $__timeFilter(start_time) AND\r\n unit_id in ($Storage_Units) AND\r\n simulation = '$simulation'\r\nGROUP BY 1, unit_id, market_id, price, accepted_price\r\nORDER BY 1", + "refId": "A", "select": [ [ { "params": [ - "power" + "original_price" + ], + "type": "column" + }, + { + "params": [ + "avg" + ], + "type": "aggregate" + }, + { + "params": [ + "price" + ], + "type": "alias" + } + ], + [ + { + "params": [ + "unit_id" ], "type": "column" + }, + { + "params": [ + "unit_id" + ], + "type": "alias" } ] ], - "table": "market_dispatch", - "timeColumn": "datetime", + "table": "market_orders", + "timeColumn": "start_time", "timeColumnType": "timestamp", "where": [ { "name": "$__timeFilter", "params": [], "type": "macro" + }, + { + "datatype": "text", + "name": "", + "params": [ + "market_id", + "=", + "'$market'" + ], + "type": "expression" + }, + { + "datatype": "text", + "name": "", + "params": [ + "simulation", + "=", + "'$simulation'" + ], + "type": "expression" } ] } ], - "title": "Energy Related Cash Flow", + "title": "Bid Prices", "type": "timeseries" }, { @@ -3088,7 +3355,8 @@ "mode": "absolute", "steps": [ { - "color": "green" + "color": "green", + "value": null }, { "color": "red", @@ -3130,15 +3398,19 @@ }, "gridPos": { "h": 9, - "w": 5, - "x": 19, - "y": 101 + "w": 12, + "x": 12, + "y": 395 }, - "id": 88, + "id": 92, "options": { "legend": { - "calcs": [], - "displayMode": "list", + "calcs": [ + "min", + "max", + "mean" + ], + "displayMode": "table", "placement": "bottom", "showLegend": true }, @@ -3157,7 +3429,7 @@ "group": [], "metricColumn": "none", "rawQuery": true, - "rawSql": "SELECT\r\n $__timeGroupAlias(start_time,$__interval),\r\n avg(accepted_volume) AS \"accepted_volume\",\r\n unit_id\r\nFROM market_orders\r\nWHERE\r\n $__timeFilter(start_time) AND\r\n unit_id in ($Storage_Units) AND\r\n simulation = '$simulation'\r\nGROUP BY 1, unit_id\r\nORDER BY 1\r\n", + "rawSql": "SELECT\r\n $__timeGroupAlias(start_time,$__interval),\r\n avg(accepted_volume) AS \"Accepted volume:\",\r\n concat(unit_id, ' - ', market_id) as \"unit_id\"\r\nFROM market_orders\r\nWHERE\r\n $__timeFilter(start_time) AND\r\n unit_id in ($Storage_Units) AND\r\n simulation = '$simulation'\r\nGROUP BY 1, unit_id, market_id\r\nORDER BY 1\r\n", "refId": "A", "select": [ [ @@ -3190,7 +3462,7 @@ "hide": false, "metricColumn": "none", "rawQuery": true, - "rawSql": "SELECT\r\n $__timeGroupAlias(start_time,$__interval),\r\n avg(volume) AS \"bid_volume\",\r\n unit_id\r\nFROM market_orders\r\nWHERE\r\n $__timeFilter(start_time) AND\r\n unit_id in ($Storage_Units) AND\r\n simulation = '$simulation'\r\nGROUP BY 1, unit_id\r\nORDER BY 1", + "rawSql": "SELECT\r\n $__timeGroupAlias(start_time,$__interval),\r\n avg(volume) AS \"Bid volume:\",\r\n unit_id\r\nFROM market_orders\r\nWHERE\r\n $__timeFilter(start_time) AND\r\n unit_id in ($Storage_Units) AND\r\n simulation = '$simulation'\r\nGROUP BY 1, unit_id\r\nORDER BY 1", "refId": "B", "select": [ [ @@ -3214,17 +3486,17 @@ ] } ], - "title": "Volume Acceptance Ratio", + "title": "Bid volume", "transformations": [ { "id": "calculateField", "options": { "alias": "volume_acceptance_ratio", "binary": { - "left": "accepted_volume", + "left": "accepted_volume Unit 1", "operator": "/", "reducer": "sum", - "right": "bid_volume" + "right": "bid_volume Unit 1" }, "mode": "binary", "reduce": { @@ -3234,6 +3506,173 @@ } ], "type": "timeseries" + }, + { + "datasource": { + "type": "postgres", + "uid": "P7B13B9DF907EC40C" + }, + "fieldConfig": { + "defaults": { + "color": { + "mode": "palette-classic" + }, + "custom": { + "axisCenteredZero": false, + "axisColorMode": "text", + "axisLabel": "", + "axisPlacement": "auto", + "barAlignment": 0, + "drawStyle": "line", + "fillOpacity": 0, + "gradientMode": "none", + "hideFrom": { + "legend": false, + "tooltip": false, + "viz": false + }, + "lineInterpolation": "linear", + "lineWidth": 1, + "pointSize": 5, + "scaleDistribution": { + "type": "linear" + }, + "showPoints": "auto", + "spanNulls": false, + "stacking": { + "group": "A", + "mode": "none" + }, + "thresholdsStyle": { + "mode": "off" + } + }, + "mappings": [], + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green" + }, + { + "color": "red", + "value": 80 + } + ] + }, + "unit": "currencyEUR" + }, + "overrides": [ + { + "matcher": { + "id": "byName", + "options": "energy_marginal_costs Storage 1" + }, + "properties": [ + { + "id": "color", + "value": { + "fixedColor": "blue", + "mode": "fixed" + } + } + ] + } + ] + }, + "gridPos": { + "h": 9, + "w": 24, + "x": 0, + "y": 404 + }, + "id": 84, + "options": { + "legend": { + "calcs": [ + "min", + "max", + "mean", + "sum" + ], + "displayMode": "table", + "placement": "bottom", + "showLegend": true + }, + "tooltip": { + "mode": "single", + "sort": "none" + } + }, + "targets": [ + { + "datasource": { + "type": "postgres", + "uid": "P7B13B9DF907EC40C" + }, + "format": "time_series", + "group": [], + "metricColumn": "none", + "rawQuery": true, + "rawSql": "SELECT\r\n $__timeGroupAlias(index,$__interval),\r\n energy_cashflow AS \"Cashflow\",\r\n unit\r\nFROM unit_dispatch\r\nWHERE\r\n $__timeFilter(index) AND\r\n simulation = '$simulation' AND\r\n unit in ($Storage_Units)\r\nGROUP BY 1, unit, energy_cashflow\r\nORDER BY 1", + "refId": "A", + "select": [ + [ + { + "params": [ + "power" + ], + "type": "column" + } + ] + ], + "table": "market_dispatch", + "timeColumn": "datetime", + "timeColumnType": "timestamp", + "where": [ + { + "name": "$__timeFilter", + "params": [], + "type": "macro" + } + ] + }, + { + "datasource": { + "type": "postgres", + "uid": "P7B13B9DF907EC40C" + }, + "format": "time_series", + "group": [], + "hide": false, + "metricColumn": "none", + "rawQuery": true, + "rawSql": "SELECT\n $__timeGroupAlias(index,$__interval),\nenergy_marginal_costs AS \"Production costs\",\nunit\nFROM unit_dispatch\nWHERE\n $__timeFilter(index) AND\n simulation = '$simulation' AND\n unit in ($Storage_Units)\nGROUP BY 1, unit, energy_marginal_costs\nORDER BY 1", + "refId": "B", + "select": [ + [ + { + "params": [ + "power" + ], + "type": "column" + } + ] + ], + "table": "market_dispatch", + "timeColumn": "datetime", + "timeColumnType": "timestamp", + "where": [ + { + "name": "$__timeFilter", + "params": [], + "type": "macro" + } + ] + } + ], + "title": "Energy Related Cash Flow", + "type": "timeseries" } ], "refresh": false, @@ -3245,8 +3684,8 @@ { "current": { "selected": false, - "text": "example_01_rl_base", - "value": "example_01_rl_base" + "text": "example_01a_base", + "value": "example_01a_base" }, "datasource": { "type": "postgres", @@ -3260,7 +3699,7 @@ "name": "simulation", "options": [], "query": "-- this construct is needed to execute a join query if rl_params exist\n-- else execute a query without a join on rl_params\nCREATE OR REPLACE FUNCTION get_simulation_data()\nRETURNS TABLE (\n market_simulation TEXT\n) AS $$\nBEGIN\n IF EXISTS (SELECT 1 FROM information_schema.tables WHERE table_name = 'rl_params') THEN\n -- Table rl_params exists, execute the join query\n RETURN QUERY EXECUTE '\n SELECT DISTINCT\n m.simulation AS market_simulation\n FROM \n market_meta m\n LEFT OUTER JOIN\n rl_params o\n ON\n m.simulation = o.simulation\n WHERE\n o.learning_mode is not true\n ';\n ELSE\n -- Table rl_params doesn't exist, execute the query for market_meta only\n RETURN QUERY EXECUTE '\n SELECT DISTINCT\n simulation AS market_simulation\n FROM \n market_meta\n ';\n END IF;\nEND;\n$$ LANGUAGE plpgsql;\n\nSELECT * FROM get_simulation_data();\n", - "refresh": 1, + "refresh": 2, "regex": "", "skipUrlSync": false, "sort": 1, @@ -3292,13 +3731,9 @@ }, { "current": { - "selected": true, - "text": [ - "Unit 3" - ], - "value": [ - "Unit 3" - ] + "selected": false, + "text": "Unit 1", + "value": "Unit 1" }, "datasource": { "type": "postgres", @@ -3374,12 +3809,25 @@ }, "time": { "from": "2018-12-31T23:00:00.000Z", - "to": "2019-01-05T22:59:59.000Z" + "to": "2019-01-31T22:59:59.000Z" + }, + "timepicker": { + "refresh_intervals": [ + "5s", + "10s", + "30s", + "1m", + "5m", + "15m", + "30m", + "1h", + "2h", + "1d" + ] }, - "timepicker": {}, "timezone": "", "title": "ASSUME", "uid": "mQ3Lvkr4k", - "version": 13, + "version": 12, "weekStart": "" }