mirror of
				https://github.com/node-red/node-red-nodes.git
				synced 2025-03-01 10:37:43 +00:00 
			
		
		
		
	Added Wake-On-LAN node
This commit is contained in:
		
							
								
								
									
										54
									
								
								io/wol/39-wol.html
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										54
									
								
								io/wol/39-wol.html
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,54 @@ | |||||||
|  | <!-- | ||||||
|  |   Copyright 2013 IBM Corp. | ||||||
|  |  | ||||||
|  |   Licensed under the Apache License, Version 2.0 (the "License"); | ||||||
|  |   you may not use this file except in compliance with the License. | ||||||
|  |   You may obtain a copy of the License at | ||||||
|  |  | ||||||
|  |   http://www.apache.org/licenses/LICENSE-2.0 | ||||||
|  |  | ||||||
|  |   Unless required by applicable law or agreed to in writing, software | ||||||
|  |   distributed under the License is distributed on an "AS IS" BASIS, | ||||||
|  |   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. | ||||||
|  |   See the License for the specific language governing permissions and | ||||||
|  |   limitations under the License. | ||||||
|  | --> | ||||||
|  |  | ||||||
|  | <script type="text/x-red" data-template-name="wake on lan"> | ||||||
|  |     <div class="form-row"> | ||||||
|  |         <label for="node-input-mac"><i class="icon-globe"></i> MAC Address</label> | ||||||
|  |         <input type="text" id="node-input-mac" placeholder="DE:AD:BE:EF:FE:ED"> | ||||||
|  |     </div> | ||||||
|  |     <div class="form-row"> | ||||||
|  |         <label for="node-input-name"><i class="icon-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 <b>msg.mac</b></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 <b>msg.mac</b> to dynamically set the target device mac to wake up.</p> | ||||||
|  | </script> | ||||||
|  |  | ||||||
|  | <script type="text/javascript"> | ||||||
|  |     RED.nodes.registerType('wake on lan',{ | ||||||
|  |         category: 'advanced-output', | ||||||
|  |         color:"#999966", | ||||||
|  |         defaults: { | ||||||
|  |             mac: {value:""}, | ||||||
|  |             name: {value:""} | ||||||
|  |         }, | ||||||
|  |         inputs:1, | ||||||
|  |         outputs:0, | ||||||
|  |         icon: "light.png", | ||||||
|  |         align: "right", | ||||||
|  |         label: function() { | ||||||
|  |             if (this.mac != "") { return "WOL: "+this.mac; } | ||||||
|  |             else { return this.name||"wake on lan"; } | ||||||
|  |         }, | ||||||
|  |         labelStyle: function() { | ||||||
|  |             return this.name?"node_label_italic":""; | ||||||
|  |         } | ||||||
|  |     }); | ||||||
|  | </script> | ||||||
							
								
								
									
										41
									
								
								io/wol/39-wol.js
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										41
									
								
								io/wol/39-wol.js
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,41 @@ | |||||||
|  | /** | ||||||
|  |  * Copyright 2013 IBM Corp. | ||||||
|  |  * | ||||||
|  |  * Licensed under the Apache License, Version 2.0 (the "License"); | ||||||
|  |  * you may not use this file except in compliance with the License. | ||||||
|  |  * You may obtain a copy of the License at | ||||||
|  |  * | ||||||
|  |  * http://www.apache.org/licenses/LICENSE-2.0 | ||||||
|  |  * | ||||||
|  |  * Unless required by applicable law or agreed to in writing, software | ||||||
|  |  * distributed under the License is distributed on an "AS IS" BASIS, | ||||||
|  |  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. | ||||||
|  |  * See the License for the specific language governing permissions and | ||||||
|  |  * limitations under the License. | ||||||
|  |  **/ | ||||||
|  |  | ||||||
|  | var RED = require(process.env.NODE_RED_HOME+"/red/red"); | ||||||
|  | var wol = require('wake_on_lan'); | ||||||
|  | var chk = /^([0-9A-F]{2}[:-]){5}([0-9A-F]{2})$/; | ||||||
|  |  | ||||||
|  | function WOLnode(n) { | ||||||
|  |     RED.nodes.createNode(this,n); | ||||||
|  |     this.mac = n.mac | ||||||
|  |     var node = this; | ||||||
|  |  | ||||||
|  |     this.on("input", function(msg) { | ||||||
|  |         if (msg != null) { | ||||||
|  |             var mac = this.mac || msg.mac || null; | ||||||
|  |             if (mac != null) { | ||||||
|  |                 if (chk.test(mac)) { | ||||||
|  |                     wol.wake(mac, function(error) { | ||||||
|  |                         if (error) { node.warn(error); } | ||||||
|  |                     }); | ||||||
|  |                 } | ||||||
|  |                 else { node.warn("WOL: bad mac address "+mac); } | ||||||
|  |             } | ||||||
|  |             else { node.warn("WOL: no mac address specified"); } | ||||||
|  |         } | ||||||
|  |     }); | ||||||
|  | } | ||||||
|  | RED.nodes.registerType("wake on lan",WOLnode); | ||||||
		Reference in New Issue
	
	Block a user