-
Notifications
You must be signed in to change notification settings - Fork 3
/
test.js
69 lines (58 loc) · 1.6 KB
/
test.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
68
69
'use strict';
var EventEmitter = require('events').EventEmitter;
var opts;
try {
opts = require('./config.json');
} catch(e) {
opts = require('./package.json').config || {};
}
function getLog(name) {
return {
debug: console.log.bind(name),
info: console.log.bind(name),
warn: console.log.bind(name),
error: console.log.bind(name),
extend: function(newName) {
return getLog(name + ' - ' + newName);
}
};
}
var app = new EventEmitter();
app.log = getLog(require('./package.json').name);
app.serial = 'test';
var driver = new (require('./index'))(opts, app);
driver.log = app.log;
driver.on('register', function(device) {
console.log('Driver.register', device);
device.on('data', function(value) {
console.log('Device.emit data', value);
});
if (device.D == 1008) { //It's a light
setInterval(function() {
device.write({bri:254,sat:254,hue:Math.floor(Math.random()* 65535),on:true,transitionTime:0});
}, 2000);
}
if (device.D == 238) { //It's a relay
var x = false;
setInterval(function() {
device.write(x=!x);
}, 2000);
}
});
driver.save = function(config) {
console.log('Saving opts', config||opts);
require('fs').writeFileSync('./config.json', JSON.stringify(config||opts));
};
setTimeout(function() {
app.emit('client::up');
setTimeout(function() {
driver.config({
method: 'startPairing',
params: {
pairingTime: 60
}
}, function(err, response) {
console.log('Response from pairing request', err, response);
});
}, 4000);
}, 500);