summaryrefslogtreecommitdiff
path: root/ebus/webapp/__init__.py
blob: 486187b2efee33c4e5ba573d14bbf7c59cceb83d (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
# -*- coding: utf-8 -*-

import bottle 
from sqlalchemy import create_engine
from sqlalchemy.orm import sessionmaker

from ebus.sql import model
import os
import json
import datetime
import time
app = bottle.Bottle("ebus")
bottle.debug()

engine = create_engine("postgresql://ebus:ebus@10.2.2.26/ebus", echo=True)
Session = sessionmaker()
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/: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()
	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)
	values = values.filter(model.Value.timestamp.between(first,last))
	v = []
	for value in values.all():
		v.append([int(time.mktime(value.timestamp.timetuple())*1000),value.value_float])
	return json.dumps(v)	
	#return "<pre> %s </pre>" % dir(values[0])
	#return json.dumps(data)