|
|
|
@ -271,6 +271,10 @@ def grid_yearly(): |
|
|
|
|
sen = request.args.get('sensor', 'Temp_MP1_1_Pos1') |
|
|
|
|
typ = request.args.get('type', 'celsius') |
|
|
|
|
yea = request.args.get('year', '2023') |
|
|
|
|
hou = int(request.args.get('hour', '0')) |
|
|
|
|
|
|
|
|
|
# Make sure format is right |
|
|
|
|
hou = f'{hou:02d}' |
|
|
|
|
|
|
|
|
|
# Get the columns for the sensor |
|
|
|
|
table_name, col_name, fam = get_table_col_fam(hus, sen, typ) |
|
|
|
@ -278,11 +282,11 @@ def grid_yearly(): |
|
|
|
|
sql_col_names = ','.join(f'"{x}"' for x in col_names) |
|
|
|
|
|
|
|
|
|
query = f'SELECT {sql_col_names} FROM {table_name}' |
|
|
|
|
query += f' WHERE Year=?' |
|
|
|
|
query += f' WHERE Year=? AND Hour=?' |
|
|
|
|
query += f' GROUP BY Year,Month,Day;' |
|
|
|
|
|
|
|
|
|
conn = sqlite3.connect(DB_NAMES[hus]) |
|
|
|
|
cur = conn.execute(query, [yea]) |
|
|
|
|
cur = conn.execute(query, [yea, hou]) |
|
|
|
|
res_all = cur.fetchall() |
|
|
|
|
|
|
|
|
|
out = [] |
|
|
|
@ -301,8 +305,10 @@ def grid_monthly(): |
|
|
|
|
typ = request.args.get('type', 'celsius') |
|
|
|
|
yea = request.args.get('year', '2023') |
|
|
|
|
mon = int(request.args.get('month', '1')) |
|
|
|
|
hou = int(request.args.get('hour', '0')) |
|
|
|
|
|
|
|
|
|
# Make sure the format is right |
|
|
|
|
# Make sure format is right |
|
|
|
|
hou = f'{hou:02d}' |
|
|
|
|
mon = f'{mon:02d}' |
|
|
|
|
|
|
|
|
|
# Get the columns for the sensor |
|
|
|
@ -311,11 +317,11 @@ def grid_monthly(): |
|
|
|
|
sql_col_names = ','.join(f'"{x}"' for x in col_names) |
|
|
|
|
|
|
|
|
|
query = f'SELECT {sql_col_names} FROM {table_name}' |
|
|
|
|
query += f' WHERE Year=? AND Month=?' |
|
|
|
|
query += f' WHERE Year=? AND Month=? AND Hour=?' |
|
|
|
|
query += f' GROUP BY Year,Month,Day;' |
|
|
|
|
|
|
|
|
|
conn = sqlite3.connect(DB_NAMES[hus]) |
|
|
|
|
cur = conn.execute(query, [yea, mon]) |
|
|
|
|
cur = conn.execute(query, [yea, mon, hou]) |
|
|
|
|
res_all = cur.fetchall() |
|
|
|
|
|
|
|
|
|
out = [] |
|
|
|
@ -333,7 +339,11 @@ def grid_weekly(): |
|
|
|
|
sen = request.args.get('sensor', 'Temp_MP1_1_Pos1') |
|
|
|
|
typ = request.args.get('type', 'celsius') |
|
|
|
|
yea = int(request.args.get('year', '2023')) |
|
|
|
|
wee = int(request.args.get('week', '1')) |
|
|
|
|
wee = int(request.args.get('week', '1')) |
|
|
|
|
hou = int(request.args.get('hour', '0')) |
|
|
|
|
|
|
|
|
|
# Make sure format is right |
|
|
|
|
hou = f'{hou:02d}' |
|
|
|
|
|
|
|
|
|
monday = date.fromisocalendar(yea, wee, 1) |
|
|
|
|
weekday_names = ['Monday','Tuesday','Wednesday','Thursday','Friday','Saturday','Sunday'] |
|
|
|
@ -346,12 +356,14 @@ def grid_weekly(): |
|
|
|
|
sql_col_names = ','.join(f'"{x}"' for x in col_names) |
|
|
|
|
|
|
|
|
|
# Complex query to get each day separately |
|
|
|
|
query = f'SELECT {sql_col_names} FROM {table_name} WHERE ' |
|
|
|
|
query += 'OR'.join(['(Year=? AND Month=? AND Day=?)'] * len(weekdays)) |
|
|
|
|
query = f'SELECT {sql_col_names} FROM {table_name} WHERE (' |
|
|
|
|
query += 'OR'.join(['(Year=? AND Month=? AND Day=?)'] * len(weekdays)) |
|
|
|
|
query += ') AND Hour=?' |
|
|
|
|
query += f' GROUP BY Year,Month,Day;' |
|
|
|
|
|
|
|
|
|
# Break each date into three components then merge them all (in a flat list) |
|
|
|
|
params = [y for d in list(weekdays.keys()) for y in d.split('-')] |
|
|
|
|
params.append(hou) |
|
|
|
|
|
|
|
|
|
conn = sqlite3.connect(DB_NAMES[hus]) |
|
|
|
|
cur = conn.execute(query, params) |
|
|
|
|