diff options
Diffstat (limited to 'ebus/webapp/__init__.py')
-rw-r--r-- | ebus/webapp/__init__.py | 43 |
1 files changed, 29 insertions, 14 deletions
diff --git a/ebus/webapp/__init__.py b/ebus/webapp/__init__.py index 486187b..76cec16 100644 --- a/ebus/webapp/__init__.py +++ b/ebus/webapp/__init__.py @@ -19,27 +19,42 @@ Session.configure(bind=engine) @app.route('/') def index_file(): return static_files("index.html") - #return bottle.static_file("index.html", root="./static") @app.route('/static/:filename') def static_files(filename): return bottle.static_file(filename, root=os.path.join(os.path.dirname(__file__),"static")) +@app.route('/sensor/:name') +def sensor_data_single(name): + #s = Session() + #sensorid = s.query(model.Sensor).filter(model.Sensor.name == name).first() + #values = Session().query(model.Value).add_columns("timestamp","value_float","value_string","value_int") + #values = values.filter(model.Value.sensor == sensorid) + #return json.dumps(values.first().value_int) + return sensor_data_fromto(name,None,None) + @app.route('/sensor/:name/:startdate/:enddate') -def sensor_data(name,startdate,enddate): - #data = [-10,50935],[-9,50305],[-8,50403] - now = datetime.datetime.now() - # -24h - first = now.date() - datetime.timedelta(2) - last = now.date() +def sensor_data_fromto(name,startdate,enddate): s = Session() - sensorid = s.query(model.Sensor).filter(model.Sensor.name == name).first() + sensorid = s.query(model.Sensor).filter(model.Sensor.name == name).first() values = Session().query(model.Value).add_columns("timestamp","value_float","value_string","value_int") - values = values.filter(model.Value.sensor == sensorid) - values = values.filter(model.Value.timestamp.between(first,last)) + values = values.filter(model.Value.sensor == sensorid) + + if startdate == None or enddate == None: + queried_values = [] + queried_values.append(values.first()) + else: + now = datetime.datetime.now() + f = datetime.datetime.fromtimestamp(float(startdate)) + t = datetime.datetime.fromtimestamp(float(enddate)) + values = values.filter(model.Value.timestamp.between(f,t)) + queried_values = values.all() v = [] - for value in values.all(): - v.append([int(time.mktime(value.timestamp.timetuple())*1000),value.value_float]) + for value in queried_values: + if value.value_float != None: + v.append([int((time.mktime(value.timestamp.timetuple())+time.altzone*-1)*1000),value.value_float]) # time.altzone ist negativ + elif value.value_int != None: + v.append([int((time.mktime(value.timestamp.timetuple())+time.altzone*-1)*1000),value.value_int]) + elif value.value_string != None: + v.append([int((time.mktime(value.timestamp.timetuple())+time.altzone*-1)*1000),value.value_string]) return json.dumps(v) - #return "<pre> %s </pre>" % dir(values[0]) - #return json.dumps(data) |