modified: srcdev/INSTALL.md

modified:   srcdev/api.py
This commit is contained in:
TC
2023-11-04 13:38:13 +01:00
parent 9b7255c291
commit 73fa6fd5e4
2 changed files with 11 additions and 5 deletions

View File

@@ -99,6 +99,7 @@ Aby pobrać dane z API w formacie JSON należy użyć adresu http://home_assista
| mp | numer licznika | | mp | numer licznika |
| meter_type_url | typ licznika (np. A+: A%2B, A-: A- ) | | meter_type_url | typ licznika (np. A+: A%2B, A-: A- ) |
| zone | numer strefy (np. 1, 2) | | 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 ## Jak dodać wykres do Grafana
### Źródło danych ### Źródło danych

View File

@@ -194,6 +194,8 @@ def get_countners(ppe_id, meter_type_url, tariff):
@app.route('/charts', methods=['GET']) @app.route('/charts', methods=['GET'])
@app.route('/charts/', methods=['GET']) @app.route('/charts/', methods=['GET'])
def charts(): def charts():
current_time = datetime.datetime.now() current_time = datetime.datetime.now()
current_time_unix = time.mktime(current_time.timetuple()) current_time_unix = time.mktime(current_time.timetuple())
start_time = current_time - datetime.timedelta(days=1) start_time = current_time - datetime.timedelta(days=1)
@@ -203,9 +205,13 @@ def charts():
mp = request.args.get('mp', None) mp = request.args.get('mp', None)
meter_type_url = request.args.get('meter_type_url', 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))) 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: if mp:
query = query.where(MainChartTable.mp == mp) query = query.where(MainChartTable.mp == mp)
@@ -228,10 +234,9 @@ def charts():
'zone': p.zone, 'zone': p.zone,
'time_tm': p.tm, 'time_tm': p.tm,
'time': czas, 'time': czas,
'value': p.value 'value': p.value * factor
} }
charts.append(chart) charts.append(chart)
end_time = time.time() end_time = time.time()
logger.debug(f"API: GET /charts - {start_date} - {end_date}")
return jsonify({'charts': charts}) return jsonify({'charts': charts})