Continue Flask migration.
This commit is contained in:
parent
f85a1564b0
commit
29d1bb35c1
@ -10,3 +10,73 @@ flask_settings_dev:
|
|||||||
flask_settings_prod:
|
flask_settings_prod:
|
||||||
DEBUG: False
|
DEBUG: False
|
||||||
SQLALCHEMY_TRACK_MODIFICATIONS: True
|
SQLALCHEMY_TRACK_MODIFICATIONS: True
|
||||||
|
|
||||||
|
targets:
|
||||||
|
- target_awake_temperature
|
||||||
|
- target_sleep_temperature
|
||||||
|
- target_frost_protection
|
||||||
|
|
||||||
|
modes:
|
||||||
|
- short_absence
|
||||||
|
- long_absence
|
||||||
|
|
||||||
|
rooms_settings:
|
||||||
|
"double bedroom":
|
||||||
|
target_awake_temperature: 19
|
||||||
|
target_unconfirmed_awake_temperature: 18
|
||||||
|
target_sleep_temperature: 18
|
||||||
|
target_unconfirmed_sleep_temperature: 18
|
||||||
|
target_frost_protection: 6
|
||||||
|
metric: Modane_temperature_double_bedroom
|
||||||
|
relays: "1"
|
||||||
|
enabled: True
|
||||||
|
"single bedroom":
|
||||||
|
target_awake_temperature: 17
|
||||||
|
target_unconfirmed_awake_temperature: 16
|
||||||
|
target_sleep_temperature: 16
|
||||||
|
target_unconfirmed_sleep_temperature: 16
|
||||||
|
target_frost_protection: 6
|
||||||
|
metric: Modane_temperature_single_bedroom
|
||||||
|
relays: "3"
|
||||||
|
enabled: True
|
||||||
|
"living room":
|
||||||
|
target_awake_temperature: 21
|
||||||
|
target_unconfirmed_awake_temperature: 21
|
||||||
|
target_sleep_temperature: 18
|
||||||
|
target_unconfirmed_sleep_temperature: 18
|
||||||
|
target_frost_protection: 6
|
||||||
|
metric: Modane_temperature_living_room
|
||||||
|
relays: "4"
|
||||||
|
enabled: True
|
||||||
|
"bathroom":
|
||||||
|
target_awake_temperature: 21
|
||||||
|
target_unconfirmed_awake_temperature: 21
|
||||||
|
target_sleep_temperature: 19
|
||||||
|
target_unconfirmed_sleep_temperature: 19
|
||||||
|
target_frost_protection: 6
|
||||||
|
metric: Modane_temperature_bathroom
|
||||||
|
relays: ""
|
||||||
|
enabled: False
|
||||||
|
|
||||||
|
shedding_order:
|
||||||
|
- double bedroom
|
||||||
|
- single bedroom
|
||||||
|
- living room
|
||||||
|
|
||||||
|
default_target: target_frost_protection
|
||||||
|
|
||||||
|
# Load in VA
|
||||||
|
relays_load:
|
||||||
|
"1": 1500
|
||||||
|
"3": 1500
|
||||||
|
"4": 2000
|
||||||
|
|
||||||
|
awake_hour: "7:30"
|
||||||
|
sleep_hour: "23:30"
|
||||||
|
forced_mode_duration: 7200.0
|
||||||
|
load_shedder_interval: 10.0
|
||||||
|
relay_control_interval: 300.0
|
||||||
|
hysteresis: 0.5
|
||||||
|
max_load: 7800
|
||||||
|
load_margin: 100
|
||||||
|
|
||||||
|
@ -8,6 +8,7 @@ import logging
|
|||||||
import yaml
|
import yaml
|
||||||
import os
|
import os
|
||||||
import sys
|
import sys
|
||||||
|
import datetime
|
||||||
|
|
||||||
logging.basicConfig(level=logging.WARNING)
|
logging.basicConfig(level=logging.WARNING)
|
||||||
|
|
||||||
@ -62,6 +63,24 @@ def auth_required(func):
|
|||||||
return func(*args, **kwargs)
|
return func(*args, **kwargs)
|
||||||
return check_auth
|
return check_auth
|
||||||
|
|
||||||
|
##
|
||||||
|
def now():
|
||||||
|
return "["+datetime.datetime.now().strftime("%c")+"]"
|
||||||
|
|
||||||
|
def enabled_rooms():
|
||||||
|
rooms_list=[]
|
||||||
|
for room in rooms_settings:
|
||||||
|
if rooms_settings[room]["enabled"]:
|
||||||
|
rooms_list.append(room)
|
||||||
|
return rooms_list
|
||||||
|
|
||||||
|
def status_as_text():
|
||||||
|
return 'target: '+target_name+'\n'\
|
||||||
|
+'forced_mode: '+str(forced_mode)+'\n'\
|
||||||
|
+'\n'.join(['Target temperature for '+room+': '+str(rooms_settings[room][target_name])+'\n'+'Current temperature for '+room+': '+str(get_metric(rooms_settings[room]["metric"], current_time, relay_control_interval)) for room in enabled_rooms()])
|
||||||
|
|
||||||
|
##
|
||||||
|
|
||||||
app = Flask(__name__)
|
app = Flask(__name__)
|
||||||
app.config.from_mapping(flask_settings)
|
app.config.from_mapping(flask_settings)
|
||||||
app.config.from_mapping(flask_settings_env)
|
app.config.from_mapping(flask_settings_env)
|
||||||
@ -104,27 +123,7 @@ class Set_mode_thermostat(Resource):
|
|||||||
class Status_thermostat(Resource):
|
class Status_thermostat(Resource):
|
||||||
@auth_required
|
@auth_required
|
||||||
def get(self):
|
def get(self):
|
||||||
logging.debug(json.loads(request.args.get("filter")))
|
result = dict(datas=status_as_text())
|
||||||
page = request.args.get('page', default = 1, type = int)
|
|
||||||
filters = json.loads(request.args.get("filter", default = '*', type = str))
|
|
||||||
record_query = Stock.query.filter()
|
|
||||||
for stock_filter in filters:
|
|
||||||
if 'name' in stock_filter.keys():
|
|
||||||
if stock_filter['name'] == 'metric':
|
|
||||||
record_query = record_query.filter(Stock.metric == stock_filter["val"])
|
|
||||||
if stock_filter['name'] in ['price', 'volume', 'time']:
|
|
||||||
if stock_filter['op'] == 'le':
|
|
||||||
record_query = record_query.filter(getattr(Stock, stock_filter['name']) <= stock_filter["val"])
|
|
||||||
if stock_filter['op'] == 'ge':
|
|
||||||
record_query = record_query.filter(getattr(Stock, stock_filter['name']) >= stock_filter["val"])
|
|
||||||
if stock_filter['op'] == 'eq':
|
|
||||||
record_query = record_query.filter(getattr(Stock, stock_filter['name']) == stock_filter["val"])
|
|
||||||
|
|
||||||
record_query = record_query.paginate(page=page, per_page=20)
|
|
||||||
result = dict(datas=record_query.items,
|
|
||||||
total_results=record_query.total,
|
|
||||||
current_page=record_query.page,
|
|
||||||
pages=record_query.pages)
|
|
||||||
logging.debug(result)
|
logging.debug(result)
|
||||||
return result
|
return result
|
||||||
|
|
||||||
@ -136,7 +135,6 @@ migrate = Migrate(app, db, compare_type=True)
|
|||||||
|
|
||||||
#import subprocess
|
#import subprocess
|
||||||
#import time
|
#import time
|
||||||
#import datetime
|
|
||||||
#from datetime import timezone
|
#from datetime import timezone
|
||||||
#import requests
|
#import requests
|
||||||
#import argparse
|
#import argparse
|
||||||
@ -176,8 +174,6 @@ migrate = Migrate(app, db, compare_type=True)
|
|||||||
#elif verbosity == 'WARNING':
|
#elif verbosity == 'WARNING':
|
||||||
# logging.basicConfig(level=logging.WARNING)
|
# logging.basicConfig(level=logging.WARNING)
|
||||||
#
|
#
|
||||||
#def now():
|
|
||||||
# return "["+datetime.datetime.now().strftime("%c")+"]"
|
|
||||||
#
|
#
|
||||||
#def api_help():
|
#def api_help():
|
||||||
# return """
|
# return """
|
||||||
@ -193,18 +189,8 @@ migrate = Migrate(app, db, compare_type=True)
|
|||||||
#+'Permanent forced modes:\n'\
|
#+'Permanent forced modes:\n'\
|
||||||
#+'\n'.join(['# /'+mode+'\n' for mode in modes])
|
#+'\n'.join(['# /'+mode+'\n' for mode in modes])
|
||||||
#
|
#
|
||||||
#def enabled_rooms():
|
|
||||||
# rooms_list=[]
|
|
||||||
# for room in rooms_settings:
|
|
||||||
# if rooms_settings[room]["enabled"]:
|
|
||||||
# rooms_list.append(room)
|
|
||||||
# return rooms_list
|
|
||||||
#
|
|
||||||
#def status_as_text():
|
|
||||||
# return 'target: '+target_name+'\n'\
|
|
||||||
# +'forced_mode: '+str(forced_mode)+'\n'\
|
|
||||||
# +'\n'.join(['Target temperature for '+room+': '+str(rooms_settings[room][target_name])+'\n'+'Current temperature for '+room+': '+str(get_metric(rooms_settings[room]["metric"], current_time, relay_control_interval)) for room in enabled_rooms()])
|
|
||||||
#
|
|
||||||
#def relay_state(relay):
|
#def relay_state(relay):
|
||||||
# try:
|
# try:
|
||||||
# returned_output = subprocess.check_output(["./relay.py", relay, "status"])
|
# returned_output = subprocess.check_output(["./relay.py", relay, "status"])
|
||||||
|
Loading…
Reference in New Issue
Block a user