mirror of
https://github.com/node-red/node-red-nodes.git
synced 2025-03-01 10:37:43 +00:00
fix slight wrinkle in new Wemo node
This commit is contained in:
parent
48bcd3c7df
commit
c54a019899
@ -170,7 +170,7 @@
|
||||
var devs = Object.keys(data);
|
||||
if (devs.length !== 0) {
|
||||
for (var d in devs) {
|
||||
if (dev.hasOwnProperty(d)) {
|
||||
if (devs.hasOwnProperty(d)) {
|
||||
$('<option/>',{
|
||||
'value': devs[d],
|
||||
'text': data[devs[d]].name
|
||||
|
@ -23,7 +23,7 @@ var interval = setInterval(wemo.start.bind(wemo), 60000);
|
||||
wemo.start();
|
||||
|
||||
module.exports = function(RED) {
|
||||
"use strict";
|
||||
'use strict';
|
||||
var util = require('util');
|
||||
var ip = require('ip');
|
||||
var bodyParser = require('body-parser');
|
||||
@ -56,9 +56,9 @@ module.exports = function(RED) {
|
||||
var resub_request = http.request(reSubOptions, function(res) {
|
||||
//shoudl raise an error if needed
|
||||
if (res.statusCode != 200) {
|
||||
console.log("problem with resubscription %s - %s", res.statusCode, res.statusMessage);
|
||||
console.log("opts - %s", util.inspect(reSubOptions));
|
||||
console.log("dev - %s", util.inspect(dev));
|
||||
console.log('problem with resubscription %s - %s', res.statusCode, res.statusMessage);
|
||||
console.log('opts - %s', util.inspect(reSubOptions));
|
||||
console.log('dev - %s', util.inspect(dev));
|
||||
delete subscriptions[dev];
|
||||
delete sub2dev[sub.sid];
|
||||
subscribe({dev: subs[s]});
|
||||
@ -81,7 +81,7 @@ module.exports = function(RED) {
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
};
|
||||
|
||||
setInterval(resubscribe, 200000);
|
||||
|
||||
@ -136,7 +136,7 @@ module.exports = function(RED) {
|
||||
|
||||
callback_url += 'wemoNG/notification';
|
||||
|
||||
console.log("Callback URL = %s",callback_url);
|
||||
console.log('Callback URL = %s',callback_url);
|
||||
|
||||
var subscribeOptions = {
|
||||
host: device.ip,
|
||||
@ -158,14 +158,14 @@ module.exports = function(RED) {
|
||||
subscriptions[dev] = {'count': 1, 'sid': res.headers.sid};
|
||||
sub2dev[res.headers.sid] = dev;
|
||||
} else {
|
||||
console.log("failed to subsrcibe");
|
||||
console.log('failed to subsrcibe');
|
||||
}
|
||||
});
|
||||
|
||||
sub_request.end();
|
||||
}
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
function unsubscribe(node) {
|
||||
var dev = node.dev;
|
||||
@ -206,8 +206,8 @@ module.exports = function(RED) {
|
||||
var wemoNGConfig = function(n) {
|
||||
RED.nodes.createNode(this,n);
|
||||
this.device = n.device;
|
||||
}
|
||||
RED.nodes.registerType("wemo-dev", wemoNGConfig);
|
||||
};
|
||||
RED.nodes.registerType('wemo-dev', wemoNGConfig);
|
||||
|
||||
var wemoNGNode = function(n) {
|
||||
RED.nodes.createNode(this,n);
|
||||
@ -215,17 +215,17 @@ module.exports = function(RED) {
|
||||
node.device = n.device;
|
||||
node.name = n.name;
|
||||
node.dev = RED.nodes.getNode(node.device).device;
|
||||
node.status({fill:"red",shape:"dot",text:"searching"});
|
||||
node.status({fill: 'red',shape: 'dot',text: 'searching'});
|
||||
|
||||
//console.log("Control - %j" ,this.dev);
|
||||
if (!wemo.get(node.dev)) {
|
||||
wemo.on('discovered', function(d) {
|
||||
if (node.dev === d) {
|
||||
node.status({fill:"green",shape:"dot",text:"found"});
|
||||
node.status({fill: 'green',shape: 'dot',text: 'found'});
|
||||
}
|
||||
});
|
||||
} else {
|
||||
node.status({fill:"green",shape:"dot",text:"found"});
|
||||
node.status({fill: 'green',shape: 'dot',text: 'found'});
|
||||
}
|
||||
|
||||
node.on('input', function(msg) {
|
||||
@ -233,7 +233,7 @@ module.exports = function(RED) {
|
||||
|
||||
if (!dev) {
|
||||
//need to show that dev not currently found
|
||||
console.log("no device found");
|
||||
console.log('no device found');
|
||||
return;
|
||||
}
|
||||
|
||||
@ -253,7 +253,7 @@ module.exports = function(RED) {
|
||||
if (msg.payload.state && typeof msg.payload.state === 'number') {
|
||||
if (dev.type === 'socket') {
|
||||
if (msg.payload >= 0 && msg.payload < 2) {
|
||||
on = msg.payload.state
|
||||
on = msg.payload.state;
|
||||
}
|
||||
} else if (dev.type === 'light' || dev.type === 'group') {
|
||||
if (msg.payload >= 0 && msg.payload < 3) {
|
||||
@ -272,14 +272,14 @@ module.exports = function(RED) {
|
||||
wemo.toggleSocket(dev, on);
|
||||
} else if (dev.type === 'light`') {
|
||||
//console.log("light");
|
||||
wemo.setStatus(dev,"10006", on);
|
||||
wemo.setStatus(dev,'10006', on);
|
||||
} else {
|
||||
console.log("group");
|
||||
wemo.setStatus(dev, "10006", on);
|
||||
console.log('group');
|
||||
wemo.setStatus(dev, '10006', on);
|
||||
}
|
||||
});
|
||||
}
|
||||
RED.nodes.registerType("wemo out", wemoNGNode);
|
||||
};
|
||||
RED.nodes.registerType('wemo out', wemoNGNode);
|
||||
|
||||
var wemoNGEvent = function(n) {
|
||||
RED.nodes.createNode(this,n);
|
||||
@ -290,7 +290,7 @@ module.exports = function(RED) {
|
||||
node.topic = n.topic;
|
||||
node.dev = RED.nodes.getNode(node.device).device;
|
||||
|
||||
node.status({fill:"red",shape:"dot",text:"searching"});
|
||||
node.status({fill: 'red',shape: 'dot',text: 'searching'});
|
||||
|
||||
var onEvent = function(notification) {
|
||||
var d = sub2dev[notification.sid];
|
||||
@ -328,12 +328,12 @@ module.exports = function(RED) {
|
||||
if (node.dev) {
|
||||
//subscribe to events
|
||||
if (wemo.get(node.dev)) {
|
||||
node.status({fill:"green",shape:"dot",text:"found"});
|
||||
node.status({fill: 'green',shape: 'dot',text: 'found'});
|
||||
subscribe(node);
|
||||
} else {
|
||||
wemo.on('discovered', function(d) {
|
||||
if (node.dev === d) {
|
||||
node.status({fill:"green",shape:"dot",text:"found"});
|
||||
node.status({fill: 'green',shape: 'dot',text: 'found'});
|
||||
subscribe(node);
|
||||
}
|
||||
});
|
||||
@ -346,7 +346,7 @@ module.exports = function(RED) {
|
||||
var device = devices[d];
|
||||
if (device.ip === node.ipaddr) {
|
||||
node.dev = device.id;
|
||||
node.status({fill:"green",shape:"circle",text:"reconfigure"});
|
||||
node.status({fill: 'green',shape: 'circle',text: 'reconfigure'});
|
||||
subscribe(node);
|
||||
break;
|
||||
}
|
||||
@ -354,19 +354,17 @@ module.exports = function(RED) {
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
node.on('close', function(done) {
|
||||
//should un subscribe from events
|
||||
wemo.removeListener('event', onEvent);
|
||||
unsubscribe(node);
|
||||
done();
|
||||
});
|
||||
}
|
||||
RED.nodes.registerType("wemo in", wemoNGEvent)
|
||||
};
|
||||
RED.nodes.registerType('wemo in', wemoNGEvent);
|
||||
|
||||
RED.httpAdmin.get('/wemoNG/devices', function(req, res) {
|
||||
res.json(wemo.devices);
|
||||
|
||||
});
|
||||
|
||||
RED.httpAdmin.use('/wemoNG/notification',bodyParser.raw({type: 'text/xml'}));
|
||||
@ -380,7 +378,6 @@ module.exports = function(RED) {
|
||||
evt.sid = notification.sid;
|
||||
wemo.emit('event',evt);
|
||||
});
|
||||
res.send("");
|
||||
res.send('');
|
||||
});
|
||||
|
||||
}
|
||||
};
|
||||
|
Loading…
x
Reference in New Issue
Block a user