summaryrefslogtreecommitdiff
path: root/ebus/webapp/__init__.py
diff options
context:
space:
mode:
Diffstat (limited to 'ebus/webapp/__init__.py')
-rw-r--r--ebus/webapp/__init__.py43
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)