New version, completely
This commit is contained in:
7
web/templates/footer.html
Normal file
7
web/templates/footer.html
Normal file
@@ -0,0 +1,7 @@
|
||||
<div id="footer">
|
||||
Measurements utilise Arduino, ESP8266, lot of python, another lot
|
||||
of Micropython, tons of "heart", no cocaine, but shitloads of Tea. Cheers.
|
||||
Done by Ventil.
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
46
web/templates/header.html
Normal file
46
web/templates/header.html
Normal file
@@ -0,0 +1,46 @@
|
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
|
||||
"http://www.w3.org/TR/html4/loose.dtd">
|
||||
<html>
|
||||
<head>
|
||||
<title>Energy reporter</title>
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
|
||||
<meta http-equiv="Content-Language" content="en">
|
||||
<meta name="Robots" content="all">
|
||||
<meta name="Keywords" content="automation, python, development, arduino, measurement">
|
||||
<meta name="description" content="RasPi automation hardcore">
|
||||
<meta name="Author" content="Spoton s.r.o. | Milan Toman">
|
||||
<link rel="stylesheet" type="text/css" href="https://bastart.spoton.cz/static/css/def_style.css">
|
||||
<!-- Bootstrap core CSS -->
|
||||
<link href="https://bastart.spoton.cz/static/css/bootstrap.min.css" rel="stylesheet">
|
||||
<!-- Custom styles for this template -->
|
||||
<link href="https://bastart.spoton.cz/static/css/dashboard.css" rel="stylesheet">
|
||||
<!-- Dygraph css and js -->
|
||||
<link href="https://bastart.spoton.cz/static/css/dygraph.css" rel="stylesheet">
|
||||
<script type="text/javascript" src="https://bastart.spoton.cz/static/js/dygraph.js"></script>
|
||||
<link rel="icon" href="../../favicon.ico">
|
||||
</head>
|
||||
<body>
|
||||
|
||||
<!--
|
||||
<script>
|
||||
//window.fbAsyncInit = function() {
|
||||
// FB.init({
|
||||
// appId : '315766815677378',
|
||||
// cookie : true,
|
||||
// xfbml : true,
|
||||
// version : 'v3.2'
|
||||
// });
|
||||
//
|
||||
// FB.AppEvents.logPageView();
|
||||
//
|
||||
//};
|
||||
//
|
||||
//(function(d, s, id){
|
||||
// var js, fjs = d.getElementsByTagName(s)[0];
|
||||
// if (d.getElementById(id)) {return;}
|
||||
// js = d.createElement(s); js.id = id;
|
||||
// js.src = "https://connect.facebook.net/en_US/sdk.js";
|
||||
// fjs.parentNode.insertBefore(js, fjs);
|
||||
// }(document, 'script', 'facebook-jssdk'));
|
||||
</script>-->
|
||||
35
web/templates/landing_page.html
Normal file
35
web/templates/landing_page.html
Normal file
@@ -0,0 +1,35 @@
|
||||
<div class="container-fluid">
|
||||
<div class="row">
|
||||
|
||||
<div class="col"></div>
|
||||
<main class="pt-4 col-10">
|
||||
<h1>Plutonium monitoring</h1>
|
||||
<h5>Keeping an eye on things</h5>
|
||||
|
||||
<section class="row text-center placeholders">
|
||||
<div class="col placeholder">
|
||||
Not available, due to RasPi gone crazy from all that traffic
|
||||
</div>
|
||||
<div class="col placeholder">
|
||||
But is surely was beautiful.
|
||||
</div>
|
||||
</section>
|
||||
<section class="row text-center placeholders">
|
||||
<div class="col">
|
||||
<img src="./static/img/old_fame.jpg" class="img-fluid">
|
||||
</div>
|
||||
</section>
|
||||
|
||||
</main>
|
||||
<div class="col"></div>
|
||||
</div>
|
||||
</div>
|
||||
<!-- Bootstrap core JavaScript
|
||||
================================================== -->
|
||||
<!-- Placed at the end of the document so the pages load faster -->
|
||||
<script src="https://code.jquery.com/jquery-3.1.1.slim.min.js" integrity="sha384-A7FZj7v+d/sdmMqp/nOQwliLvUsJfDHW+k9Omg/a/EheAdgtzNs3hpfag6Ed950n" crossorigin="anonymous"></script>
|
||||
<script>window.jQuery || document.write('<script src="../../assets/js/vendor/jquery.min.js"><\/script>')</script>
|
||||
<script src="https://cdnjs.cloudflare.com/ajax/libs/tether/1.4.0/js/tether.min.js" integrity="sha384-DztdAPBWPRXSA/3eYEEUWrWCy7G5KFbe8fFjk5JAIxUYHKkDx6Qin1DkWx51bBrb" crossorigin="anonymous"></script>
|
||||
<script src="../static/js/bootstrap.min.js"></script>
|
||||
<!-- IE10 viewport hack for Surface/desktop Windows 8 bug -->
|
||||
<script src="../static/js/ie10bugfix.js"></script>
|
||||
113
web/templates/status_admin.html
Executable file
113
web/templates/status_admin.html
Executable file
@@ -0,0 +1,113 @@
|
||||
<div class="container-fluid">
|
||||
<div class="row">
|
||||
|
||||
<div class="col"></div>
|
||||
<main class="pt-4 col-10">
|
||||
<h1>Status Dashboard</h1>
|
||||
<h5 id="timestamp">{timestamp} UTC</h5>
|
||||
<p>Up since: {_uptime}</p>
|
||||
|
||||
<section class="row text-center placeholders">
|
||||
<div class="col placeholder">
|
||||
<img src="{sol_icon}" width="20" class="img-fluid" alt="ISS solar irradiation">
|
||||
<h3 id="sol_val">{_sol_value}</h3>
|
||||
<div class="text-muted">[V]</div>
|
||||
</div>
|
||||
<div class="col placeholder">
|
||||
<img src="{cap_icon}" width="20" class="img-fluid" alt="ISS Capacitor state">
|
||||
<h3 id="cap_val">{_cap_value}</h3>
|
||||
<div class="text-muted">[V]</div>
|
||||
</div>
|
||||
<div class="col placeholder">
|
||||
<img src="{cpu_icon}" width="20" class="img-fluid" alt="CPU %">
|
||||
<h3 id="cpu_val">{_cpu}</h3>
|
||||
<div class="text-muted">[%]</div>
|
||||
</div>
|
||||
<div class="col placeholder">
|
||||
<img src="{mem_icon}" width="20" class="img-fluid" alt="Mem / Disk %">
|
||||
<h3><span id="mem">{_mem}</span> / <span id="disk">{_disk}</span></h3>
|
||||
<div class="text-muted">[%]</div>
|
||||
</div>
|
||||
<div class="col placeholder">
|
||||
<img src="{network_icon}" width="20" class="img-fluid" alt="RasPI network">
|
||||
<h3><span id="net_in">{_net_in}</span> / <span id="net_out">{_net_out}</span></h3>
|
||||
<div class="text-muted">IN [kB/s] / OUT [kB/s]</div>
|
||||
</div>
|
||||
</section>
|
||||
<section class="row text-center placeholders">
|
||||
<div class="col">
|
||||
<div id="solcap_labels"></div>
|
||||
<div id="solcap" class="container-fluid" style="width:100%;height:200px;"></div>
|
||||
<button type="button" class="btn btn-secondary" onclick="setBack('solcap_monitor')"><<</button>
|
||||
<button type="button" class="btn btn-secondary btn-sm" onclick="setHours('6','solcap_monitor')">6h</button>
|
||||
<button type="button" class="btn btn-secondary btn-sm" onclick="setHours('12','solcap_monitor')">12h</button>
|
||||
<button type="button" class="btn btn-secondary btn-sm" onclick="setHours('24','solcap_monitor')">24h</button>
|
||||
<button type="button" class="btn btn-secondary btn-sm" onclick="setHours('168','solcap_monitor')">Week</button>
|
||||
<button type="button" class="btn btn-secondary btn-sm" onclick="setHours('720','solcap_monitor')">Month</button>
|
||||
<button type="button" class="btn btn-secondary btn-sm" onclick="setHours('4320','solcap_monitor')">6Mo</button>
|
||||
<button type="button" class="btn btn-secondary btn-sm" onclick="setHours('8640','solcap_monitor')">Year</button>
|
||||
<button type="button" class="btn btn-secondary" onclick="setForth('solcap_monitor')">>></button>
|
||||
<h6><span id="graph_timestamp">{timestamp}</span> UTC</h6>
|
||||
</div>
|
||||
</section>
|
||||
<section class="row text-center placeholders">
|
||||
<div class="col">
|
||||
<div id="cpumem_labels"></div>
|
||||
<div id="cpumem" class="container-fluid" style="width:100%;height:200px;"></div>
|
||||
<button type="button" class="btn btn-secondary" onclick="setBack('cpumem_monitor')"><<</button>
|
||||
<button type="button" class="btn btn-secondary btn-sm" onclick="setHours('1','cpumem_monitor')">1h</button>
|
||||
<button type="button" class="btn btn-secondary btn-sm" onclick="setHours('6','cpumem_monitor')">6h</button>
|
||||
<button type="button" class="btn btn-secondary btn-sm" onclick="setHours('12','cpumem_monitor')">12h</button>
|
||||
<button type="button" class="btn btn-secondary btn-sm" onclick="setHours('24','cpumem_monitor')">24h</button>
|
||||
<button type="button" class="btn btn-secondary btn-sm" onclick="setHours('168','cpumem_monitor')">Week</button>
|
||||
<button type="button" class="btn btn-secondary btn-sm" onclick="setHours('720','cpumem_monitor')">Month</button>
|
||||
<button type="button" class="btn btn-secondary btn-sm" onclick="setHours('4320','cpumem_monitor')">6Mo</button>
|
||||
<button type="button" class="btn btn-secondary btn-sm" onclick="setHours('8640','cpumem_monitor')">Year</button>
|
||||
<button type="button" class="btn btn-secondary" onclick="setForth('cpumem_monitor')">>></button>
|
||||
<h6><span id="graph_timestamp">{timestamp}</span> UTC</h6>
|
||||
</div>
|
||||
</section>
|
||||
<section class="row text-center placeholders">
|
||||
<div class="col">
|
||||
<div id="network_labels"></div>
|
||||
<div id="network" class="container-fluid" style="width:100%;height:200px;"></div>
|
||||
<button type="button" class="btn btn-secondary" onclick="setBack('network_monitor')"><<</button>
|
||||
<button type="button" class="btn btn-secondary btn-sm" onclick="setHours('1','network_monitor')">1h</button>
|
||||
<button type="button" class="btn btn-secondary btn-sm" onclick="setHours('6','network_monitor')">6h</button>
|
||||
<button type="button" class="btn btn-secondary btn-sm" onclick="setHours('12','network_monitor')">12h</button>
|
||||
<button type="button" class="btn btn-secondary btn-sm" onclick="setHours('24','network_monitor')">24h</button>
|
||||
<button type="button" class="btn btn-secondary btn-sm" onclick="setHours('168','network_monitor')">Week</button>
|
||||
<button type="button" class="btn btn-secondary btn-sm" onclick="setHours('720','network_monitor')">Month</button>
|
||||
<button type="button" class="btn btn-secondary btn-sm" onclick="setHours('4320','network_monitor')">6Mo</button>
|
||||
<button type="button" class="btn btn-secondary btn-sm" onclick="setHours('8640','network_monitor')">Year</button>
|
||||
<button type="button" class="btn btn-secondary" onclick="setForth('network_monitor')">>></button>
|
||||
<h6><span id="graph_timestamp">{timestamp}</span> UTC</h6>
|
||||
</div>
|
||||
</section>
|
||||
<section class="row text-center placeholders">
|
||||
<div class="col">
|
||||
<div id="esp_battery_labels"></div>
|
||||
<div id="esp_battery" class="container-fluid" style="width:100%;height:200px;"></div>
|
||||
<button type="button" class="btn btn-secondary" onclick="setBack('esp_battery_monitor')"><<</button>
|
||||
<button type="button" class="btn btn-secondary btn-sm" onclick="setHours('168','esp_battery_monitor')">Week</button>
|
||||
<button type="button" class="btn btn-secondary btn-sm" onclick="setHours('720','esp_battery_monitor')">Month</button>
|
||||
<button type="button" class="btn btn-secondary btn-sm" onclick="setHours('4320','esp_battery_monitor')">6Mo</button>
|
||||
<button type="button" class="btn btn-secondary btn-sm" onclick="setHours('8640','esp_battery_monitor')">Year</button>
|
||||
<button type="button" class="btn btn-secondary" onclick="setForth('esp_battery_monitor')">>></button>
|
||||
<h6><span id="graph_timestamp">{timestamp}</span> UTC</h6>
|
||||
</div>
|
||||
<script type="text/javascript" src="../static/js/status_graph.js"></script>
|
||||
</section>
|
||||
</main>
|
||||
<div class="col"></div>
|
||||
</div>
|
||||
</div>
|
||||
<!-- Bootstrap core JavaScript
|
||||
================================================== -->
|
||||
<!-- Placed at the end of the document so the pages load faster -->
|
||||
<script src="https://code.jquery.com/jquery-3.1.1.slim.min.js" integrity="sha384-A7FZj7v+d/sdmMqp/nOQwliLvUsJfDHW+k9Omg/a/EheAdgtzNs3hpfag6Ed950n" crossorigin="anonymous"></script>
|
||||
<script>window.jQuery || document.write('<script src="../../assets/js/vendor/jquery.min.js"><\/script>')</script>
|
||||
<script src="https://cdnjs.cloudflare.com/ajax/libs/tether/1.4.0/js/tether.min.js" integrity="sha384-DztdAPBWPRXSA/3eYEEUWrWCy7G5KFbe8fFjk5JAIxUYHKkDx6Qin1DkWx51bBrb" crossorigin="anonymous"></script>
|
||||
<script src="../static/js/bootstrap.min.js"></script>
|
||||
<!-- IE10 viewport hack for Surface/desktop Windows 8 bug -->
|
||||
<script src="../static/js/ie10bugfix.js"></script>
|
||||
65
web/templates/temphumi_admin.html
Executable file
65
web/templates/temphumi_admin.html
Executable file
@@ -0,0 +1,65 @@
|
||||
<div class="container-fluid">
|
||||
<div class="row">
|
||||
|
||||
<div class="col"></div>
|
||||
<main class="pt-4 col-10">
|
||||
<h1>Temperature / Humidity Dashboard</h1>
|
||||
<h5>{timestamp} UTC</h5>
|
||||
|
||||
<h2>Tea cabinet</h2>
|
||||
<div class="row text-left">
|
||||
<div class="col"><p>Cabinet constructed for the sole purpose of aging (Sheng)
|
||||
Puerh tea. It is located on ground floor, 2.2m high, with natural
|
||||
airflow. This is a mere observation tool. The intention is to
|
||||
keep the aging natural, in European conditions.</p>
|
||||
</div>
|
||||
</div>
|
||||
<section class="row text-center placeholders">
|
||||
<div class="col placeholder">
|
||||
<img src="{tea_temp_icon}" width="30" class="img-fluid" alt="Tea container temp">
|
||||
<h3>{temp_value}</h3>
|
||||
<div class="text-muted">[°C]</div>
|
||||
</div>
|
||||
<div class="col placeholder">
|
||||
<img src="{tea_bat_icon}" width="30" class="img-fluid" alt="Tea container temp">
|
||||
<h3>{bat_value}</h3>
|
||||
<div class="text-muted">[V]</div>
|
||||
</div>
|
||||
<div class="col placeholder">
|
||||
<img src="{tea_hum_icon}" width="30" class="img-fluid" alt="Tea container humidity">
|
||||
<h3>{hum_value}</h3>
|
||||
<div class="text-muted">[%]</div>
|
||||
</div>
|
||||
</section>
|
||||
<section class="row text-center placeholders">
|
||||
<div class="col">
|
||||
<div id="tea_labels"></div>
|
||||
<div id="tea_temphum" class="container-fluid" style="width:100%;height:200px;"></div>
|
||||
<button type="button" class="btn btn-secondary" onclick="setBack('usense_temphumi_monitor')"><<</button>
|
||||
<button type="button" class="btn btn-secondary btn-sm" onclick="setHours('6','usense_temphumi_monitor')">6h</button>
|
||||
<button type="button" class="btn btn-secondary btn-sm" onclick="setHours('12','usense_temphumi_monitor')">12h</button>
|
||||
<button type="button" class="btn btn-secondary btn-sm" onclick="setHours('24','usense_temphumi_monitor')">24h</button>
|
||||
<button type="button" class="btn btn-secondary btn-sm" onclick="setHours('168','usense_temphumi_monitor')">Week</button>
|
||||
<button type="button" class="btn btn-secondary btn-sm" onclick="setHours('720','usense_temphumi_monitor')">Month</button>
|
||||
<button type="button" class="btn btn-secondary btn-sm" onclick="setHours('4320','usense_temphumi_monitor')">6Mo</button>
|
||||
<button type="button" class="btn btn-secondary btn-sm" onclick="setHours('8640','usense_temphumi_monitor')">Year</button>
|
||||
<button type="button" class="btn btn-secondary" onclick="setForth('usense_temphumi_monitor')">>></button>
|
||||
</div>
|
||||
<div id="xxx"></div>
|
||||
</section>
|
||||
<section class="row">
|
||||
</section>
|
||||
</main>
|
||||
<div class="col"></div>
|
||||
</div>
|
||||
</div>
|
||||
<!-- Bootstrap core JavaScript
|
||||
================================================== -->
|
||||
<!-- Placed at the end of the document so the pages load faster -->
|
||||
<script src="https://code.jquery.com/jquery-3.1.1.slim.min.js" integrity="sha384-A7FZj7v+d/sdmMqp/nOQwliLvUsJfDHW+k9Omg/a/EheAdgtzNs3hpfag6Ed950n" crossorigin="anonymous"></script>
|
||||
<script>window.jQuery || document.write('<script src="../../assets/js/vendor/jquery.min.js"><\/script>')</script>
|
||||
<script src="https://cdnjs.cloudflare.com/ajax/libs/tether/1.4.0/js/tether.min.js" integrity="sha384-DztdAPBWPRXSA/3eYEEUWrWCy7G5KFbe8fFjk5JAIxUYHKkDx6Qin1DkWx51bBrb" crossorigin="anonymous"></script>
|
||||
<script src="../static/js/bootstrap.min.js"></script>
|
||||
<!-- IE10 viewport hack for Surface/desktop Windows 8 bug -->
|
||||
<script src="../static/js/ie10bugfix.js"></script>
|
||||
<script type="text/javascript" src="../static/js/temphum_graph.js"></script>
|
||||
23
web/templates/top_menu.html
Normal file
23
web/templates/top_menu.html
Normal file
@@ -0,0 +1,23 @@
|
||||
<nav class="navbar navbar-toggleable-md navbar-inverse fixed-top bg-inverse">
|
||||
<button class="navbar-toggler navbar-toggler-right hidden-lg-up" type="button" data-toggle="collapse" data-target="#navbarsExampleDefault" aria-controls="navbarsExampleDefault" aria-expanded="false" aria-label="Toggle navigation">
|
||||
<span class="navbar-toggler-icon"></span>
|
||||
</button>
|
||||
<a class="navbar-brand" href="https://bastart.spoton.cz">Monitoring</a>
|
||||
|
||||
<div class="collapse navbar-collapse" id="navbarsExampleDefault">
|
||||
<ul class="navbar-nav mr-auto">
|
||||
<li class="nav-item {energy}">
|
||||
<a class="nav-link" href="https://bastart.spoton.cz">Energy</a>
|
||||
</li>
|
||||
<li class="nav-item {weather}">
|
||||
<a class="nav-link" href="https://bastart.spoton.cz/weather">Weather</a>
|
||||
</li>
|
||||
<li class="nav-item {status}">
|
||||
<a class="nav-link" href="https://bastart.spoton.cz/status">Status</a>
|
||||
</li>
|
||||
<li class="nav-item {temphumi}">
|
||||
<a class="nav-link" href="https://bastart.spoton.cz/temphumi">Temp / Humidity</a>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
</nav>
|
||||
65
web/templates/voltage_admin.html
Normal file
65
web/templates/voltage_admin.html
Normal file
@@ -0,0 +1,65 @@
|
||||
<div class="container-fluid">
|
||||
<div class="row">
|
||||
|
||||
<div class="col"></div>
|
||||
<main class="pt-4 col-10">
|
||||
<h1>Energy Dashboard</h1>
|
||||
<h5><span id="timestamp">{timestamp}</span> UTC</h5>
|
||||
<section class="row text-center placeholders">
|
||||
<div class="col placeholder">
|
||||
<img src="{array_voltage_icon}" width="20" class="img-fluid" alt="Battery voltage">
|
||||
<h3><span id="array_voltage">{array_voltage}</span> [V]</h3>
|
||||
<div class="text-muted"><span id="array_percent">{array_percent}</span> [%]</div>
|
||||
</div>
|
||||
<div class="col placeholder">
|
||||
<img src="{charge_current_icon}" width="20" class="img-fluid" alt="Battery current">
|
||||
<h3><span id="charge_current">{charge_current}</span></h3>
|
||||
<div class="text-muted">Charging [A]</div>
|
||||
</div>
|
||||
<div class="col placeholder">
|
||||
<img src="{solar_power_icon}" width="40" class="img-fluid" alt="Solar array power">
|
||||
<h3><span id=solar_power>{solar_power}</span></h3>
|
||||
<span class="text-muted"> Solar PV [W]</span>
|
||||
</div>
|
||||
<div class="col placeholder">
|
||||
<img src="{solar_power_icon}" width="40" class="img-fluid" alt="Max power / day">
|
||||
<h3><span id=pmax_day>{pmax_day}</span></h3>
|
||||
<div class="text-muted">Pmax / day [W]</div>
|
||||
</div>
|
||||
</section>
|
||||
<section class="row text-center placeholders">
|
||||
<div class="col">
|
||||
<div id="solar_labels"></div>
|
||||
<div id="solar" class="container-fluid" style="width:100%;"></div>
|
||||
<div id="power_labels"></div>
|
||||
<div id="power" class="container-fluid" style="width:100%;"></div>
|
||||
<script type="text/javascript" src="../static/js/solar_graph.js"></script>
|
||||
<button type="button" class="btn btn-secondary" onclick="setBack()"><<</button>
|
||||
<button type="button" class="btn btn-secondary btn-sm" onclick="setHours('6')">6h</button>
|
||||
<button type="button" class="btn btn-secondary btn-sm" onclick="setHours('12')">12h</button>
|
||||
<button type="button" class="btn btn-secondary btn-sm" onclick="setHours('24')">24h</button>
|
||||
<button type="button" class="btn btn-secondary btn-sm" onclick="setHours('168')">Week</button>
|
||||
<button type="button" class="btn btn-secondary btn-sm" onclick="setHours('720')">Month</button>
|
||||
<button type="button" class="btn btn-secondary btn-sm" onclick="setHours('8760')">Year</button>
|
||||
<button type="button" class="btn btn-secondary" onclick="setForth()">>></button>
|
||||
<h6><span id="graph_timestamp">{timestamp}</span> UTC</h6>
|
||||
</div>
|
||||
</section>
|
||||
|
||||
<div class="table-responisve">
|
||||
<h2>Historical values by day</h2>
|
||||
{stats_table}
|
||||
</div>
|
||||
</main>
|
||||
<div class="col"></div>
|
||||
</div>
|
||||
</div>
|
||||
<!-- Bootstrap core JavaScript
|
||||
================================================== -->
|
||||
<!-- Placed at the end of the document so the pages load faster -->
|
||||
<script src="https://code.jquery.com/jquery-3.1.1.slim.min.js" integrity="sha384-A7FZj7v+d/sdmMqp/nOQwliLvUsJfDHW+k9Omg/a/EheAdgtzNs3hpfag6Ed950n" crossorigin="anonymous"></script>
|
||||
<script>window.jQuery || document.write('<script src="../../assets/js/vendor/jquery.min.js"><\/script>')</script>
|
||||
<script src="https://cdnjs.cloudflare.com/ajax/libs/tether/1.4.0/js/tether.min.js" integrity="sha384-DztdAPBWPRXSA/3eYEEUWrWCy7G5KFbe8fFjk5JAIxUYHKkDx6Qin1DkWx51bBrb" crossorigin="anonymous"></script>
|
||||
<script src="../static/js/bootstrap.min.js"></script>
|
||||
<!-- IE10 viewport hack for Surface/desktop Windows 8 bug -->
|
||||
<script src="../static/js/ie10bugfix.js"></script>
|
||||
136
web/templates/weather_admin.html
Normal file
136
web/templates/weather_admin.html
Normal file
@@ -0,0 +1,136 @@
|
||||
<div class="container-fluid">
|
||||
<div class="row">
|
||||
|
||||
<div class="col"></div>
|
||||
<main class="pt-4 col-10">
|
||||
<h1>Weather Dashboard</h1>
|
||||
<h5><span id="timestamp">{_timestamp}</span> UTC</h5>
|
||||
|
||||
<section class="row text-center placeholders">
|
||||
<div class="col-md-4 placeholder col-sm-6">
|
||||
<img src="{_w_speed_icon}" width="50" class="img-fluid" alt="Wind Speed">
|
||||
<h4><span id="w_speed_km">{_w_speed_km}</span> [km/h]</h4>
|
||||
<div class="text-muted">
|
||||
<span id="w_speed_ms">{_w_speed_ms}</span> [m/s]
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-md-4 placeholder col-sm-6">
|
||||
<img src="{_w_gust_icon}" width="50" class="img-fluid" alt="Wind Gusts">
|
||||
<h4><span id="w_gust_km">{_w_gust_km} [km/h]</h4>
|
||||
<div class="text-muted">
|
||||
<span id="w_gust_ms">{_w_gust_ms}</span> [m/s]
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-md-4 placeholder col-sm-6">
|
||||
<img src="{_w_dir_icon}" width="50" class="img-fluid" alt="Wind Direction">
|
||||
<h4><span id="w_dir_name">{_w_dir_name}</h4>
|
||||
<div class="text-muted"><span id="w_dir">{_w_dir_deg}</span> °</div>
|
||||
</div>
|
||||
</section>
|
||||
|
||||
<section class="row text-center placeholders">
|
||||
<div class="col-md-3 placeholder col-sm-6">
|
||||
<img src="{_out_temp_icon}" width="30" class="img-fluid" alt="Outside Temperature">
|
||||
<h4><span id="out_temp">{_out_temp}</span> °C</h4>
|
||||
<div class="text-muted">[Outside]</div>
|
||||
</div>
|
||||
<div class="col-md-3 placeholder col-sm-6">
|
||||
<img src="{_in_temp_icon}" width="30" class="img-fluid" alt="Inside Temperature">
|
||||
<h4><span id="in_temp">{_in_temp}</span> °C</h4>
|
||||
<div class="text-muted">[Inside]</div>
|
||||
</div>
|
||||
<div class="col-md-3 placeholder col-sm-6">
|
||||
<img src="{_pressure_icon}" width="30" class="img-fluid" alt="Atmospheric pressure">
|
||||
<h4><span id="current_pressure">{_pressure}</span> [hPa]</h4>
|
||||
<div class="text-muted">{_raw_pressure} [hPa] raw</div>
|
||||
</div>
|
||||
<div class="col-md-3 placeholder col-sm-6">
|
||||
<img src="{_rrate_icon}" width="30" class="img-fluid" alt="Rain rate">
|
||||
<h4><span id="current_rrate">{_rrate}</span></h4>
|
||||
<div class="text-muted">[mm/h]</div>
|
||||
</div>
|
||||
</section>
|
||||
|
||||
<section class="row text-center">
|
||||
<div class="col">
|
||||
<h2>Wind speed and direction</h2>
|
||||
<div id="wind_labels"></div>
|
||||
<div id="wind" class="container-fluid" style="width:100%;height:200px;"></div>
|
||||
<div class="row"><div class="col py-5">
|
||||
<button type="button" class="btn btn-secondary" onclick="setBack('wind_monitor')"><<</button>
|
||||
<button type="button" class="btn btn-secondary btn-sm" onclick="setHours('6','wind_monitor')">6h</button>
|
||||
<button type="button" class="btn btn-secondary btn-sm" onclick="setHours('12','wind_monitor')">12h</button>
|
||||
<button type="button" class="btn btn-secondary btn-sm" onclick="setHours('24','wind_monitor')">24h</button>
|
||||
<button type="button" class="btn btn-secondary btn-sm" onclick="setHours('168','wind_monitor')">Week</button>
|
||||
<button type="button" class="btn btn-secondary btn-sm" onclick="setHours('720','wind_monitor')">Month</button>
|
||||
<button type="button" class="btn btn-secondary btn-sm" onclick="setHours('4320','wind_monitor')">6Mo</button>
|
||||
<button type="button" class="btn btn-secondary btn-sm" onclick="setHours('8640','wind_monitor')">Year</button>
|
||||
<button type="button" class="btn btn-secondary" onclick="setForth('wind_monitor')">>></button>
|
||||
<h6><span id="g_tstamp_wind_monitor">{_timestamp}</span> UTC</h6>
|
||||
</div></div>
|
||||
</div>
|
||||
</section>
|
||||
<section class="row text-center placeholders">
|
||||
<div class="col">
|
||||
<h2>Temperature and Humidity</h2>
|
||||
<div id="temphumi_labels"></div><div id="temphumi_labels_in"></div>
|
||||
<div id="temphumi" class="container-fluid" style="width:100%;height:200px;"></div>
|
||||
<div id="temphumi_in" class="container-fluid" style="width:100%;height:200px;"></div>
|
||||
<button type="button" class="btn btn-secondary" onclick="setBack('temphumi_monitor')"><<</button>
|
||||
<button type="button" class="btn btn-secondary btn-sm" onclick="setHours('6','temphumi_monitor')">6h</button>
|
||||
<button type="button" class="btn btn-secondary btn-sm" onclick="setHours('12','temphumi_monitor')">12h</button>
|
||||
<button type="button" class="btn btn-secondary btn-sm" onclick="setHours('24','temphumi_monitor')">24h</button>
|
||||
<button type="button" class="btn btn-secondary btn-sm" onclick="setHours('168','temphumi_monitor')">Week</button>
|
||||
<button type="button" class="btn btn-secondary btn-sm" onclick="setHours('720','temphumi_monitor')">Month</button>
|
||||
<button type="button" class="btn btn-secondary btn-sm" onclick="setHours('4320','temphumi_monitor')">6Mo</button>
|
||||
<button type="button" class="btn btn-secondary btn-sm" onclick="setHours('8640','temphumi_monitor')">Year</button>
|
||||
<button type="button" class="btn btn-secondary" onclick="setForth('temphumi_monitor')">>></button>
|
||||
<h6><span id="g_tstamp_temphumi_monitor">{_timestamp}</span> UTC</h6>
|
||||
</div>
|
||||
</section>
|
||||
<section class="row text-center placeholders">
|
||||
<div class="col">
|
||||
<div id="pressure_labels"></div>
|
||||
<div id="pressure" class="container-fluid" style="width:100%;height:200px;"></div>
|
||||
<button type="button" class="btn btn-secondary" onclick="setBack('pressure_monitor')"><<</button>
|
||||
<button type="button" class="btn btn-secondary btn-sm" onclick="setHours('12','pressure_monitor')">12h</button>
|
||||
<button type="button" class="btn btn-secondary btn-sm" onclick="setHours('24','pressure_monitor')">24h</button>
|
||||
<button type="button" class="btn btn-secondary btn-sm" onclick="setHours('168','pressure_monitor')">Week</button>
|
||||
<button type="button" class="btn btn-secondary btn-sm" onclick="setHours('720','pressure_monitor')">Month</button>
|
||||
<button type="button" class="btn btn-secondary btn-sm" onclick="setHours('4320','pressure_monitor')">6Mo</button>
|
||||
<button type="button" class="btn btn-secondary btn-sm" onclick="setHours('8640','pressure_monitor')">Year</button>
|
||||
<button type="button" class="btn btn-secondary" onclick="setForth('pressure_monitor')">>></button>
|
||||
<h6><span id="g_tstamp_pressure_monitor">{_timestamp}</span> UTC</h6>
|
||||
</div>
|
||||
</section>
|
||||
<section class="row text-center placeholders">
|
||||
<div class="col">
|
||||
<div id="rrate_labels"></div>
|
||||
<div id="rrate" class="container-fluid" style="width:100%;height:200px;"></div>
|
||||
<button type="button" class="btn btn-secondary" onclick="setBack('rrate_monitor')"><<</button>
|
||||
<button type="button" class="btn btn-secondary btn-sm" onclick="setHours('12','rrate_monitor')">12h</button>
|
||||
<button type="button" class="btn btn-secondary btn-sm" onclick="setHours('24','rrate_monitor')">24h</button>
|
||||
<button type="button" class="btn btn-secondary btn-sm" onclick="setHours('168','rrate_monitor')">Week</button>
|
||||
<button type="button" class="btn btn-secondary btn-sm" onclick="setHours('720','rrate_monitor')">Month</button>
|
||||
<button type="button" class="btn btn-secondary btn-sm" onclick="setHours('4320','rrate_monitor')">6Mo</button>
|
||||
<button type="button" class="btn btn-secondary btn-sm" onclick="setHours('8640','rrate_monitor')">Year</button>
|
||||
<button type="button" class="btn btn-secondary" onclick="setForth('rrate_monitor')">>></button>
|
||||
<h6><span id="g_tstamp_rrate_monitor">{_timestamp}</span> UTC</h6>
|
||||
</div>
|
||||
<script type="text/javascript" src="../static/js/weather_graph.js"></script>
|
||||
</section>
|
||||
|
||||
</main>
|
||||
<div class="col" id="xxx"></div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- Bootstrap core JavaScript
|
||||
================================================== -->
|
||||
<!-- Placed at the end of the document so the pages load faster -->
|
||||
<script src="https://code.jquery.com/jquery-3.1.1.slim.min.js" integrity="sha384-A7FZj7v+d/sdmMqp/nOQwliLvUsJfDHW+k9Omg/a/EheAdgtzNs3hpfag6Ed950n" crossorigin="anonymous"></script>
|
||||
<script>window.jQuery || document.write('<script src="../../assets/js/vendor/jquery.min.js"><\/script>')</script>
|
||||
<script src="https://cdnjs.cloudflare.com/ajax/libs/tether/1.4.0/js/tether.min.js" integrity="sha384-DztdAPBWPRXSA/3eYEEUWrWCy7G5KFbe8fFjk5JAIxUYHKkDx6Qin1DkWx51bBrb" crossorigin="anonymous"></script>
|
||||
<script src="../static/js/bootstrap.min.js"></script>
|
||||
<!-- IE10 viewport hack for Surface/desktop Windows 8 bug -->
|
||||
<script src="../static/js/ie10bugfix.js"></script>
|
||||
Reference in New Issue
Block a user