From 73fa6fd5e4db407315885a10e3081af14119e938 Mon Sep 17 00:00:00 2001 From: TC Date: Sat, 4 Nov 2023 13:38:13 +0100 Subject: [PATCH] modified: srcdev/INSTALL.md modified: srcdev/api.py --- srcdev/INSTALL.md | 1 + srcdev/api.py | 15 ++++++++++----- 2 files changed, 11 insertions(+), 5 deletions(-) diff --git a/srcdev/INSTALL.md b/srcdev/INSTALL.md index eb345f7..1df09fc 100644 --- a/srcdev/INSTALL.md +++ b/srcdev/INSTALL.md @@ -99,6 +99,7 @@ Aby pobrać dane z API w formacie JSON należy użyć adresu http://home_assista | mp | numer licznika | | meter_type_url | typ licznika (np. A+: A%2B, A-: A- ) | | zone | numer strefy (np. 1, 2) | +| negative | dodanie parametru z dowolną wartością powoduje, że pomiar jest wartością ujemną| ## Jak dodać wykres do Grafana ### Źródło danych diff --git a/srcdev/api.py b/srcdev/api.py index 391c69d..522a136 100644 --- a/srcdev/api.py +++ b/srcdev/api.py @@ -194,6 +194,8 @@ def get_countners(ppe_id, meter_type_url, tariff): @app.route('/charts', methods=['GET']) @app.route('/charts/', methods=['GET']) def charts(): + + current_time = datetime.datetime.now() current_time_unix = time.mktime(current_time.timetuple()) start_time = current_time - datetime.timedelta(days=1) @@ -202,10 +204,14 @@ def charts(): end_date = request.args.get('end_date', current_time_unix*1000) mp = request.args.get('mp', None) meter_type_url = request.args.get('meter_type_url', None) - zone = request.args.get('zone', None) - + zone = request.args.get('zone', None) + negative = request.args.get('negative', type=bool, default=False) + logger.debug(f"API: GET /charts - {start_date} - {end_date}") query = MainChartTable.select().where((MainChartTable.tm >= int(start_date)) & (MainChartTable.tm <= int(end_date))) - + logger.debug(f"{query}") + factor = 1 + if negative: + factor = -1 if mp: query = query.where(MainChartTable.mp == mp) @@ -228,10 +234,9 @@ def charts(): 'zone': p.zone, 'time_tm': p.tm, 'time': czas, - 'value': p.value + 'value': p.value * factor } charts.append(chart) end_time = time.time() - logger.debug(f"API: GET /charts - {start_date} - {end_date}") return jsonify({'charts': charts})