- Simulator rewritten to use flexmeasures_client (works!) - flexmeasures-entsoe installed (ENTSO-E data import) - flexmeasures-weather installed (weather data) - FlexMeasures Redis connection fixed (DNS resolution) - Dashboard Grafana updated with Cariflex asset types - Simulator running in background, posting to 40 sensors TODO: - S2 CEM deployment - Scheduler FlexMeasures - Logo Cariflex in FM UI
91 lines
4.1 KiB
JSON
91 lines
4.1 KiB
JSON
{
|
|
"dashboard": {
|
|
"id": null,
|
|
"uid": "cariflex-main",
|
|
"title": "Cariflex - Supervision Énergétique",
|
|
"tags": ["cariflex", "energy", "martinique"],
|
|
"timezone": "America/Martinique",
|
|
"refresh": "30s",
|
|
"time": {"from": "now-24h", "to": "now"},
|
|
"panels": [
|
|
{
|
|
"id": 1,
|
|
"title": "Production PV (kW) - 10 panneaux",
|
|
"type": "timeseries",
|
|
"gridPos": {"h": 8, "w": 12, "x": 0, "y": 0},
|
|
"datasource": {"type": "influxdb", "uid": "influxdb-v2"},
|
|
"targets": [{
|
|
"query": "from(bucket:\"smartcity\") |> range(start: v.timeRangeStart, stop: v.timeRangeStop) |> filter(fn: (r) => r[\"_measurement\"] == \"mqtt_consumer\") |> filter(fn: (r) => r[\"topic\"] =~ /pv_/) |> aggregateWindow(every: v.windowPeriod, fn: mean, createEmpty: false)",
|
|
"refId": "A"
|
|
}],
|
|
"fieldConfig": {"defaults": {"unit": "kW", "min": 0, "max": 50}}
|
|
},
|
|
{
|
|
"id": 2,
|
|
"title": "Consommation Bornes VE (kW) - 10 bornes",
|
|
"type": "timeseries",
|
|
"gridPos": {"h": 8, "w": 12, "x": 12, "y": 0},
|
|
"datasource": {"type": "influxdb", "uid": "influxdb-v2"},
|
|
"targets": [{
|
|
"query": "from(bucket:\"smartcity\") |> range(start: v.timeRangeStart, stop: v.timeRangeStop) |> filter(fn: (r) => r[\"_measurement\"] == \"mqtt_consumer\") |> filter(fn: (r) => r[\"topic\"] =~ /chg_/) |> aggregateWindow(every: v.windowPeriod, fn: mean, createEmpty: false)",
|
|
"refId": "A"
|
|
}],
|
|
"fieldConfig": {"defaults": {"unit": "kW", "min": 0, "max": 220}}
|
|
},
|
|
{
|
|
"id": 3,
|
|
"title": "Batteries - État de Charge (kWh) - 10 batteries",
|
|
"type": "gauge",
|
|
"gridPos": {"h": 8, "w": 8, "x": 0, "y": 8},
|
|
"datasource": {"type": "influxdb", "uid": "influxdb-v2"},
|
|
"targets": [{
|
|
"query": "from(bucket:\"smartcity\") |> range(start: -5m) |> filter(fn: (r) => r[\"_measurement\"] == \"mqtt_consumer\") |> filter(fn: (r) => r[\"topic\"] =~ /bat_/) |> mean()",
|
|
"refId": "A"
|
|
}],
|
|
"fieldConfig": {
|
|
"defaults": {"unit": "kWh", "min": 0, "max": 100, "thresholds": {"steps": [{"color": "red", "value": 0}, {"color": "yellow", "value": 20}, {"color": "green", "value": 50}]}}
|
|
}
|
|
},
|
|
{
|
|
"id": 4,
|
|
"title": "VE V2G - État de Charge (kWh) - 10 véhicules",
|
|
"type": "gauge",
|
|
"gridPos": {"h": 8, "w": 8, "x": 8, "y": 8},
|
|
"datasource": {"type": "influxdb", "uid": "influxdb-v2"},
|
|
"targets": [{
|
|
"query": "from(bucket:\"smartcity\") |> range(start: -5m) |> filter(fn: (r) => r[\"_measurement\"] == \"mqtt_consumer\") |> filter(fn: (r) => r[\"topic\"] =~ /ev_/) |> mean()",
|
|
"refId": "A"
|
|
}],
|
|
"fieldConfig": {
|
|
"defaults": {"unit": "kWh", "min": 0, "max": 75, "thresholds": {"steps": [{"color": "red", "value": 0}, {"color": "yellow", "value": 15}, {"color": "green", "value": 40}]}}
|
|
}
|
|
},
|
|
{
|
|
"id": 5,
|
|
"title": "Flexibilité Disponible (kW)",
|
|
"type": "stat",
|
|
"gridPos": {"h": 8, "w": 8, "x": 16, "y": 8},
|
|
"datasource": {"type": "influxdb", "uid": "influxdb-v2"},
|
|
"targets": [{
|
|
"query": "from(bucket:\"smartcity\") |> range(start: -5m) |> filter(fn: (r) => r[\"_measurement\"] == \"mqtt_consumer\") |> filter(fn: (r) => r[\"topic\"] =~ /bat_|ev_/) |> mean()",
|
|
"refId": "A"
|
|
}],
|
|
"fieldConfig": {"defaults": {"unit": "kW", "min": 0}}
|
|
},
|
|
{
|
|
"id": 6,
|
|
"title": "Carte des Actifs Cariflex",
|
|
"type": "geomap",
|
|
"gridPos": {"h": 10, "w": 24, "x": 0, "y": 16},
|
|
"datasource": {"type": "postgres", "uid": "PostgreSQL-SmartCity"},
|
|
"targets": [{
|
|
"rawSql": "SELECT g.name, g.latitude, g.longitude, gt.name as type FROM generic_asset g JOIN generic_asset_type gt ON g.generic_asset_type_id = gt.id WHERE g.account_id = 1 ORDER BY gt.id, g.id",
|
|
"refId": "A"
|
|
}],
|
|
"options": {"view": {"center": [14.6, -61.2], "zoom": 10}}
|
|
}
|
|
]
|
|
},
|
|
"overwrite": true
|
|
}
|