I broke it.
This commit is contained in:
112
pi_temp.py
112
pi_temp.py
@ -50,6 +50,7 @@ import datetime
|
|||||||
import arrow
|
import arrow
|
||||||
import json
|
import json
|
||||||
import plotly
|
import plotly
|
||||||
|
import sqlite3
|
||||||
from plotly.graph_objs import *
|
from plotly.graph_objs import *
|
||||||
|
|
||||||
app = Flask(__name__)
|
app = Flask(__name__)
|
||||||
@ -84,61 +85,60 @@ def history():
|
|||||||
print "rendering history.html with: %s, %s, %s" % (timezone, from_date_str, to_date_str)
|
print "rendering history.html with: %s, %s, %s" % (timezone, from_date_str, to_date_str)
|
||||||
|
|
||||||
# Create new record tables so that datetimes are adjusted back to the user browser's time zone.
|
# Create new record tables so that datetimes are adjusted back to the user browser's time zone.
|
||||||
time_series_adjusted_tempreratures = []
|
# time_series_adjusted_temperatures = []
|
||||||
time_series_adjusted_humidities = []
|
# time_series_adjusted_humidities = []
|
||||||
time_series_temprerature_values = []
|
# time_series_temperature_values = []
|
||||||
time_series_humidity_values = []
|
# time_series_humidity_values = []
|
||||||
|
#
|
||||||
for record in temperatures:
|
# for record in temperatures:
|
||||||
local_timedate = arrow.get(record[0], "YYYY-MM-DD HH:mm").to(timezone)
|
# local_timedate_series = arrow.get(record[0], "YYYY-MM-DD HH:mm").to(timezone)
|
||||||
time_series_adjusted_tempreratures.append(local_timedate.format('YYYY-MM-DD HH:mm'))
|
# time_series_adjusted_temperatures.append(local_timedate_series.format('YYYY-MM-DD HH:mm'))
|
||||||
time_series_temprerature_values.append(round(record[2],2))
|
# time_series_temperature_values.append(round(record[2],2))
|
||||||
|
#
|
||||||
for record in humidities:
|
# for record in humidities:
|
||||||
local_timedate = arrow.get(record[0], "YYYY-MM-DD HH:mm").to(timezone)
|
# local_timedate_series = arrow.get(record[0], "YYYY-MM-DD HH:mm").to(timezone)
|
||||||
time_series_adjusted_humidities.append(local_timedate.format('YYYY-MM-DD HH:mm')) #Best to pass datetime in text
|
# time_series_adjusted_humidities.append(local_timedate_series.format('YYYY-MM-DD HH:mm')) #Best to pass datetime in text
|
||||||
# so that Plotly respects it
|
# so that Plotly respects it
|
||||||
time_series_humidity_values.append(round(record[2],2))
|
# time_series_humidity_values.append(round(record[2],2))
|
||||||
|
#
|
||||||
|
#
|
||||||
temp = Scatter(
|
# temp = Scatter(
|
||||||
x=time_series_adjusted_tempreratures,
|
# x=time_series_adjusted_temperatures,
|
||||||
y=time_series_temprerature_values,
|
# y=time_series_temperature_values,
|
||||||
name='Temperature'
|
# name='Temperature'
|
||||||
)
|
# )
|
||||||
hum = Scatter(
|
# hum = Scatter(
|
||||||
x=time_series_adjusted_humidities,
|
# x=time_series_adjusted_humidities,
|
||||||
y=time_series_humidity_values,
|
# y=time_series_humidity_values,
|
||||||
name='Humidity',
|
# name='Humidity',
|
||||||
yaxis='y2'
|
# yaxis='y2'
|
||||||
)
|
# )
|
||||||
|
#
|
||||||
data = Data([temp, hum])
|
# data = Data([temp, hum])
|
||||||
|
#
|
||||||
layout = Layout(
|
# layout = Layout(
|
||||||
title="Temperature and Humidity in Clayton's Apartment",
|
# title="Temperature and Humidity",
|
||||||
xaxis=XAxis(
|
# xaxis=XAxis(
|
||||||
type='date',
|
# type='date',
|
||||||
autorange=True
|
# autorange=True
|
||||||
),
|
# ),
|
||||||
yaxis=YAxis(
|
# yaxis=YAxis(
|
||||||
title='Fahrenheit',
|
# title='Fahrenheit',
|
||||||
type='linear',
|
# type='linear',
|
||||||
autorange=True
|
# autorange=True
|
||||||
),
|
# ),
|
||||||
yaxis2=YAxis(
|
# yaxis2=YAxis(
|
||||||
title='Percent',
|
# title='Percent',
|
||||||
type='linear',
|
# type='linear',
|
||||||
autorange=True,
|
# autorange=True,
|
||||||
overlaying='y',
|
# overlaying='y',
|
||||||
side='right'
|
# side='right'
|
||||||
)
|
# )
|
||||||
|
#
|
||||||
)
|
# )
|
||||||
|
#
|
||||||
fig = Figure(data=data, layout=layout)
|
# fig = Figure(data=data, layout=layout)
|
||||||
#plot_url = py.plot(fig, filename='lab_temp_hum')
|
# graphJSON = json.dumps(fig, cls=plotly.utils.PlotlyJSONEncoder)
|
||||||
graphJSON = json.dumps(fig, cls=plotly.utils.PlotlyJSONEncoder)
|
|
||||||
|
|
||||||
return render_template("history.html", timezone = timezone,
|
return render_template("history.html", timezone = timezone,
|
||||||
temp = time_adjusted_temperatures,
|
temp = time_adjusted_temperatures,
|
||||||
@ -149,10 +149,10 @@ def history():
|
|||||||
query_string = request.query_string, #This query string is used
|
query_string = request.query_string, #This query string is used
|
||||||
#by the Plotly link
|
#by the Plotly link
|
||||||
hum_items = len(humidities),
|
hum_items = len(humidities),
|
||||||
graphJSON=graphJSON)
|
#graphJSON=graphJSON,
|
||||||
|
)
|
||||||
|
|
||||||
def get_records():
|
def get_records():
|
||||||
import sqlite3
|
|
||||||
from_date_str = request.args.get('from',time.strftime("%Y-%m-%d 00:00")) #Get the from date value from the URL
|
from_date_str = request.args.get('from',time.strftime("%Y-%m-%d 00:00")) #Get the from date value from the URL
|
||||||
to_date_str = request.args.get('to',time.strftime("%Y-%m-%d %H:%M")) #Get the to date value from the URL
|
to_date_str = request.args.get('to',time.strftime("%Y-%m-%d %H:%M")) #Get the to date value from the URL
|
||||||
timezone = request.args.get('timezone','Etc/UTC');
|
timezone = request.args.get('timezone','Etc/UTC');
|
||||||
|
@ -151,6 +151,7 @@
|
|||||||
jQuery("#range_select").submit();
|
jQuery("#range_select").submit();
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|
||||||
jQuery("#plotly").click(function(){
|
jQuery("#plotly").click(function(){
|
||||||
jQuery("#plotly_wait").text("Sending data...");
|
jQuery("#plotly_wait").text("Sending data...");
|
||||||
jQuery("#plotly_url").text("");
|
jQuery("#plotly_url").text("");
|
||||||
@ -164,6 +165,7 @@
|
|||||||
});
|
});
|
||||||
return false; //This is so that the click on the link does not cause the page to refresh
|
return false; //This is so that the click on the link does not cause the page to refresh
|
||||||
});
|
});
|
||||||
|
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
<script type="text/javascript" src="https://www.google.com/jsapi?autoload={'modules':[{'name':'visualization','version':'1','packages':['corechart']}]}"></script>
|
<script type="text/javascript" src="https://www.google.com/jsapi?autoload={'modules':[{'name':'visualization','version':'1','packages':['corechart']}]}"></script>
|
||||||
@ -171,9 +173,7 @@
|
|||||||
<script>
|
<script>
|
||||||
google.load('visualization', '1', {packages: ['corechart']});
|
google.load('visualization', '1', {packages: ['corechart']});
|
||||||
google.setOnLoadCallback(drawChart);
|
google.setOnLoadCallback(drawChart);
|
||||||
|
|
||||||
function drawChart() {
|
function drawChart() {
|
||||||
|
|
||||||
var data = new google.visualization.DataTable();
|
var data = new google.visualization.DataTable();
|
||||||
data.addColumn('datetime', 'Time');
|
data.addColumn('datetime', 'Time');
|
||||||
data.addColumn('number', 'Temperature');
|
data.addColumn('number', 'Temperature');
|
||||||
@ -182,7 +182,6 @@
|
|||||||
[new Date({{row[0][0:4]}},{{row[0][5:7]}}-1,{{row[0][8:10]}},{{row[0][11:13]}},{{row[0][14:16]}}),{{'%0.2f'|format(row[1])}}],
|
[new Date({{row[0][0:4]}},{{row[0][5:7]}}-1,{{row[0][8:10]}},{{row[0][11:13]}},{{row[0][14:16]}}),{{'%0.2f'|format(row[1])}}],
|
||||||
{% endfor %}
|
{% endfor %}
|
||||||
]);
|
]);
|
||||||
|
|
||||||
var options = {
|
var options = {
|
||||||
width: 600,
|
width: 600,
|
||||||
height: 563,
|
height: 563,
|
||||||
@ -196,21 +195,15 @@
|
|||||||
title: 'Temperature',
|
title: 'Temperature',
|
||||||
curveType: 'function' //Makes line curved
|
curveType: 'function' //Makes line curved
|
||||||
};
|
};
|
||||||
|
|
||||||
var chart = new google.visualization.LineChart(document.getElementById('chart_temps'));
|
var chart = new google.visualization.LineChart(document.getElementById('chart_temps'));
|
||||||
|
|
||||||
chart.draw(data, options);
|
chart.draw(data, options);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
<script>
|
<script>
|
||||||
google.load('visualization', '1', {packages: ['corechart']});
|
google.load('visualization', '1', {packages: ['corechart']});
|
||||||
google.setOnLoadCallback(drawChart);
|
google.setOnLoadCallback(drawChart);
|
||||||
|
|
||||||
function drawChart() {
|
function drawChart() {
|
||||||
|
|
||||||
var data = new google.visualization.DataTable();
|
var data = new google.visualization.DataTable();
|
||||||
data.addColumn('datetime', 'Time');
|
data.addColumn('datetime', 'Time');
|
||||||
data.addColumn('number', 'Humidity');
|
data.addColumn('number', 'Humidity');
|
||||||
@ -219,7 +212,6 @@
|
|||||||
[new Date({{row[0][0:4]}},{{row[0][5:7]}}-1,{{row[0][8:10]}},{{row[0][11:13]}},{{row[0][14:16]}}),{{'%0.2f'|format(row[1])}}],
|
[new Date({{row[0][0:4]}},{{row[0][5:7]}}-1,{{row[0][8:10]}},{{row[0][11:13]}},{{row[0][14:16]}}),{{'%0.2f'|format(row[1])}}],
|
||||||
{% endfor %}
|
{% endfor %}
|
||||||
]);
|
]);
|
||||||
|
|
||||||
var options = {
|
var options = {
|
||||||
width: 600,
|
width: 600,
|
||||||
height: 563,
|
height: 563,
|
||||||
@ -233,29 +225,29 @@
|
|||||||
title: 'Humidity',
|
title: 'Humidity',
|
||||||
curveType: 'function' //Makes line curved
|
curveType: 'function' //Makes line curved
|
||||||
};
|
};
|
||||||
|
|
||||||
var chart = new google.visualization.LineChart(document.getElementById('chart_humid'));
|
var chart = new google.visualization.LineChart(document.getElementById('chart_humid'));
|
||||||
|
|
||||||
chart.draw(data, options);
|
chart.draw(data, options);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
|
<!--
|
||||||
<div id='plotly-plot'></div>
|
<div id='plotly-plot'></div>
|
||||||
|
|
||||||
|
{{ graphJSON }}
|
||||||
<footer>
|
<footer>
|
||||||
<!-- D3.js https://github.com/d3/d3/releases-->
|
<!~~ D3.js https://github.com/d3/d3/releases~~>
|
||||||
<script src="static/javascript/d3.min.js"></script>
|
<script src="static/javascript/d3.min.js"></script>
|
||||||
<!-- jQuery https://jquery.com/download/ -->
|
<!~~ jQuery https://jquery.com/download/ ~~>
|
||||||
<script src="static/javascript/jquery-3.2.1.min.js"></script>
|
<script src="static/javascript/jquery-3.2.1.min.js"></script>
|
||||||
<!-- Plotly.js https://github.com/plotly/plotly.js/releases/ -->
|
<!~~ Plotly.js https://github.com/plotly/plotly.js/releases/ ~~>
|
||||||
<script src="static/javascript/plotly.js"></script>
|
<script src="static/javascript/plotly.js"></script>
|
||||||
|
|
||||||
<!--Plot Scaled-D on results.html-->
|
<!~~Plot data~~>
|
||||||
<script type="text/javascript">
|
<script type="text/javascript">
|
||||||
var graph = {{graphJSON | safe}};
|
var graph = {{graphJSON | safe}};
|
||||||
Plotly.plot('plotly-plot', graph.data, graph.layout);
|
Plotly.plot('plotly-plot', graph.data, graph.layout);
|
||||||
</script>
|
</script>
|
||||||
</footer>
|
</footer>
|
||||||
|
-->
|
||||||
|
|
||||||
</html>
|
</html>
|
||||||
|
Reference in New Issue
Block a user