How To | Scripting a Wake-On-LAN (WOL) packet in Q-SYS
Learn how to create a Wake-On-LAN packet to remotely access a Q-SYS system.
Procedure
The Wake-On-LAN (WOL) packet is a special packet sent to a device to activate it.
In this example, we place a Text Controller found in the Scripting Components category.
Change the Name to "Button" and the Type to "Trigger".
The Control Pins could be changed afterwards for your use case.
Here's an example script:
--Down and Dirty WOL packet sender. There are many ways to do this better. --not adding extra functions as to show concept --First enter the IPv4 mac address of the destination after each '0x' in the char mac = string.char(0x00)..string.char(0x60)..string.char(0x74)..string.char(0x00)..string.char(0xD5)..string.char(0x63) --Then in the quotes enter the IPV4 Address of the interface that will be sending the WOL SendingIPaddress = "192.168.86.241" --This is the length of time the socket will stay open TimeInSeconds = 1 --Declare the udp socket udp = UdpSocket.New() --This makes the send packet Packet = '' Header = '' Body = '' for i=1,6 do Header = Header .. string.char(0xff) end --builds header of 6 hexbytes of FF for i=1,16 do Body = Body .. mac end --builds body of 16 iterations of the mac Packet = Header .. Body --combine the two parts Controls.Button.EventHandler = function (ctl) --the main function udp:Open(SendingIPaddress) --Binds UDP to the NIC to Send udp:Send("255.255.255.255", 9, Packet) --Sends the Packet that was built to Broadcast Port 9 Timer.CallAfter(function() --internal function timer for a delay udp:Close() --Closes the UDP socket end,TimeInSeconds) --The close of the delay function with the time specified end