fritz-switch-profiles
A (Python) script to remotely set device profiles of an AVM Fritz!Box
Forked from https://github.com/flopp/fritz-switch-profiles.git to add a PyPi release.
Installation
git clone https://github.com/eifinger/fritz-switch-profiles.git
cd fritz-switch-profiles
python3 -m venv venv
source venv/bin/activate
pip install -r requirements.txt
Usage
usage: fritz-switch-profiles.py [-h] [--url URL] [--user USER] --password
PASSWORD [--list-devices] [--list-profiles]
[DEVICE=PROFILE [DEVICE=PROFILE ...]]
positional arguments:
DEVICE=PROFILE Desired device to profile mapping
optional arguments:
-h, --help show this help message and exit
--url URL The URL of your Fritz!Box; default: http://fritz.box
--user USER Login username; default: empty
--password PASSWORD Login password
--list-devices List all known devices
--list-profiles List all available profiles
- Determine the ID of the device, whose profile you want to change
./fritz-switch-profiles.py --password YOURPASSWORD --list-devices
->
LOGGING IN TO FRITZ!BOX AT http://fritz.box...
FETCHING AVAILABLE PROFILES...
FETCHING DEVICES...
FETCHING DEVICE PROFILES...
DEVICE_ID PROFILE_ID DEVICE_NAME
landevice5007 filtprof1 android-1234567890123456 [NOT ACTIVE]
landevice6494 filtprof1 my kid's iphone
landevice5006 filtprof2 Chromecast
...
- Determine the available profiles
./fritz-switch-profiles.py --password YOURPASSWORD --list-profiles
->
LOGGING IN TO FRITZ!BOX AT http://fritz.box...
FETCHING AVAILABLE PROFILES...
FETCHING DEVICES...
FETCHING DEVICE PROFILES...
PROFILE_ID PROFILE_NAME
filtprof1 Standard
filtprof2 Gast
filtprof3 Unbeschränkt
filtprof4 Gesperrt
- Actually change the profiles
./fritz-switch-profiles.py --password YOURPASSWORD landevice6494=filtprof4
->
LOGGING IN TO FRITZ!BOX AT http://fritz.box...
FETCHING AVAILABLE PROFILES...
FETCHING DEVICES...
FETCHING DEVICE PROFILES...
UPDATING DEVICE PROFILES...
CHANGING PROFILE OF landevice6494/my kid's iphone TO filtprof4/Gesperrt
Note that you may change the profiles of multiple devices at once by supplying multiple DEVICE=PROFILE pairs on the command line.
Usage as a library
From example.py
from fritz_switch_profiles import FritzProfileSwitch
url = 'http://fritz.box'
user = ''
password = 'mysecurepassword'
fps = FritzProfileSwitch(url, user, password)
devices = fps.get_devices()
profiles = fps.get_profiles()
fps.print_devices()
fps.print_profiles()
profile_for_device = [devices[0]['id1'], profiles[2]['id']]
fps.set_profiles(profile_for_device)
Known Issues
- Non-uniquely named devices may confuse the script.
License
MIT © 2018 Florian Pigorsch & contributors
Release files for fritz-switch-profiles 1.1.5
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| fritz-switch-profiles-1.1.5.tar.gz | 9.1 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| fritz_switch_profiles-1.1.5-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 15.8 kB
Release files / fritz-switch-profiles-1.1.5.tar.gz
| Download URL | fritz-switch-profiles-1.1.5.tar.gz |
|---|---|
| Size | 9.1 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
1571606c88db9b615a98182a3a365b9ef057cea5a243ae7c88f916d9b88a4e3b
|
|
BLAKE2b-256 checksum How to use checksums |
95a2430c0eb97e49a106b2929d86590465b140bdfcb0acc819615e3f7e45386b
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/3.4.1 importlib_metadata/4.6.1 pkginfo/1.7.0 requests/2.25.1 requests-toolbelt/0.9.1 tqdm/4.61.1 CPython/3.7.11
|
Release files / fritz_switch_profiles-1.1.5-py3-none-any.whl
| Download URL | fritz_switch_profiles-1.1.5-py3-none-any.whl |
|---|---|
| Size | 6.7 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
8db19f5d76f9e81757c81923e5fe19eb6d41754a62ce332a8f05aafc0d33b46e
|
|
BLAKE2b-256 checksum How to use checksums |
fc54c75ea3151197b983a9bd96698125fe52d074ea984a6266e677380d540b31
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/3.4.1 importlib_metadata/4.6.1 pkginfo/1.7.0 requests/2.25.1 requests-toolbelt/0.9.1 tqdm/4.61.1 CPython/3.7.11
|