List FritzBox network devices and wake one with Wake-on-LAN.
Project description
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
--portto 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
- Connects with
fritzconnection(use_tls=Truefor myFritz). - Reads the host list via the
HostsTR-064 service (get_hosts_info). - Sends
X_AVM-DE_WakeOnLANByMACAddressfor the chosen device's MAC.
A woken device may take a moment to appear as online.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file fritzwol-0.1.1.tar.gz.
File metadata
- Download URL: fritzwol-0.1.1.tar.gz
- Upload date:
- Size: 24.1 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
befd088059a1a0ad33049de4d0880cc592526fb53d9897e9b6920a94b11a7c6b
|
|
| MD5 |
e0a163d2f03fa2ef8524a1bc4c614ec8
|
|
| BLAKE2b-256 |
0939040ed9c3cebac5930d14dc0ec0c6f1c912fddc19da51639d5cf2e7dc6285
|
Provenance
The following attestation bundles were made for fritzwol-0.1.1.tar.gz:
Publisher:
release.yml on jesperschlegel/fritzWOL
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
fritzwol-0.1.1.tar.gz -
Subject digest:
befd088059a1a0ad33049de4d0880cc592526fb53d9897e9b6920a94b11a7c6b - Sigstore transparency entry: 2069138540
- Sigstore integration time:
-
Permalink:
jesperschlegel/fritzWOL@f11bfbaff994880f43d6288cdaac987582008642 -
Branch / Tag:
refs/tags/v0.1.1 - Owner: https://github.com/jesperschlegel
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@f11bfbaff994880f43d6288cdaac987582008642 -
Trigger Event:
release
-
Statement type:
File details
Details for the file fritzwol-0.1.1-py3-none-any.whl.
File metadata
- Download URL: fritzwol-0.1.1-py3-none-any.whl
- Upload date:
- Size: 6.6 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
f29210c007e9832931ccfbd0de8ddfe92fbe0273842f327004aa18227c4e6f87
|
|
| MD5 |
e59396ba3fefd8dc4b209c5f9b04b9a5
|
|
| BLAKE2b-256 |
e227e272d61d11a6875f3e25f50f8f8ffd78420ce8780cabc7de32395a8d175f
|
Provenance
The following attestation bundles were made for fritzwol-0.1.1-py3-none-any.whl:
Publisher:
release.yml on jesperschlegel/fritzWOL
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
fritzwol-0.1.1-py3-none-any.whl -
Subject digest:
f29210c007e9832931ccfbd0de8ddfe92fbe0273842f327004aa18227c4e6f87 - Sigstore transparency entry: 2069138670
- Sigstore integration time:
-
Permalink:
jesperschlegel/fritzWOL@f11bfbaff994880f43d6288cdaac987582008642 -
Branch / Tag:
refs/tags/v0.1.1 - Owner: https://github.com/jesperschlegel
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@f11bfbaff994880f43d6288cdaac987582008642 -
Trigger Event:
release
-
Statement type: