annotate service/theaterArduino/watchpins.html @ 115:c860b8c10de9

move watchpins from /room, add a graph Ignore-this: 32e58e567fb1fc0567fd2877319aaeff
author drewp@bigasterisk.com
date Mon, 16 Sep 2013 08:20:18 -0700
parents
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
115
c860b8c10de9 move watchpins from /room, add a graph
drewp@bigasterisk.com
parents:
diff changeset
1 <html>
c860b8c10de9 move watchpins from /room, add a graph
drewp@bigasterisk.com
parents:
diff changeset
2 <head>
c860b8c10de9 move watchpins from /room, add a graph
drewp@bigasterisk.com
parents:
diff changeset
3 </head>
c860b8c10de9 move watchpins from /room, add a graph
drewp@bigasterisk.com
parents:
diff changeset
4 <body>
c860b8c10de9 move watchpins from /room, add a graph
drewp@bigasterisk.com
parents:
diff changeset
5 theater motion sensor history:
c860b8c10de9 move watchpins from /room, add a graph
drewp@bigasterisk.com
parents:
diff changeset
6 <div id="chart_div" style="width: 900px; height: 250px;"></div>
c860b8c10de9 move watchpins from /room, add a graph
drewp@bigasterisk.com
parents:
diff changeset
7 max age: <input type="range" name="maxAge" min="10" max="300" value="180">
c860b8c10de9 move watchpins from /room, add a graph
drewp@bigasterisk.com
parents:
diff changeset
8 <div id="status"></div>
c860b8c10de9 move watchpins from /room, add a graph
drewp@bigasterisk.com
parents:
diff changeset
9 <script type="text/javascript" src="https://www.google.com/jsapi"></script>
c860b8c10de9 move watchpins from /room, add a graph
drewp@bigasterisk.com
parents:
diff changeset
10 <script src="//ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js"></script>
c860b8c10de9 move watchpins from /room, add a graph
drewp@bigasterisk.com
parents:
diff changeset
11 <script type="text/javascript">
c860b8c10de9 move watchpins from /room, add a graph
drewp@bigasterisk.com
parents:
diff changeset
12 google.load("visualization", "1", {packages:["corechart"]});
c860b8c10de9 move watchpins from /room, add a graph
drewp@bigasterisk.com
parents:
diff changeset
13
c860b8c10de9 move watchpins from /room, add a graph
drewp@bigasterisk.com
parents:
diff changeset
14 var latestData = null;
c860b8c10de9 move watchpins from /room, add a graph
drewp@bigasterisk.com
parents:
diff changeset
15 var chart = null;
c860b8c10de9 move watchpins from /room, add a graph
drewp@bigasterisk.com
parents:
diff changeset
16
c860b8c10de9 move watchpins from /room, add a graph
drewp@bigasterisk.com
parents:
diff changeset
17 function loop() {
c860b8c10de9 move watchpins from /room, add a graph
drewp@bigasterisk.com
parents:
diff changeset
18 getNewPoints();
c860b8c10de9 move watchpins from /room, add a graph
drewp@bigasterisk.com
parents:
diff changeset
19 setTimeout(function () { webkitRequestAnimationFrame(loop); }, 1200);
c860b8c10de9 move watchpins from /room, add a graph
drewp@bigasterisk.com
parents:
diff changeset
20 }
c860b8c10de9 move watchpins from /room, add a graph
drewp@bigasterisk.com
parents:
diff changeset
21 google.setOnLoadCallback(function () {
c860b8c10de9 move watchpins from /room, add a graph
drewp@bigasterisk.com
parents:
diff changeset
22 chart = new google.visualization.LineChart(document.getElementById('chart_div'))
c860b8c10de9 move watchpins from /room, add a graph
drewp@bigasterisk.com
parents:
diff changeset
23 loop();
c860b8c10de9 move watchpins from /room, add a graph
drewp@bigasterisk.com
parents:
diff changeset
24 });
c860b8c10de9 move watchpins from /room, add a graph
drewp@bigasterisk.com
parents:
diff changeset
25
c860b8c10de9 move watchpins from /room, add a graph
drewp@bigasterisk.com
parents:
diff changeset
26 function getValue(subj, pred, trig) {
c860b8c10de9 move watchpins from /room, add a graph
drewp@bigasterisk.com
parents:
diff changeset
27 var groups = trig.match('<'+subj+'> <'+pred+'> "(.*?)"');
c860b8c10de9 move watchpins from /room, add a graph
drewp@bigasterisk.com
parents:
diff changeset
28 if (groups == null) {
c860b8c10de9 move watchpins from /room, add a graph
drewp@bigasterisk.com
parents:
diff changeset
29 return null;
c860b8c10de9 move watchpins from /room, add a graph
drewp@bigasterisk.com
parents:
diff changeset
30 }
c860b8c10de9 move watchpins from /room, add a graph
drewp@bigasterisk.com
parents:
diff changeset
31 return groups[1];
c860b8c10de9 move watchpins from /room, add a graph
drewp@bigasterisk.com
parents:
diff changeset
32 }
c860b8c10de9 move watchpins from /room, add a graph
drewp@bigasterisk.com
parents:
diff changeset
33
c860b8c10de9 move watchpins from /room, add a graph
drewp@bigasterisk.com
parents:
diff changeset
34 function getNewPoints() {
c860b8c10de9 move watchpins from /room, add a graph
drewp@bigasterisk.com
parents:
diff changeset
35 $("#status").text("get graph...");
c860b8c10de9 move watchpins from /room, add a graph
drewp@bigasterisk.com
parents:
diff changeset
36 $.ajax({
c860b8c10de9 move watchpins from /room, add a graph
drewp@bigasterisk.com
parents:
diff changeset
37 url: "graph",
c860b8c10de9 move watchpins from /room, add a graph
drewp@bigasterisk.com
parents:
diff changeset
38 success: function(data) {
c860b8c10de9 move watchpins from /room, add a graph
drewp@bigasterisk.com
parents:
diff changeset
39 $("#status").text("");
c860b8c10de9 move watchpins from /room, add a graph
drewp@bigasterisk.com
parents:
diff changeset
40 var pointsJson = getValue(
c860b8c10de9 move watchpins from /room, add a graph
drewp@bigasterisk.com
parents:
diff changeset
41 "http://projects.bigasterisk.com/device/theaterDoorOutsideMotion",
c860b8c10de9 move watchpins from /room, add a graph
drewp@bigasterisk.com
parents:
diff changeset
42 "http://projects.bigasterisk.com/room/history",
c860b8c10de9 move watchpins from /room, add a graph
drewp@bigasterisk.com
parents:
diff changeset
43 data);
c860b8c10de9 move watchpins from /room, add a graph
drewp@bigasterisk.com
parents:
diff changeset
44 var realPoints = [];
c860b8c10de9 move watchpins from /room, add a graph
drewp@bigasterisk.com
parents:
diff changeset
45 if (pointsJson != null) {
c860b8c10de9 move watchpins from /room, add a graph
drewp@bigasterisk.com
parents:
diff changeset
46 realPoints = JSON.parse(pointsJson);
c860b8c10de9 move watchpins from /room, add a graph
drewp@bigasterisk.com
parents:
diff changeset
47 }
c860b8c10de9 move watchpins from /room, add a graph
drewp@bigasterisk.com
parents:
diff changeset
48 var steppedPoints = new google.visualization.DataTable();
c860b8c10de9 move watchpins from /room, add a graph
drewp@bigasterisk.com
parents:
diff changeset
49 steppedPoints.addColumn('number', 't');
c860b8c10de9 move watchpins from /room, add a graph
drewp@bigasterisk.com
parents:
diff changeset
50 steppedPoints.addColumn('number', 'value');
c860b8c10de9 move watchpins from /room, add a graph
drewp@bigasterisk.com
parents:
diff changeset
51
c860b8c10de9 move watchpins from /room, add a graph
drewp@bigasterisk.com
parents:
diff changeset
52 var prev = null;
c860b8c10de9 move watchpins from /room, add a graph
drewp@bigasterisk.com
parents:
diff changeset
53 realPoints.forEach(function(r) {
c860b8c10de9 move watchpins from /room, add a graph
drewp@bigasterisk.com
parents:
diff changeset
54 if (prev) {
c860b8c10de9 move watchpins from /room, add a graph
drewp@bigasterisk.com
parents:
diff changeset
55 steppedPoints.addRows([[r[0], prev[1]]]);
c860b8c10de9 move watchpins from /room, add a graph
drewp@bigasterisk.com
parents:
diff changeset
56 }
c860b8c10de9 move watchpins from /room, add a graph
drewp@bigasterisk.com
parents:
diff changeset
57 steppedPoints.addRows([[r[0], r[1]]]);
c860b8c10de9 move watchpins from /room, add a graph
drewp@bigasterisk.com
parents:
diff changeset
58 prev = r;
c860b8c10de9 move watchpins from /room, add a graph
drewp@bigasterisk.com
parents:
diff changeset
59 });
c860b8c10de9 move watchpins from /room, add a graph
drewp@bigasterisk.com
parents:
diff changeset
60 latestData = steppedPoints;
c860b8c10de9 move watchpins from /room, add a graph
drewp@bigasterisk.com
parents:
diff changeset
61 redraw();
c860b8c10de9 move watchpins from /room, add a graph
drewp@bigasterisk.com
parents:
diff changeset
62 }
c860b8c10de9 move watchpins from /room, add a graph
drewp@bigasterisk.com
parents:
diff changeset
63 });
c860b8c10de9 move watchpins from /room, add a graph
drewp@bigasterisk.com
parents:
diff changeset
64 }
c860b8c10de9 move watchpins from /room, add a graph
drewp@bigasterisk.com
parents:
diff changeset
65 $("input[name=maxAge]").change(redraw);
c860b8c10de9 move watchpins from /room, add a graph
drewp@bigasterisk.com
parents:
diff changeset
66
c860b8c10de9 move watchpins from /room, add a graph
drewp@bigasterisk.com
parents:
diff changeset
67 function redraw() {
c860b8c10de9 move watchpins from /room, add a graph
drewp@bigasterisk.com
parents:
diff changeset
68 // https://developers.google.com/chart/interactive/docs/gallery/linechart#Configuration_Options
c860b8c10de9 move watchpins from /room, add a graph
drewp@bigasterisk.com
parents:
diff changeset
69 var options = {
c860b8c10de9 move watchpins from /room, add a graph
drewp@bigasterisk.com
parents:
diff changeset
70 title: 'theaterDoorOutsideMotion',
c860b8c10de9 move watchpins from /room, add a graph
drewp@bigasterisk.com
parents:
diff changeset
71 legend: {
c860b8c10de9 move watchpins from /room, add a graph
drewp@bigasterisk.com
parents:
diff changeset
72 position: "none",
c860b8c10de9 move watchpins from /room, add a graph
drewp@bigasterisk.com
parents:
diff changeset
73 },
c860b8c10de9 move watchpins from /room, add a graph
drewp@bigasterisk.com
parents:
diff changeset
74 lineWidth: .5,
c860b8c10de9 move watchpins from /room, add a graph
drewp@bigasterisk.com
parents:
diff changeset
75 hAxis: {
c860b8c10de9 move watchpins from /room, add a graph
drewp@bigasterisk.com
parents:
diff changeset
76 title: "seconds ago",
c860b8c10de9 move watchpins from /room, add a graph
drewp@bigasterisk.com
parents:
diff changeset
77 viewWindow: {
c860b8c10de9 move watchpins from /room, add a graph
drewp@bigasterisk.com
parents:
diff changeset
78 min: -$("input[name=maxAge]").val(),
c860b8c10de9 move watchpins from /room, add a graph
drewp@bigasterisk.com
parents:
diff changeset
79 max: 0
c860b8c10de9 move watchpins from /room, add a graph
drewp@bigasterisk.com
parents:
diff changeset
80 },
c860b8c10de9 move watchpins from /room, add a graph
drewp@bigasterisk.com
parents:
diff changeset
81 gridlines: { count: -1 }
c860b8c10de9 move watchpins from /room, add a graph
drewp@bigasterisk.com
parents:
diff changeset
82 },
c860b8c10de9 move watchpins from /room, add a graph
drewp@bigasterisk.com
parents:
diff changeset
83 vAxis: {
c860b8c10de9 move watchpins from /room, add a graph
drewp@bigasterisk.com
parents:
diff changeset
84 baseline: -999,
c860b8c10de9 move watchpins from /room, add a graph
drewp@bigasterisk.com
parents:
diff changeset
85 title: "motion sensed",
c860b8c10de9 move watchpins from /room, add a graph
drewp@bigasterisk.com
parents:
diff changeset
86 viewWindow: {
c860b8c10de9 move watchpins from /room, add a graph
drewp@bigasterisk.com
parents:
diff changeset
87 min: -.5,
c860b8c10de9 move watchpins from /room, add a graph
drewp@bigasterisk.com
parents:
diff changeset
88 max: 1.5,
c860b8c10de9 move watchpins from /room, add a graph
drewp@bigasterisk.com
parents:
diff changeset
89 }
c860b8c10de9 move watchpins from /room, add a graph
drewp@bigasterisk.com
parents:
diff changeset
90 }
c860b8c10de9 move watchpins from /room, add a graph
drewp@bigasterisk.com
parents:
diff changeset
91 };
c860b8c10de9 move watchpins from /room, add a graph
drewp@bigasterisk.com
parents:
diff changeset
92
c860b8c10de9 move watchpins from /room, add a graph
drewp@bigasterisk.com
parents:
diff changeset
93 chart.draw(latestData, options);
c860b8c10de9 move watchpins from /room, add a graph
drewp@bigasterisk.com
parents:
diff changeset
94 }
c860b8c10de9 move watchpins from /room, add a graph
drewp@bigasterisk.com
parents:
diff changeset
95
c860b8c10de9 move watchpins from /room, add a graph
drewp@bigasterisk.com
parents:
diff changeset
96 </script>
c860b8c10de9 move watchpins from /room, add a graph
drewp@bigasterisk.com
parents:
diff changeset
97 </body>
c860b8c10de9 move watchpins from /room, add a graph
drewp@bigasterisk.com
parents:
diff changeset
98 </html>