Skip to main content

fritzWOL

A small text-based tool that connects to a FRITZ!Box — on your local network or remotely through myFritz — lists the devices on your network and lets you pick one to turn on via Wake-on-LAN.

It talks to the router over AVM's TR-064 interface using fritzconnection.

                       FritzBox network devices
┏━━━┳━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━┓
┃ # ┃ Name           ┃ IP             ┃ MAC               ┃ Status    ┃
┡━━━╇━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━┩
│ 1 │ Gaming-PC      │ 192.168.178.42 │ 1C:1B:0D:AA:BB:CC │ ○ offline │
│ 2 │ NAS            │ 192.168.178.20 │ 00:11:22:33:44:55 │ ○ offline │
│ 3 │ fritz.box      │ 192.168.178.1  │ 34:31:C4:AA:BB:CC │ ● online  │
│ 4 │ Living-Room-TV │ 192.168.178.60 │ B8:27:EB:11:22:33 │ ● online  │
│ 5 │ Office-Laptop  │ 192.168.178.31 │ 3C:22:FB:44:55:66 │ ● online  │
└───┴────────────────┴────────────────┴───────────────────┴───────────┘

Select device number to wake (q to quit):

Requirements

  • Python 3.12+.
  • A FRITZ!Box user with the "FRITZ!Box Settings" permission.
  • The target device must support Wake-on-LAN and have it enabled in its own network adapter / BIOS-UEFI settings, and be known to the FritzBox (it appears under Home Network > Network).
  • For remote access: an active myFritz account and enabled internet access (Internet > MyFRITZ! Account).

Install

Install it from PyPI:

pip install fritzwol         # or: uv tool install fritzwol / pipx install fritzwol

This puts a fritzwol command on your PATH. To install straight from GitHub without cloning first:

uv tool install git+https://github.com/jesperschlegel/fritzWOL.git

Or from a local checkout:

uv tool install .          # or: pipx install .

For local development instead of a global install:

uv sync
uv run fritzwol            # or: uv run fritzwol.py

Usage

Interactive (you will be prompted for anything not supplied):

fritzwol

It prints the known devices (offline ones first, as the usual wake candidates) and lets you pick one by number.

Remote access through myFritz — pass the HTTPS remote-access port your FRITZ!Box exposes (Internet > Permit Access > FRITZ!Box Services, often 443 or a custom port):

fritzwol --address xxxxxxxxxxxxxxxx.myfritz.net --user myuser --port 443

The default port (49443, the LAN TLS port) only applies to local access. For remote myFritz access you normally need to set --port to the HTTPS port configured on the box.

Local access on your home network:

fritzwol --address fritz.box --no-tls --user myuser

Just list devices without waking anything:

fritzwol --list

Show only offline devices (the usual wake candidates):

fritzwol --offline-only

Wake a specific MAC address directly (no menu):

fritzwol --mac 00:11:22:33:44:55

Configuration via environment variables

Instead of flags you can set:

Variable Meaning
FRITZ_ADDRESS FritzBox address or myfritz hostname
FRITZ_PORT TR-064 port (default 49443 TLS / 49000 not)
FRITZ_USER FritzBox user name
FRITZ_PASSWORD FritzBox password
FRITZ_TLS true/false — use TLS (default true)

The password is prompted for securely if it is not provided.

How it works

  1. Connects with fritzconnection (use_tls=True for myFritz).
  2. Reads the host list via the Hosts TR-064 service (get_hosts_info).
  3. Sends X_AVM-DE_WakeOnLANByMACAddress for the chosen device's MAC.

A woken device may take a moment to appear as online.

Metadata

Release files for fritzwol 0.1.1

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for fritzwol 0.1.1
File Size Uploaded
fritzwol-0.1.1.tar.gz 24.1 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for fritzwol 0.1.1
File Interpreter ABI Platform
fritzwol-0.1.1-py3-none-any.whl Python 3 none any Details

Total release size: 30.7 kB

Release files / fritzwol-0.1.1.tar.gz

Download URL fritzwol-0.1.1.tar.gz
Size 24.1 kB
Tags Source
SHA-256 checksum
How to use checksums
befd088059a1a0ad33049de4d0880cc592526fb53d9897e9b6920a94b11a7c6b
BLAKE2b-256 checksum
How to use checksums
0939040ed9c3cebac5930d14dc0ec0c6f1c912fddc19da51639d5cf2e7dc6285
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.12

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Jul 4, 2026.

Transparency log

Release files / fritzwol-0.1.1-py3-none-any.whl

Download URL fritzwol-0.1.1-py3-none-any.whl
Size 6.6 kB
Tags Python 3
SHA-256 checksum
How to use checksums
f29210c007e9832931ccfbd0de8ddfe92fbe0273842f327004aa18227c4e6f87
BLAKE2b-256 checksum
How to use checksums
e227e272d61d11a6875f3e25f50f8f8ffd78420ce8780cabc7de32395a8d175f
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.12

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Jul 4, 2026.

Transparency log

Release history Release notifications | RSS feed

This release

0.1.1 This release

2 release files

0.1.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page