ec3e1e90283ffa2fe22a12bd3fe0dcc84ca7646e
CI / test (3.10) (push) Successful in 5m27s
CI / test (3.11) (push) Successful in 5m24s
CI / test (3.12) (push) Successful in 5m23s
CI / test (3.10) (pull_request) Successful in 5m26s
CI / test (3.11) (pull_request) Successful in 5m18s
CI / test (3.12) (pull_request) Successful in 5m21s
Drop get_device_warnings. The DSL noise margin and the firmware on offer are already facts in get_system_config (dsl_downstream_noise_margin, firmware_update_available, firmware_version); netOrk derives dsl_snr_low and firmware_update_available from them (netOrk #1111).
napalm-fritzbox
NAPALM community driver for AVM FritzBox routers (read-only, via TR-064).
Requirements
| Dependency | Minimum version |
|---|---|
| Python | 3.9 |
| NAPALM | 4.0 |
| fritzconnection | 1.13 |
Installation
pip install napalm-fritzbox
Or from source:
git clone https://github.com/napalm-automation-community/napalm-fritzbox
cd napalm-fritzbox
pip install -e .
Quick start
from napalm import get_network_driver
driver = get_network_driver("fritzbox")
with driver(
"192.168.178.1",
"user",
"pass",
optional_args={"use_tls": True},
) as d:
print(d.get_facts())
print(d.get_wan_status())
print(d.get_hosts())
Example
driver = get_network_driver("fritzbox")
d = driver("fritz.box", "user", "pass")
d.open()
print(d.get_wan_status())
print(d.get_port_forwards())
print(d.get_ssids())
print(d.get_wireless_clients())
d.close()
Optional arguments
| Argument | Default | Description |
|---|---|---|
use_tls |
True |
Use HTTPS (port 49443) instead of HTTP (port 49000) |
port |
49443 / 49000 |
Override the TR-064 port |
FritzBox serves TR-064 over HTTPS with a self-signed certificate; fritzconnection
does not verify it, so no separate verify option is needed.
Limitations
- Read-only: configuration management methods (
load_merge_candidate,commit_config, ...) are not implemented. get_nat_translations()is derived from the enabled port-forwarding rules — TR-064 does not expose a live connection-tracking table.get_vpn_tunnels()returns an empty dict — FritzOS does not expose VPN tunnel status via TR-064.channel_width,tx_powerandfrequencyinget_radio_status()are not available via TR-064 and are reported as0.
Development
pip install -e ".[dev]"
pytest tests/
CI
This project includes a GitHub Actions workflow that:
- Runs unit tests across Python 3.9–3.12
- Builds sdist and wheel
License
Apache 2.0 — see LICENSE.