wykres z gap
This commit is contained in:
18
app.py
18
app.py
@@ -205,6 +205,7 @@ def get_timeseries(phase_id):
|
||||
datetime.fromisoformat(end_param.replace("Z", "+00:00"))
|
||||
except Exception:
|
||||
return api_error(400, "bad_datetime", "start/end must be ISO 8601")
|
||||
|
||||
time_filter = f"time >= '{start_param}' AND time <= '{end_param}'"
|
||||
interval = config.DEFAULT_INTERVAL
|
||||
else:
|
||||
@@ -213,6 +214,7 @@ def get_timeseries(phase_id):
|
||||
parse_range(clean_range)
|
||||
except Exception:
|
||||
return api_error(400, "bad_range", "range must be like 24h or 7d")
|
||||
|
||||
time_filter = f"time > now() - {clean_range}"
|
||||
interval = config.TIME_RANGES.get(range_param, {}).get("interval", config.DEFAULT_INTERVAL)
|
||||
|
||||
@@ -221,17 +223,21 @@ def get_timeseries(phase_id):
|
||||
FROM "{config.MEASUREMENT}"
|
||||
WHERE "entity_id" = '{entity_id}'
|
||||
AND {time_filter}
|
||||
GROUP BY time({interval}) fill(none)
|
||||
GROUP BY time({interval}) fill(null)
|
||||
'''
|
||||
|
||||
client = get_influx_client()
|
||||
try:
|
||||
result = client.query(query)
|
||||
data = [
|
||||
{"time": p["time"], "voltage": round(p["voltage"], 2)}
|
||||
for p in result.get_points()
|
||||
if p.get("voltage") is not None
|
||||
]
|
||||
data = []
|
||||
for p in result.get_points():
|
||||
v = p.get("voltage")
|
||||
data.append(
|
||||
{
|
||||
"time": p["time"],
|
||||
"voltage": (round(float(v), 2) if v is not None else None),
|
||||
}
|
||||
)
|
||||
return jsonify(data)
|
||||
except Exception as e:
|
||||
app.logger.error(f"Timeseries Error: {e} | Query: {query}")
|
||||
|
||||
Reference in New Issue
Block a user