Files
cariflex/config/cariflex-dashboard.json
Eric F 6fe79471f3 Fix simulator (use FM client), install entsoe+weather plugins, fix Redis
- 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
2026-06-08 08:33:16 -04:00

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
}