---
title: "Wake on LAN"
description: "TapHome sends a Wake-on-LAN magic packet over UDP to wake PCs, NAS and servers. One push button, configured with the target IP and MAC address."
url: "https://taphome.com/en/compatibility/wake-on-lan/"
language: en
lastmod: 2026-03-29
generator: hugo
ai:
  topics: ["data-pp","other","udp","wake-on-lan","network-utility"]
  questions: ["How to wake a PC from TapHome using Wake on LAN?","How to set up Wake on LAN in TapHome?","What is the Wake on LAN magic packet format?","How to find the MAC address for Wake on LAN?","Can TapHome wake a NAS or server remotely?"]
---

# Wake on LAN

Communication: Packet Parser → UDP

> Network address
> 
> TapHome reaches this device at the address entered on import. Give the device a fixed address — an IP reservation in the router, or its mDNS name if it supports one — otherwise the integration stops working when the router changes the address.
> 
> [Network Preparation](https://taphome.com/en/docs/setup/network-preparation/)

## Integration guide

Wake on LAN (WoL) is a networking standard that allows a sleeping or powered-off device to be awakened by a special network message called a magic packet. The protocol was co-developed by AMD and Hewlett-Packard in 1995 and is supported by virtually all modern Ethernet network adapters.

The TapHome template sends a WoL magic packet via UDP to a target device. It exposes a single push button — pressing it constructs the magic packet and sends it to the configured IP address. This is a write-only template with no polling or read-back capability, since Wake on LAN is a one-way protocol with no delivery confirmation.

## Configuration

During template import, TapHome prompts for two parameters:

| Parameter | Description | Example |
|-----------|-------------|---------|
| IP Address | Broadcast address of the target network | `192.168.0.255` |
| MAC | Target device MAC address (space-separated hex) | `12 34 56 78 9a bc` |

The IP address should typically be the **subnet broadcast address** (e.g., `192.168.0.255` for a `/24` network), not the target device's unicast IP. Since the device is powered off, it does not have an active IP — the magic packet is broadcast and the target NIC recognizes its own MAC address in the payload.

The MAC address is stored as a module variable and used to construct the magic packet. It must be entered in space-separated hex format (e.g., `12 34 56 78 9a bc`).

> [!WARNING]
> The target device must have Wake on LAN enabled in its BIOS/UEFI settings and on its network adapter. Without this, the magic packet will be sent but the device will not wake up.

### Target device preparation

Wake on LAN requires configuration on the target device before it will respond to magic packets:

1. **BIOS/UEFI** — enable Wake on LAN (typically under Power Management or Network Boot)
2. **Operating system** — enable WoL on the network adapter:
   - Windows: Device Manager > NIC properties > "Wake on Magic Packet"
   - Linux: `ethtool -s eth0 wol g`
3. **Power supply** — the network adapter must receive standby power when the system is off

WoL works from ACPI sleep states S1 (Standby), S3 (Sleep), S4 (Hibernate), and S5 (Shutdown). It does not work from G3 (Mechanical Off) where no power reaches the network adapter.

## Device capabilities

### Wake button

The template exposes a single push button device. Pressing it sends a UDP packet containing the WoL magic packet to the configured IP address on port 9999. The magic packet consists of 6 bytes `FF` (synchronization stream) followed by 16 repetitions of the target MAC address — 102 bytes total.

There is no read-back or status polling. The button is write-only — it triggers the packet send and returns immediately. Since WoL is a one-way protocol, there is no confirmation that the target device actually woke up.

### Additional capabilities

The WoL standard also defines a SecureOn password feature where a 4- or 6-byte password is appended after the MAC repetitions for additional authentication. Subnet-directed broadcast (sending to a specific subnet broadcast address like `192.168.1.255`) can be used to reach devices across subnets if routers are configured to forward directed broadcasts. These capabilities can be added in a future template update.

## Troubleshooting

### Device does not wake up

1. Verify that Wake on LAN is enabled in the target device's BIOS/UEFI settings
2. Verify that the network adapter has WoL enabled at the OS level
3. Confirm the MAC address in TapHome matches the target device's Ethernet adapter (not Wi-Fi)
4. Check that the IP address is set to the correct broadcast address for the target subnet
5. Ensure the target device's power supply provides standby power to the network adapter

### Wi-Fi devices

Wake on LAN is designed for wired Ethernet connections. Most Wi-Fi adapters do not maintain a link in low-power states, so standard WoL magic packets will not reach them. Some devices support Wake on Wireless LAN (WoWLAN), but this is a separate standard and may require different configuration.

> [!NOTE]
> Wake on LAN is a one-way protocol — there is no built-in mechanism to confirm whether the target device actually woke up. To verify, consider adding a separate network ping check or monitoring the device's availability through another TapHome integration.

## Available devices 1

These devices appear in TapHome after import.

Wake on LAN Module

Custom Variables

|                |                                                                                         |
|----------------|-----------------------------------------------------------------------------------------|
| `MAC` (string) | MAC address of the target device in space-separated hex format (e.g. 12 34 56 78 9a bc) |

Wake on LAN Push Button Read and write

Sends a magic packet to wake a sleeping network device — press to send, no status feedback

action

Write button state

```taphome
VAR magicPacket := BYTECOLLECTION("FF FF FF FF FF FF " + MAC + MAC + MAC + MAC + MAC + MAC + MAC + MAC + MAC + MAC + MAC + MAC + MAC + MAC + MAC + MAC);
SENDDATA(magicPacket);
```

**Connection:** Packet Parser → UDP

Possible improvements (2)

- SecureOn Password — Some NICs support a 6-byte SecureOn password appended after the 16x MAC repetitions for additional security
- Subnet-Directed Broadcast — Template sends to a specific IP address; subnet-directed broadcast (e.g. 192.168.0.255) could reach devices whose IP is unknown after shutdown

## Import parameters

Enter these values when you import the XML.

| Asked in the app | Default             |
|------------------|---------------------|
| IP address       | `192.168.0.1`       |
| MAC              | `12 34 56 78 9a bc` |

## Sources

- Wake-on-LAN — Wikipedia
  
  [en.wikipedia.org](https://en.wikipedia.org/wiki/Wake-on-LAN) 2026-03-29
- WakeOnLAN — Wireshark Protocol Reference
  
  [wiki.wireshark.org](https://wiki.wireshark.org/WakeOnLAN) 2026-03-29
- Wake on LAN — Home Assistant Integration
  
  [www.home-assistant.io](https://www.home-assistant.io/integrations/wake_on_lan/) 2026-03-29
- Wake on LAN — ManageEngine Technical Overview
  
  [www.manageengine.com](https://www.manageengine.com/products/oputils/tech-topics/what-is-wake-on-lan.html) 2026-03-29

## Related Documentation

- [Packet Parser Integration](https://taphome.com/en/compatibility/packet-parser-guide/)
- [Packet Parser (HTTP, TCP, UDP, FTP, MQTT)](https://taphome.com/en/docs/integration/packet-parser/)
- [Packet parser functions](https://taphome.com/en/docs/script/packet-parser/)
- [Parsing functions](https://taphome.com/en/docs/script/parsing-functions/)

