node-samsung-airconditioner
Version:
node.js module for the Samsung smart samsung-airconditioners
53 lines (38 loc) • 1.33 kB
JavaScript
var API = require('./samsung-discovery');
var connecting_to = {};
var known_tokens = {};
new API().on('discover', function(aircon) {
if (connecting_to[aircon.options.ip]) {
return;
}
if (aircon.options.ip != '192.168.1.15') {
return;
}
known_tokens[aircon.options.ip] = '98854465-6273-M559-N887-373832354144';
// Do we need to find get a token?
if (!known_tokens[aircon.options.ip]) {
connecting_to[aircon.options.ip] = true;
aircon.get_token(function(err, token) {
if (!!err) return console.log('get_token error: ' + err.message);
console.log('Token is ' + token);
known_tokens[aircon.options.ip] = token;
connecting_to[aircon.options.ip] = false;
}).on('waiting', function() {
console.log('Please power on the device within the next 30 seconds');
});
return;
}
connecting_to[aircon.options.ip] = true;
aircon.login(known_tokens[aircon.options.ip], function() {
aircon.onoff(true);
setTimeout(function() { aircon.onoff(false); }, 5*60 * 1000);
}).on('stateChange', function(state) {
console.log("State changed");
console.log(state);
}).on('loginSuccess', function () {
console.log("HIDSFDs");
aircon.status();
});
}).on('error', function(err) {
console.log('discovery error: ' + err.message);
});