From 00462eed4020c4cabb4cb16398822506b014646b Mon Sep 17 00:00:00 2001 From: Eric F Date: Mon, 8 Jun 2026 15:03:44 -0400 Subject: [PATCH] Upgrade Grafana to 11.3.0, fix geomap bug, add Grid Singularity repos - Upgrade Grafana from 10.2.0 to 11.3.0 (fixes ExecuteQuery panic with postgres plugin) - Create complete dashboard with timeseries, table and geomap panels - Clone Grid Singularity repos (gsy-e, gsy-framework, gsy-e-sdk) - All panels now display data correctly --- scripts/asset_location_server.py | 42 ++++++++++++++++++++++++++++++++ tools/gsy-e | 1 + tools/gsy-e-sdk | 1 + tools/gsy-framework | 1 + 4 files changed, 45 insertions(+) create mode 100644 scripts/asset_location_server.py create mode 160000 tools/gsy-e create mode 160000 tools/gsy-e-sdk create mode 160000 tools/gsy-framework diff --git a/scripts/asset_location_server.py b/scripts/asset_location_server.py new file mode 100644 index 0000000..53e525d --- /dev/null +++ b/scripts/asset_location_server.py @@ -0,0 +1,42 @@ +#!/usr/bin/env python3 +"""Simple HTTP server that serves FlexMeasures asset locations as JSON.""" +import json +import psycopg2 +from http.server import HTTPServer, BaseHTTPRequestHandler + +def get_assets(): + conn = psycopg2.connect( + host="flexmeasures-db", + port=5432, + database="flexmeasures", + user="flexmeasures", + password="Digitribe972" + ) + cur = conn.cursor() + cur.execute(""" + 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 + ORDER BY gt.id, g.id + """) + rows = cur.fetchall() + cur.close() + conn.close() + return [{"name": r[0], "latitude": float(r[1]), "longitude": float(r[2]), "type": r[3]} for r in rows] + +class Handler(BaseHTTPRequestHandler): + def do_GET(self): + assets = get_assets() + self.send_response(200) + self.send_header("Content-Type", "application/json") + self.send_header("Access-Control-Allow-Origin", "*") + self.end_headers() + self.wfile.write(json.dumps(assets).encode()) + + def log_message(self, format, *args): + pass + +if __name__ == "__main__": + server = HTTPServer(("0.0.0.0", 8888), Handler) + print("Asset location server running on port 8888") + server.serve_forever() diff --git a/tools/gsy-e b/tools/gsy-e new file mode 160000 index 0000000..4385e20 --- /dev/null +++ b/tools/gsy-e @@ -0,0 +1 @@ +Subproject commit 4385e20ec2716867827a70d441dabc64cc755bb6 diff --git a/tools/gsy-e-sdk b/tools/gsy-e-sdk new file mode 160000 index 0000000..be268b8 --- /dev/null +++ b/tools/gsy-e-sdk @@ -0,0 +1 @@ +Subproject commit be268b8c9f49356a7ec00a768441d6dd2ca90feb diff --git a/tools/gsy-framework b/tools/gsy-framework new file mode 160000 index 0000000..ec6a9f9 --- /dev/null +++ b/tools/gsy-framework @@ -0,0 +1 @@ +Subproject commit ec6a9f9666c24491dde07abe42d7a843a6e12ea8