node-red-node-wol: added address field

This commit is contained in:
Nathanaël Lécaudé 2016-11-12 17:44:16 -05:00
parent ac06645615
commit bfe5099c1d
2 changed files with 11 additions and 2 deletions

View File

@ -4,16 +4,21 @@
<label for="node-input-mac"><i class="fa fa-globe"></i> MAC Address</label>
<input type="text" id="node-input-mac" placeholder="e.g. DE:AD:BE:EF:FE:ED">
</div>
<div class="form-row">
<label for="node-input-host"><i class="fa fa-globe"></i> Host Address</label>
<input type="text" id="node-input-host" placeholder="e.g. 255.255.255.255">
</div>
<div class="form-row">
<label for="node-input-name"><i class="fa fa-tag"></i> Name</label>
<input type="text" id="node-input-name" placeholder="Name">
</div>
<div class="form-tips">Tip: leave blank if you want to use <code>msg.mac</code> to dynamically set target mac address.</div>
<div class="form-tips">Tip: leave blank if you want to use <code>msg.mac</code> or <code>msg.host</code> to dynamically set target mac address.</div>
</script>
<script type="text/x-red" data-help-name="wake on lan">
<p>Sends a Wake-On-LAN magic packet to the mac address specified.</p>
<p>You may instead set <code>msg.mac</code> to dynamically set the target device mac to wake up.</p>
<p>The target host address can optionally be set using <code>msg.host</code></p>
</script>
<script type="text/javascript">
@ -22,6 +27,7 @@
color:"#999966",
defaults: {
mac: {value:""},
host: {value:""},
name: {value:""}
},
inputs:1,

View File

@ -7,14 +7,17 @@ module.exports = function(RED) {
function WOLnode(n) {
RED.nodes.createNode(this,n);
this.mac = n.mac.trim();
this.host = n.host;
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';
if (mac != null) {
if (chk.test(mac)) {
try {
wol.wake(mac, function(error) {
node.warn(mac + ' ' + host);
wol.wake(mac, {address: host}, function(error) {
if (error) { node.warn(error); }
else if (RED.settings.verbose) {
node.log("sent WOL magic packet");