A (Python) script to remotely set device profiles of an AVM Fritz!Box
Project description
fritz-switch-profiles
A (Python) script to remotely set device profiles of an AVM Fritz!Box
Installation
git clone https://github.com/flopp/fritz-switch-profiles.git
cd fritz-switch-profiles
virtualenv -p python3 env
source env/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
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
Close
Hashes for fritz-switch-profiles-1.0.0.tar.gz
Algorithm | Hash digest | |
---|---|---|
SHA256 | 234c4c6f12b11a0e3ba6151e64c6ede3905795b11dea8a898c1182a423121147 |
|
MD5 | 9ecdc1a3ddc4ec04853f9b8c2448cfd0 |
|
BLAKE2b-256 | 78197a20bcf17549c19e9ebb8d0bd2902f29fee94cdfabccafd965cb3f9b22ae |