{ "annotations": { "list": [] }, "editable": true, "fiscalYearStartMonth": 0, "graphTooltip": 0, "id": null, "links": [], "liveNow": false, "refresh": "5s", "schemaVersion": 39, "style": "dark", "tags": ["evolv", "pumping-station"], "templating": { "list": [] }, "time": { "from": "now-15m", "to": "now" }, "timepicker": {}, "timezone": "browser", "title": "EVOLV — Pumping Station (complete)", "uid": "evolv-ps-complete", "version": 1, "weekStart": "", "panels": [ { "type": "row", "id": 100, "title": "Realtime", "collapsed": false, "gridPos": { "h": 1, "w": 24, "x": 0, "y": 0 }, "panels": [] }, { "type": "gauge", "id": 1, "title": "Basin level", "datasource": { "type": "influxdb", "uid": "cdzg44tv250jkd" }, "gridPos": { "h": 7, "w": 6, "x": 0, "y": 1 }, "fieldConfig": { "defaults": { "unit": "lengthm", "min": 0, "max": 4, "decimals": 2, "thresholds": { "mode": "absolute", "steps": [ { "color": "red", "value": null }, { "color": "orange", "value": 1 }, { "color": "blue", "value": 2 }, { "color": "orange", "value": 3.5 }, { "color": "red", "value": 3.8 } ] } } }, "options": { "showThresholdLabels": false, "showThresholdMarkers": true, "orientation": "auto", "reduceOptions": { "calcs": ["lastNotNull"], "fields": "", "values": false } }, "targets": [ { "refId": "A", "datasource": { "type": "influxdb", "uid": "cdzg44tv250jkd" }, "query": "from(bucket: \"telemetry\")\n |> range(start: -2m)\n |> filter(fn: (r) => r._measurement == \"Pumping Station\")\n |> filter(fn: (r) => r._field == \"level.predicted.atequipment.default\")\n |> last()" } ] }, { "type": "gauge", "id": 2, "title": "Basin fill", "datasource": { "type": "influxdb", "uid": "cdzg44tv250jkd" }, "gridPos": { "h": 7, "w": 6, "x": 6, "y": 1 }, "fieldConfig": { "defaults": { "unit": "percent", "min": 0, "max": 100, "decimals": 0, "thresholds": { "mode": "absolute", "steps": [ { "color": "red", "value": null }, { "color": "orange", "value": 10 }, { "color": "green", "value": 30 }, { "color": "orange", "value": 80 }, { "color": "red", "value": 95 } ] } } }, "options": { "showThresholdMarkers": true, "reduceOptions": { "calcs": ["lastNotNull"], "fields": "", "values": false } }, "targets": [ { "refId": "A", "datasource": { "type": "influxdb", "uid": "cdzg44tv250jkd" }, "query": "from(bucket: \"telemetry\")\n |> range(start: -2m)\n |> filter(fn: (r) => r._measurement == \"Pumping Station\")\n |> filter(fn: (r) => r._field == \"volumePercent.predicted.atequipment.default\")\n |> last()" } ] }, { "type": "stat", "id": 3, "title": "Total flow (MGC)", "datasource": { "type": "influxdb", "uid": "cdzg44tv250jkd" }, "gridPos": { "h": 7, "w": 6, "x": 12, "y": 1 }, "fieldConfig": { "defaults": { "unit": "m³/h", "decimals": 1, "thresholds": { "mode": "absolute", "steps": [ { "color": "gray", "value": null }, { "color": "blue", "value": 50 }, { "color": "green", "value": 200 } ] } } }, "options": { "reduceOptions": { "calcs": ["lastNotNull"], "fields": "", "values": false }, "colorMode": "background", "graphMode": "area" }, "targets": [ { "refId": "A", "datasource": { "type": "influxdb", "uid": "cdzg44tv250jkd" }, "query": "from(bucket: \"telemetry\")\n |> range(start: -2m)\n |> filter(fn: (r) => r._measurement == \"MGC — Pump Group\")\n |> filter(fn: (r) => r._field =~ /^flow\\.predicted\\.atequipment\\./)\n |> last()" } ] }, { "type": "stat", "id": 4, "title": "Total power (MGC)", "datasource": { "type": "influxdb", "uid": "cdzg44tv250jkd" }, "gridPos": { "h": 7, "w": 6, "x": 18, "y": 1 }, "fieldConfig": { "defaults": { "unit": "kwatt", "decimals": 2, "thresholds": { "mode": "absolute", "steps": [ { "color": "gray", "value": null }, { "color": "blue", "value": 1 }, { "color": "green", "value": 5 }, { "color": "orange", "value": 20 } ] } } }, "options": { "reduceOptions": { "calcs": ["lastNotNull"], "fields": "", "values": false }, "colorMode": "background", "graphMode": "area" }, "targets": [ { "refId": "A", "datasource": { "type": "influxdb", "uid": "cdzg44tv250jkd" }, "query": "from(bucket: \"telemetry\")\n |> range(start: -2m)\n |> filter(fn: (r) => r._measurement == \"MGC — Pump Group\")\n |> filter(fn: (r) => r._field =~ /^power\\.predicted\\.atequipment\\./)\n |> last()" } ] }, { "type": "stat", "id": 5, "title": "Pump A — state", "datasource": { "type": "influxdb", "uid": "cdzg44tv250jkd" }, "gridPos": { "h": 4, "w": 8, "x": 0, "y": 8 }, "fieldConfig": { "defaults": { "mappings": [ { "type": "value", "options": { "operational": { "color": "green", "text": "OPERATIONAL" } } }, { "type": "value", "options": { "starting": { "color": "blue", "text": "STARTING" } } }, { "type": "value", "options": { "stopping": { "color": "orange", "text": "STOPPING" } } }, { "type": "value", "options": { "idle": { "color": "gray", "text": "IDLE" } } } ], "color": { "mode": "thresholds" }, "thresholds": { "mode": "absolute", "steps": [{ "color": "gray", "value": null }] } } }, "options": { "colorMode": "background", "reduceOptions": { "calcs": ["lastNotNull"], "fields": "", "values": false } }, "targets": [ { "refId": "A", "datasource": { "type": "influxdb", "uid": "cdzg44tv250jkd" }, "query": "from(bucket: \"telemetry\")\n |> range(start: -5m)\n |> filter(fn: (r) => r._measurement == \"rotatingmachine_pump_a\")\n |> filter(fn: (r) => r._field == \"state\")\n |> last()" } ] }, { "type": "stat", "id": 6, "title": "Pump B — state", "datasource": { "type": "influxdb", "uid": "cdzg44tv250jkd" }, "gridPos": { "h": 4, "w": 8, "x": 8, "y": 8 }, "fieldConfig": { "defaults": { "mappings": [ { "type": "value", "options": { "operational": { "color": "green", "text": "OPERATIONAL" } } }, { "type": "value", "options": { "starting": { "color": "blue", "text": "STARTING" } } }, { "type": "value", "options": { "stopping": { "color": "orange", "text": "STOPPING" } } }, { "type": "value", "options": { "idle": { "color": "gray", "text": "IDLE" } } } ], "color": { "mode": "thresholds" }, "thresholds": { "mode": "absolute", "steps": [{ "color": "gray", "value": null }] } } }, "options": { "colorMode": "background", "reduceOptions": { "calcs": ["lastNotNull"], "fields": "", "values": false } }, "targets": [ { "refId": "A", "datasource": { "type": "influxdb", "uid": "cdzg44tv250jkd" }, "query": "from(bucket: \"telemetry\")\n |> range(start: -5m)\n |> filter(fn: (r) => r._measurement == \"rotatingmachine_pump_b\")\n |> filter(fn: (r) => r._field == \"state\")\n |> last()" } ] }, { "type": "stat", "id": 7, "title": "Pump C — state", "datasource": { "type": "influxdb", "uid": "cdzg44tv250jkd" }, "gridPos": { "h": 4, "w": 8, "x": 16, "y": 8 }, "fieldConfig": { "defaults": { "mappings": [ { "type": "value", "options": { "operational": { "color": "green", "text": "OPERATIONAL" } } }, { "type": "value", "options": { "starting": { "color": "blue", "text": "STARTING" } } }, { "type": "value", "options": { "stopping": { "color": "orange", "text": "STOPPING" } } }, { "type": "value", "options": { "idle": { "color": "gray", "text": "IDLE" } } } ], "color": { "mode": "thresholds" }, "thresholds": { "mode": "absolute", "steps": [{ "color": "gray", "value": null }] } } }, "options": { "colorMode": "background", "reduceOptions": { "calcs": ["lastNotNull"], "fields": "", "values": false } }, "targets": [ { "refId": "A", "datasource": { "type": "influxdb", "uid": "cdzg44tv250jkd" }, "query": "from(bucket: \"telemetry\")\n |> range(start: -5m)\n |> filter(fn: (r) => r._measurement == \"rotatingmachine_pump_c\")\n |> filter(fn: (r) => r._field == \"state\")\n |> last()" } ] }, { "type": "row", "id": 200, "title": "Historic", "collapsed": false, "gridPos": { "h": 1, "w": 24, "x": 0, "y": 12 }, "panels": [] }, { "type": "timeseries", "id": 10, "title": "Basin — level (m) and fill (%)", "datasource": { "type": "influxdb", "uid": "cdzg44tv250jkd" }, "gridPos": { "h": 8, "w": 24, "x": 0, "y": 13 }, "fieldConfig": { "defaults": { "custom": { "drawStyle": "line", "lineInterpolation": "smooth", "fillOpacity": 8, "spanNulls": true }, "thresholds": { "mode": "absolute", "steps": [{ "color": "green", "value": null }] } }, "overrides": [ { "matcher": { "id": "byName", "options": "level (m)" }, "properties": [{ "id": "unit", "value": "lengthm" }, { "id": "color", "value": { "mode": "fixed", "fixedColor": "blue" } }] }, { "matcher": { "id": "byName", "options": "fill (%)" }, "properties": [{ "id": "unit", "value": "percent" }, { "id": "color", "value": { "mode": "fixed", "fixedColor": "green" } }] } ] }, "options": { "legend": { "displayMode": "list", "placement": "bottom" }, "tooltip": { "mode": "multi" } }, "targets": [ { "refId": "A", "datasource": { "type": "influxdb", "uid": "cdzg44tv250jkd" }, "query": "from(bucket: \"telemetry\")\n |> range(start: v.timeRangeStart, stop: v.timeRangeStop)\n |> filter(fn: (r) => r._measurement == \"Pumping Station\")\n |> filter(fn: (r) => r._field == \"level.predicted.atequipment.default\")\n |> aggregateWindow(every: v.windowPeriod, fn: mean, createEmpty: false)\n |> set(key: \"_field\", value: \"level (m)\")" }, { "refId": "B", "datasource": { "type": "influxdb", "uid": "cdzg44tv250jkd" }, "query": "from(bucket: \"telemetry\")\n |> range(start: v.timeRangeStart, stop: v.timeRangeStop)\n |> filter(fn: (r) => r._measurement == \"Pumping Station\")\n |> filter(fn: (r) => r._field == \"volumePercent.predicted.atequipment.default\")\n |> aggregateWindow(every: v.windowPeriod, fn: mean, createEmpty: false)\n |> set(key: \"_field\", value: \"fill (%)\")" } ] }, { "type": "timeseries", "id": 11, "title": "Inflow / Outflow / Net flow (m³/h)", "datasource": { "type": "influxdb", "uid": "cdzg44tv250jkd" }, "gridPos": { "h": 8, "w": 24, "x": 0, "y": 21 }, "fieldConfig": { "defaults": { "unit": "m³/h", "custom": { "drawStyle": "line", "lineInterpolation": "smooth", "fillOpacity": 5, "spanNulls": true }, "thresholds": { "mode": "absolute", "steps": [{ "color": "green", "value": null }] } } }, "options": { "legend": { "displayMode": "list", "placement": "bottom" }, "tooltip": { "mode": "multi" } }, "targets": [ { "refId": "A", "datasource": { "type": "influxdb", "uid": "cdzg44tv250jkd" }, "query": "from(bucket: \"telemetry\")\n |> range(start: v.timeRangeStart, stop: v.timeRangeStop)\n |> filter(fn: (r) => r._measurement == \"Pumping Station\")\n |> filter(fn: (r) => r._field =~ /^flow\\.predicted\\.(in|out)\\./ or r._field == \"netFlowRate.predicted.atequipment.default\")\n |> map(fn: (r) => ({ r with _value: r._value * 3600.0 }))\n |> aggregateWindow(every: v.windowPeriod, fn: mean, createEmpty: false)" } ] }, { "type": "timeseries", "id": 12, "title": "Per-pump flow (m³/h) — predicted", "datasource": { "type": "influxdb", "uid": "cdzg44tv250jkd" }, "gridPos": { "h": 8, "w": 12, "x": 0, "y": 29 }, "fieldConfig": { "defaults": { "unit": "m³/h", "custom": { "drawStyle": "line", "lineInterpolation": "smooth", "fillOpacity": 5, "spanNulls": true }, "thresholds": { "mode": "absolute", "steps": [{ "color": "green", "value": null }] } } }, "options": { "legend": { "displayMode": "list", "placement": "bottom" }, "tooltip": { "mode": "multi" } }, "targets": [ { "refId": "A", "datasource": { "type": "influxdb", "uid": "cdzg44tv250jkd" }, "query": "from(bucket: \"telemetry\")\n |> range(start: v.timeRangeStart, stop: v.timeRangeStop)\n |> filter(fn: (r) => r._measurement =~ /^rotatingmachine_/)\n |> filter(fn: (r) => r._field =~ /^flow\\.predicted\\.downstream\\./)\n |> aggregateWindow(every: v.windowPeriod, fn: mean, createEmpty: false)" } ] }, { "type": "timeseries", "id": 13, "title": "Per-pump power (kW) — predicted", "datasource": { "type": "influxdb", "uid": "cdzg44tv250jkd" }, "gridPos": { "h": 8, "w": 12, "x": 12, "y": 29 }, "fieldConfig": { "defaults": { "unit": "kwatt", "custom": { "drawStyle": "line", "lineInterpolation": "smooth", "fillOpacity": 5, "spanNulls": true }, "thresholds": { "mode": "absolute", "steps": [{ "color": "green", "value": null }] } } }, "options": { "legend": { "displayMode": "list", "placement": "bottom" }, "tooltip": { "mode": "multi" } }, "targets": [ { "refId": "A", "datasource": { "type": "influxdb", "uid": "cdzg44tv250jkd" }, "query": "from(bucket: \"telemetry\")\n |> range(start: v.timeRangeStart, stop: v.timeRangeStop)\n |> filter(fn: (r) => r._measurement =~ /^rotatingmachine_/)\n |> filter(fn: (r) => r._field =~ /^power\\.predicted\\.atequipment\\./)\n |> aggregateWindow(every: v.windowPeriod, fn: mean, createEmpty: false)" } ] }, { "type": "timeseries", "id": 14, "title": "Per-pump pressures (mbar) — sensors", "datasource": { "type": "influxdb", "uid": "cdzg44tv250jkd" }, "gridPos": { "h": 8, "w": 24, "x": 0, "y": 37 }, "fieldConfig": { "defaults": { "unit": "pressuremmbar", "custom": { "drawStyle": "line", "lineInterpolation": "smooth", "fillOpacity": 3, "spanNulls": true }, "thresholds": { "mode": "absolute", "steps": [{ "color": "green", "value": null }] } } }, "options": { "legend": { "displayMode": "list", "placement": "bottom" }, "tooltip": { "mode": "multi" } }, "targets": [ { "refId": "A", "datasource": { "type": "influxdb", "uid": "cdzg44tv250jkd" }, "query": "from(bucket: \"telemetry\")\n |> range(start: v.timeRangeStart, stop: v.timeRangeStop)\n |> filter(fn: (r) => r._measurement =~ /-(Up|Dn)$/)\n |> filter(fn: (r) => r._field == \"mAbs\")\n |> aggregateWindow(every: v.windowPeriod, fn: mean, createEmpty: false)" } ] }, { "type": "timeseries", "id": 15, "title": "Per-pump sensor flow (m³/h) — measured", "datasource": { "type": "influxdb", "uid": "cdzg44tv250jkd" }, "gridPos": { "h": 8, "w": 12, "x": 0, "y": 45 }, "fieldConfig": { "defaults": { "unit": "m³/h", "custom": { "drawStyle": "line", "lineInterpolation": "smooth", "fillOpacity": 5, "spanNulls": true }, "thresholds": { "mode": "absolute", "steps": [{ "color": "green", "value": null }] } } }, "options": { "legend": { "displayMode": "list", "placement": "bottom" }, "tooltip": { "mode": "multi" } }, "targets": [ { "refId": "A", "datasource": { "type": "influxdb", "uid": "cdzg44tv250jkd" }, "query": "from(bucket: \"telemetry\")\n |> range(start: v.timeRangeStart, stop: v.timeRangeStop)\n |> filter(fn: (r) => r._measurement =~ /-Flow$/)\n |> filter(fn: (r) => r._field == \"mAbs\")\n |> aggregateWindow(every: v.windowPeriod, fn: mean, createEmpty: false)" } ] }, { "type": "timeseries", "id": 16, "title": "Per-pump sensor power (kW) — measured", "datasource": { "type": "influxdb", "uid": "cdzg44tv250jkd" }, "gridPos": { "h": 8, "w": 12, "x": 12, "y": 45 }, "fieldConfig": { "defaults": { "unit": "kwatt", "custom": { "drawStyle": "line", "lineInterpolation": "smooth", "fillOpacity": 5, "spanNulls": true }, "thresholds": { "mode": "absolute", "steps": [{ "color": "green", "value": null }] } } }, "options": { "legend": { "displayMode": "list", "placement": "bottom" }, "tooltip": { "mode": "multi" } }, "targets": [ { "refId": "A", "datasource": { "type": "influxdb", "uid": "cdzg44tv250jkd" }, "query": "from(bucket: \"telemetry\")\n |> range(start: v.timeRangeStart, stop: v.timeRangeStop)\n |> filter(fn: (r) => r._measurement =~ /-Pwr$/)\n |> filter(fn: (r) => r._field == \"mAbs\")\n |> aggregateWindow(every: v.windowPeriod, fn: mean, createEmpty: false)" } ] } ] }