-
Notifications
You must be signed in to change notification settings - Fork 28
/
app.js
67 lines (51 loc) · 1.38 KB
/
app.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
(function(){
var settings = {
channel: 'pi-house',
publish_key: 'demo',
subscribe_key: 'demo'
};
var pubnub = PUBNUB(settings);
var door = document.getElementById('door');
var lightLiving = document.getElementById('lightLiving');
var lightPorch = document.getElementById('lightPorch');
var fireplace = document.getElementById('fireplace');
pubnub.subscribe({
channel: settings.channel,
callback: function(m) {
if(m.temperature) {
document.querySelector('[data-temperature]').dataset.temperature = m.temperature;
}
if(m.humidity) {
document.querySelector('[data-humidity]').dataset.humidity = m.humidity;
}
}
})
/*
Data settings:
Servo
item: 'door'
open: true | false
LED
item: 'light-*'
brightness: 0 - 10
*/
function publishUpdate(data) {
pubnub.publish({
channel: settings.channel,
message: data
});
}
// UI EVENTS
door.addEventListener('change', function(e){
publishUpdate({item: 'door', open: this.checked});
}, false);
lightLiving.addEventListener('change', function(e){
publishUpdate({item: 'light-living', brightness: +this.value});
}, false);
lightPorch.addEventListener('change', function(e){
publishUpdate({item: 'light-porch', brightness: +this.value});
}, false);
fireplace.addEventListener('change', function(e){
publishUpdate({item: 'fireplace', brightness: +this.value});
}, false);
})();