#!/usr/bin/env python
from flask import Flask, flash, redirect, render_template_string
from flask import render_template, request, session, abort
import os
app = Flask(__name__)
def button_widget(topic, label, pub_value):
def f():
template = '''
'''
return render_template_string(
template, topic=topic, label=label, pub_value=pub_value)
return f
def label_widget(topic, label, unit=''):
def f():
template = '''
'''
return render_template_string(
template, topic=topic, label=label, unit=unit)
return f
def log_widget(topic, label):
def f():
template = '''
'''
return render_template_string(template, topic=topic, label=label)
return f
def row_layout(title, *elems):
def f():
template = '''
{{title}}
{% for w in elems %}
{{w()|safe}}
{% endfor %}
'''
return render_template_string(template, title=title, elems=elems)
return f
@app.route('/')
def home():
return render_template(
'base.html',
widgets=[
label_widget("test", "test value", "%"),
row_layout(
"Temperature",
label_widget("home/sensors/livingroom/temperature",
"livingroom", "°C"),
label_widget("home/sensors/office/temperature", "office",
"°C"),
label_widget("home/sensors/bedroom/temperature", "bedroom",
"°C")),
row_layout("Device logs", log_widget("test", "test log"),
log_widget("test2", "test log 2")),
button_widget("test", "set to 1", 1),
button_widget("test", "set to foo", 'foo')
])
if __name__ == "__main__":
app.secret_key = os.urandom(12)
app.run(debug=True, host='0.0.0.0', port=4000)