mirror of
https://github.com/node-red/node-red-nodes.git
synced 2025-03-01 10:37:43 +00:00
Added to wol node: num_packets and interval options (#819)
This commit is contained in:
@@ -9,20 +9,32 @@ module.exports = function(RED) {
|
||||
this.mac = n.mac.trim();
|
||||
this.host = n.host;
|
||||
this.udpport = n.udpport;
|
||||
this.numpackets = n.numpackets;
|
||||
this.interval = n.interval;
|
||||
var node = this;
|
||||
|
||||
this.on("input", function(msg) {
|
||||
var mac = this.mac || msg.mac || null;
|
||||
var host = this.host || msg.host || '255.255.255.255';
|
||||
var udpport = Number(msg.udpport || this.udpport || '9');
|
||||
var numpackets = Number(msg.numpackets || this.numpackets || '3');
|
||||
var interval = Number(msg.interval || this.interval || '100');
|
||||
if (udpport < 1 || udpport > 65535) {
|
||||
node.warn("WOL: UDP port must be within 1 and 65535; it has been reset to 9.");
|
||||
udpport = 9;
|
||||
}
|
||||
}
|
||||
if (numpackets < 1 || numpackets > 500) {
|
||||
node.warn("WOL: Number of packets must be within 1 and 500; it has been reset to 3.");
|
||||
numpackets = 3;
|
||||
}
|
||||
if (interval < 1 || interval > 3600000) {
|
||||
node.warn("WOL: Interval between packets must be within 1 and 3600000; it has been reset to 100.");
|
||||
interval = 100;
|
||||
}
|
||||
if (mac != null) {
|
||||
if (chk.test(mac)) {
|
||||
try {
|
||||
wol.wake(mac, {address: host, port: udpport}, function(error) {
|
||||
wol.wake(mac, {address: host, port: udpport, num_packets: numpackets, interval: interval}, function(error) {
|
||||
if (error) {
|
||||
node.warn(error);
|
||||
node.status({fill:"red",shape:"ring",text:" "});
|
||||
|
||||
Reference in New Issue
Block a user