Skip to main content

fritz_switch_profiles

Project description

CI License MIT

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

fritz-switch-profiles-1.1.5.tar.gz (9.1 kB view details)

Uploaded Source

Built Distribution

fritz_switch_profiles-1.1.5-py3-none-any.whl (6.7 kB view details)

Uploaded Python 3

File details

Details for the file fritz-switch-profiles-1.1.5.tar.gz.

File metadata

  • Download URL: fritz-switch-profiles-1.1.5.tar.gz
  • Upload date:
  • Size: 9.1 kB
  • Tags: Source
  • Uploaded using 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

File hashes

Hashes for fritz-switch-profiles-1.1.5.tar.gz
Algorithm Hash digest
SHA256 1571606c88db9b615a98182a3a365b9ef057cea5a243ae7c88f916d9b88a4e3b
MD5 99ea1e52850c2142688a20601cdb89c6
BLAKE2b-256 95a2430c0eb97e49a106b2929d86590465b140bdfcb0acc819615e3f7e45386b

See more details on using hashes here.

File details

Details for the file fritz_switch_profiles-1.1.5-py3-none-any.whl.

File metadata

  • Download URL: fritz_switch_profiles-1.1.5-py3-none-any.whl
  • Upload date:
  • Size: 6.7 kB
  • Tags: Python 3
  • Uploaded using 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

File hashes

Hashes for fritz_switch_profiles-1.1.5-py3-none-any.whl
Algorithm Hash digest
SHA256 8db19f5d76f9e81757c81923e5fe19eb6d41754a62ce332a8f05aafc0d33b46e
MD5 7582d468d7d46aafaa4adea1af7fe288
BLAKE2b-256 fc54c75ea3151197b983a9bd96698125fe52d074ea984a6266e677380d540b31

See more details on using hashes here.

Supported by

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