[SOLVED] Adding a Static ARP (WOL)

Sep 6, 2020
3
0
10
My Home Assistant Server needs to send WOL to my TV. I am using Unifi gear, and in order to do WOL between different subnets I need to add a static ARP. My confusion here is where to put the MAC address; after reading this thread, I'm confused about the exact order and placement of the MAC and IP addresses.

HA: 192.168.1.230 mac address = ac:b6:12:2b:1f:37
TV: 192.168.15.15 mac address = b8:13:ge:h5:41:44
DHCP rage is 192.168.1.10 - 192.168.1.254

So if I understand correctly, in my setup, it could be:
Code:
{
    "protocols": {
        "static": {
            "arp": {
                "192.168.1.9": {
                    "hwaddr": "ac:b6:12:2b:1f:37"
                },
                "192.168.15.9": {
                    "hwaddr": "b8:13:ge:h5:41:44"
                }
            }
        }
    }
}
 
Solution
This is messy to get to work. My first suggestion is to use a very cheap raspberry pi on the proper subnet and use a remote access and ask it to send the WoL. Even when it works it seems to not be 100%, I kinda gave up on it.

You have a number of issues. First a WoL packet is not sent to the actual mac address of the device although that method does work for many devices.

Because of denial of service attacks many router type of devices have prevented you from sending data to the broadcast IP address.

In theory you should just have to send the WoL with the proper internal mac to 192.168.15.255 which would then also be sent to the broadcast mac address on that subnet. The tv should receive it and find its mac in the packet and...
This is messy to get to work. My first suggestion is to use a very cheap raspberry pi on the proper subnet and use a remote access and ask it to send the WoL. Even when it works it seems to not be 100%, I kinda gave up on it.

You have a number of issues. First a WoL packet is not sent to the actual mac address of the device although that method does work for many devices.

Because of denial of service attacks many router type of devices have prevented you from sending data to the broadcast IP address.

In theory you should just have to send the WoL with the proper internal mac to 192.168.15.255 which would then also be sent to the broadcast mac address on that subnet. The tv should receive it and find its mac in the packet and wake.

You should not have to mess with the arp entry for your source address. It should auto populate the tables just by sending the packet.

Your first step would be to ping between your source computer and the tv when everything is functional. This shows that the routing and the ARP tables work.

I am suspecting you ask this question because it does not actually work to set the mac of the 15.9 ip address ?
This method does work for many device but not all.

The hack you use since most devices prevent the x.x.x.255 ip. is to take a dummy ip like 192.168.15.250 and map it to the broadcast mac of ff:ff:ff:ff:ff:ff. You would then send the packet to that ip. The tv should wake and as soon as it sends the first packet the arp entry for the tv would auto populate.

WoL is so hard to get to work. Partially this is because microsoft got involved and defined their proprietary forms of sleep that also includes the WoL. Not sure if your tv is impacted.

I still think if you really want to use WoL is to use a small computer like a raspberry to send the messages. The other option is to use one of they many home automation things that allow you to turn power plugs on and off remotely.
 
Solution
Man...thank you so much for that detailed respose. I have been banging my head against a WOL for weeks, and thought all was lost.
I am suspecting you ask this question because it does not actually work to set the mac of the 15.9 ip address ?
Only reason I have not done that yet is because I am not quite sure which MAC to use; the one belonging to the TV, or the one for my Home Assistant server (it's on a Rpi btw), the one you just showed me with all "f" ?
The hack you use since most devices prevent the x.x.x.255 ip. is to take a dummy ip like 192.168.15.250 and map it to the broadcast mac of ff:ff:ff:ff:ff:ff. You would then send the packet to that ip. The tv should wake and as soon as it sends the first packet the arp entry for the tv would auto populate.
So, When you say map it to the mac of ff:ff:ff:ff:ff:ff is that shorthand for my MAC, or literally all "f" ?
 
That is the broadcast mac. You can also just try the one you have in your sample for the TV. Although it technically is not part of the WoL most end devices do not actually care what the destination mac address is in the packet. It for whatever reason they get a packet and it contains the proper string internally they accept it as a WoL. So you "should" be able to set the ip for 15.15 to the string you have for the TV. Not sure why you were using .9 Then again you can set the .9 to ff:ff:ff:ff:ff:ff if that is a unused IP address.