From: Philipp Spitzer Date: Mon, 11 Jun 2018 20:55:23 +0000 (+0200) Subject: Add API to view sensors. X-Git-Url: https://git.toastfreeware.priv.at/chrisu/seepark.git/commitdiff_plain/399e4efcc12eb206d749d6bc1cafd02d97f6b040 Add API to view sensors. --- diff --git a/web/seepark_web.py b/web/seepark_web.py index 5263174..b9a3bb1 100644 --- a/web/seepark_web.py +++ b/web/seepark_web.py @@ -3,16 +3,36 @@ from random import uniform import time import configparser import os +from sqlalchemy import create_engine app = Flask(__name__) config = configparser.ConfigParser() config.read(os.environ['SEEPARKINI']) -apikey = config.get('openweathermap', 'apikey'); +apikey = config.get('openweathermap', 'apikey') + + +def open_engine(config): + user = config.get('database', 'user') + pwd = config.get('database', 'password') + host = config.get('database', 'hostname') + db = config.get('database', 'database') + engine = create_engine('mysql+mysqldb://{}:{}@{}/{}'.format(user, pwd, host, db), echo=False) + return engine + + +@app.route('/api//sensors') +def sensors(version): + """List all sensors found in the database""" + engine = open_engine(config) + with engine.connect() as conn: + cursor = conn.execute('select distinct sensor_id, sensor_name, value_type from sensors') + result = [dict(row) for row in cursor] + return jsonify(result) + @app.route('/data/', defaults={'timespan': 1}) @app.route("/data/", methods=['GET']) def data(timespan): - granularity = 5 * timespan # (every) minute(s) per day samples = 60/granularity * 24 * timespan # per hour over whole timespan s4m = []