Skip to main content

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 --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.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

fritzwol-0.1.1.tar.gz (24.1 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

fritzwol-0.1.1-py3-none-any.whl (6.6 kB view details)

Uploaded Python 3

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

Hashes for fritzwol-0.1.1.tar.gz
Algorithm Hash digest
SHA256 befd088059a1a0ad33049de4d0880cc592526fb53d9897e9b6920a94b11a7c6b
MD5 e0a163d2f03fa2ef8524a1bc4c614ec8
BLAKE2b-256 0939040ed9c3cebac5930d14dc0ec0c6f1c912fddc19da51639d5cf2e7dc6285

See more details on using hashes here.

Provenance

The following attestation bundles were made for fritzwol-0.1.1.tar.gz:

Publisher: release.yml on jesperschlegel/fritzWOL

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

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

Hashes for fritzwol-0.1.1-py3-none-any.whl
Algorithm Hash digest
SHA256 f29210c007e9832931ccfbd0de8ddfe92fbe0273842f327004aa18227c4e6f87
MD5 e59396ba3fefd8dc4b209c5f9b04b9a5
BLAKE2b-256 e227e272d61d11a6875f3e25f50f8f8ffd78420ce8780cabc7de32395a8d175f

See more details on using hashes here.

Provenance

The following attestation bundles were made for fritzwol-0.1.1-py3-none-any.whl:

Publisher: release.yml on jesperschlegel/fritzWOL

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page