Mercurial > code > home > repos > homeauto
annotate service/wallscreen/gui.js @ 1143:d1bc88f67969
RgbPixelsAnimation and docker build updates
Ignore-this: c79e4a64bb5ad8683aa837839e79785b
darcs-hash:bcc0201b2aaf3a1f1f689a6437eef8298970c58a
author | drewp <drewp@bigasterisk.com> |
---|---|
date | Sat, 03 Mar 2018 18:09:34 -0800 |
parents | c6e6f717fabe |
children |
rev | line source |
---|---|
866
a99b4d5afb83
use websockets for temperature update
drewp <drewp@bigasterisk.com>
parents:
diff
changeset
|
1 var reloadData; |
a99b4d5afb83
use websockets for temperature update
drewp <drewp@bigasterisk.com>
parents:
diff
changeset
|
2 $(function () { |
a99b4d5afb83
use websockets for temperature update
drewp <drewp@bigasterisk.com>
parents:
diff
changeset
|
3 |
a99b4d5afb83
use websockets for temperature update
drewp <drewp@bigasterisk.com>
parents:
diff
changeset
|
4 setTimeout(function () { |
a99b4d5afb83
use websockets for temperature update
drewp <drewp@bigasterisk.com>
parents:
diff
changeset
|
5 window.resizeTo(702,480); |
a99b4d5afb83
use websockets for temperature update
drewp <drewp@bigasterisk.com>
parents:
diff
changeset
|
6 }, 10000); |
a99b4d5afb83
use websockets for temperature update
drewp <drewp@bigasterisk.com>
parents:
diff
changeset
|
7 |
a99b4d5afb83
use websockets for temperature update
drewp <drewp@bigasterisk.com>
parents:
diff
changeset
|
8 var model = { |
a99b4d5afb83
use websockets for temperature update
drewp <drewp@bigasterisk.com>
parents:
diff
changeset
|
9 requestedF: ko.observable(), |
a99b4d5afb83
use websockets for temperature update
drewp <drewp@bigasterisk.com>
parents:
diff
changeset
|
10 tasks: ko.observableArray([]), |
a99b4d5afb83
use websockets for temperature update
drewp <drewp@bigasterisk.com>
parents:
diff
changeset
|
11 events: ko.observableArray([]), |
a99b4d5afb83
use websockets for temperature update
drewp <drewp@bigasterisk.com>
parents:
diff
changeset
|
12 isToday: function (ev) { |
a99b4d5afb83
use websockets for temperature update
drewp <drewp@bigasterisk.com>
parents:
diff
changeset
|
13 var today = moment().format("YYYY-MM-DD"); |
a99b4d5afb83
use websockets for temperature update
drewp <drewp@bigasterisk.com>
parents:
diff
changeset
|
14 return ev.date == today; |
918
c6e6f717fabe
wallscreen show map of people and their distances from home
drewp <drewp@bigasterisk.com>
parents:
873
diff
changeset
|
15 }, |
c6e6f717fabe
wallscreen show map of people and their distances from home
drewp <drewp@bigasterisk.com>
parents:
873
diff
changeset
|
16 mapPersonData: ko.observable(), |
866
a99b4d5afb83
use websockets for temperature update
drewp <drewp@bigasterisk.com>
parents:
diff
changeset
|
17 }; |
a99b4d5afb83
use websockets for temperature update
drewp <drewp@bigasterisk.com>
parents:
diff
changeset
|
18 reloadData = function() { |
a99b4d5afb83
use websockets for temperature update
drewp <drewp@bigasterisk.com>
parents:
diff
changeset
|
19 $.getJSON("content", function (data) { |
a99b4d5afb83
use websockets for temperature update
drewp <drewp@bigasterisk.com>
parents:
diff
changeset
|
20 model.tasks(data.tasks); |
a99b4d5afb83
use websockets for temperature update
drewp <drewp@bigasterisk.com>
parents:
diff
changeset
|
21 model.events(data.events); |
a99b4d5afb83
use websockets for temperature update
drewp <drewp@bigasterisk.com>
parents:
diff
changeset
|
22 }); |
a99b4d5afb83
use websockets for temperature update
drewp <drewp@bigasterisk.com>
parents:
diff
changeset
|
23 } |
a99b4d5afb83
use websockets for temperature update
drewp <drewp@bigasterisk.com>
parents:
diff
changeset
|
24 setInterval(reloadData, 30*60*1000); |
a99b4d5afb83
use websockets for temperature update
drewp <drewp@bigasterisk.com>
parents:
diff
changeset
|
25 reloadData(); |
a99b4d5afb83
use websockets for temperature update
drewp <drewp@bigasterisk.com>
parents:
diff
changeset
|
26 |
918
c6e6f717fabe
wallscreen show map of people and their distances from home
drewp <drewp@bigasterisk.com>
parents:
873
diff
changeset
|
27 reloadMap = function () { |
c6e6f717fabe
wallscreen show map of people and their distances from home
drewp <drewp@bigasterisk.com>
parents:
873
diff
changeset
|
28 $.getJSON("content/map", function (data) { |
c6e6f717fabe
wallscreen show map of people and their distances from home
drewp <drewp@bigasterisk.com>
parents:
873
diff
changeset
|
29 var personData = []; |
c6e6f717fabe
wallscreen show map of people and their distances from home
drewp <drewp@bigasterisk.com>
parents:
873
diff
changeset
|
30 data.pts.forEach(function (pt) { |
c6e6f717fabe
wallscreen show map of people and their distances from home
drewp <drewp@bigasterisk.com>
parents:
873
diff
changeset
|
31 // this is in another config but not yet in the graph |
c6e6f717fabe
wallscreen show map of people and their distances from home
drewp <drewp@bigasterisk.com>
parents:
873
diff
changeset
|
32 var initial = pt.who.split("#")[1].substr(0, 1).toUpperCase(); |
c6e6f717fabe
wallscreen show map of people and their distances from home
drewp <drewp@bigasterisk.com>
parents:
873
diff
changeset
|
33 pt.initial = initial; |
c6e6f717fabe
wallscreen show map of people and their distances from home
drewp <drewp@bigasterisk.com>
parents:
873
diff
changeset
|
34 pt.topFrac = initial == 'K' ? 0 : .5; |
c6e6f717fabe
wallscreen show map of people and their distances from home
drewp <drewp@bigasterisk.com>
parents:
873
diff
changeset
|
35 personData.push(pt); |
c6e6f717fabe
wallscreen show map of people and their distances from home
drewp <drewp@bigasterisk.com>
parents:
873
diff
changeset
|
36 }); |
c6e6f717fabe
wallscreen show map of people and their distances from home
drewp <drewp@bigasterisk.com>
parents:
873
diff
changeset
|
37 model.mapPersonData(personData); |
c6e6f717fabe
wallscreen show map of people and their distances from home
drewp <drewp@bigasterisk.com>
parents:
873
diff
changeset
|
38 }); |
c6e6f717fabe
wallscreen show map of people and their distances from home
drewp <drewp@bigasterisk.com>
parents:
873
diff
changeset
|
39 }; |
c6e6f717fabe
wallscreen show map of people and their distances from home
drewp <drewp@bigasterisk.com>
parents:
873
diff
changeset
|
40 setInterval(reloadMap, 2*60*1000); |
c6e6f717fabe
wallscreen show map of people and their distances from home
drewp <drewp@bigasterisk.com>
parents:
873
diff
changeset
|
41 reloadMap(); |
c6e6f717fabe
wallscreen show map of people and their distances from home
drewp <drewp@bigasterisk.com>
parents:
873
diff
changeset
|
42 |
866
a99b4d5afb83
use websockets for temperature update
drewp <drewp@bigasterisk.com>
parents:
diff
changeset
|
43 function onMessage(d) { |
a99b4d5afb83
use websockets for temperature update
drewp <drewp@bigasterisk.com>
parents:
diff
changeset
|
44 if (d.tempF) { |
a99b4d5afb83
use websockets for temperature update
drewp <drewp@bigasterisk.com>
parents:
diff
changeset
|
45 model.requestedF(d.tempF); |
a99b4d5afb83
use websockets for temperature update
drewp <drewp@bigasterisk.com>
parents:
diff
changeset
|
46 } |
a99b4d5afb83
use websockets for temperature update
drewp <drewp@bigasterisk.com>
parents:
diff
changeset
|
47 } |
873 | 48 reconnectingWebSocket("ws://bang.bigasterisk.com:9102/live", onMessage); |
866
a99b4d5afb83
use websockets for temperature update
drewp <drewp@bigasterisk.com>
parents:
diff
changeset
|
49 |
a99b4d5afb83
use websockets for temperature update
drewp <drewp@bigasterisk.com>
parents:
diff
changeset
|
50 ko.applyBindings(model); |
a99b4d5afb83
use websockets for temperature update
drewp <drewp@bigasterisk.com>
parents:
diff
changeset
|
51 |
a99b4d5afb83
use websockets for temperature update
drewp <drewp@bigasterisk.com>
parents:
diff
changeset
|
52 if (navigator.userAgent == "Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:18.0) Gecko/18.0 Firefox/18.0") { |
a99b4d5afb83
use websockets for temperature update
drewp <drewp@bigasterisk.com>
parents:
diff
changeset
|
53 $(".rot").removeClass("rot"); |
a99b4d5afb83
use websockets for temperature update
drewp <drewp@bigasterisk.com>
parents:
diff
changeset
|
54 } |
a99b4d5afb83
use websockets for temperature update
drewp <drewp@bigasterisk.com>
parents:
diff
changeset
|
55 |
a99b4d5afb83
use websockets for temperature update
drewp <drewp@bigasterisk.com>
parents:
diff
changeset
|
56 function updateClock() { |
a99b4d5afb83
use websockets for temperature update
drewp <drewp@bigasterisk.com>
parents:
diff
changeset
|
57 var now = moment(); |
a99b4d5afb83
use websockets for temperature update
drewp <drewp@bigasterisk.com>
parents:
diff
changeset
|
58 var s = (new Date()).toLocaleTimeString(); |
a99b4d5afb83
use websockets for temperature update
drewp <drewp@bigasterisk.com>
parents:
diff
changeset
|
59 $("#clock").html( |
a99b4d5afb83
use websockets for temperature update
drewp <drewp@bigasterisk.com>
parents:
diff
changeset
|
60 "<div>"+now.format("dddd")+"</div>"+ |
a99b4d5afb83
use websockets for temperature update
drewp <drewp@bigasterisk.com>
parents:
diff
changeset
|
61 "<div>"+now.format("MMM Do")+"</div>"+ |
a99b4d5afb83
use websockets for temperature update
drewp <drewp@bigasterisk.com>
parents:
diff
changeset
|
62 "<div>"+now.format("HH:mm")+"</div>" |
a99b4d5afb83
use websockets for temperature update
drewp <drewp@bigasterisk.com>
parents:
diff
changeset
|
63 ) |
a99b4d5afb83
use websockets for temperature update
drewp <drewp@bigasterisk.com>
parents:
diff
changeset
|
64 } |
a99b4d5afb83
use websockets for temperature update
drewp <drewp@bigasterisk.com>
parents:
diff
changeset
|
65 setInterval(updateClock, 20000) |
a99b4d5afb83
use websockets for temperature update
drewp <drewp@bigasterisk.com>
parents:
diff
changeset
|
66 updateClock(); |
a99b4d5afb83
use websockets for temperature update
drewp <drewp@bigasterisk.com>
parents:
diff
changeset
|
67 }); |