Skip to main content

Communicate with the AVM FRITZ!Box

Project description

fritzconnection

Python-Interface to communicate with the AVM Fritz!Box. Supports the TR-064 protocol, the (AHA-)HTTP-Interface and also allows call-monitoring.

Installation

For installation use pip:

    $ pip install fritzconnection
      or
    $ pip install fritzconnection[qr]

The latter will install the segno package to enable QR-code creation for wifi login.

Quickstart

Using fritzconnection is as easy as:

    from fritzconnection import FritzConnection

    fc = FritzConnection(address="192.168.178.1", user="user", password="pw")
    print(fc)  # print router model information

    # tr-064 interface: reconnect for a new ip
    fc.call_action("WANIPConn1", "ForceTermination")

    # http interface: gets history data from a device with given 'ain'
    fc.call_http("getbasicdevicestats", "12345 7891011")

FritzConnection provides two basic commands to communicate with the router APIs: call_action() for the TR-064-Interface and call_http() for the (AHA)-HTTP-Interface. Both APIs can be used on the same FritzConnection instance side by side.

call_action

call_action() expects a TR-064 service- and an action-name (and optional arguments). In general FritzConnection can execute every service and action provided by the (model-specific) API as documented by AVM. For i.e. this can be network settings, status informations, access to home automation devices and much more. The call_action() method returns the response from the router as a dictionary with the values already converted to the matching Python datatypes.

call_http

call_http() expects a command for the http-interface like "getbasicdevicestats" and, depending on the command, additional arguments like a device "ain" (identifier). A call to the method returns a dictionary with the content-type, the encoding and the response data of the http-response. The content-type of the response-data is typical "text/plain" or "text/xml" and may need further processing.

Username and password

To avoid hardcoding the arguments user and password in applications FritzConnection can read both from the environment variables FRITZ_USERNAME and FRITZ_PASSWORD.

Caching

On instantiation FritzConnection has to inspect the model-specific router-API. This causes a lot of network requests and can take some seconds. To avoid this FritzConnection provides a cache that can get activated by the use_cache parameter:

    fc = FritzConnection(..., use_cache=True)

This argument defaults to False. After creating the cache FritzConnection will start up much more faster.

Library

The package comes with library-modules to make some API calls easier and also demonstrates how to implement applications on top of FritzConnection.

Documentation

The full documentation and release notes are at https://fritzconnection.readthedocs.org

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

fritzconnection-1.15.1.tar.gz (59.1 kB view details)

Uploaded Source

Built Distribution

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

fritzconnection-1.15.1-py3-none-any.whl (73.1 kB view details)

Uploaded Python 3

File details

Details for the file fritzconnection-1.15.1.tar.gz.

File metadata

  • Download URL: fritzconnection-1.15.1.tar.gz
  • Upload date:
  • Size: 59.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.11.12

File hashes

Hashes for fritzconnection-1.15.1.tar.gz
Algorithm Hash digest
SHA256 aa40b0a850f65fd7ea0483e65f733aa534d63c5e5bb9a8306c63e9dfd0bcf5dd
MD5 28c22229e7ab16e77e6a191f40e08a7f
BLAKE2b-256 e09fc21ecd5e3c7b43ac550cb843c79241d3461da07900d810053df5dfa74875

See more details on using hashes here.

File details

Details for the file fritzconnection-1.15.1-py3-none-any.whl.

File metadata

File hashes

Hashes for fritzconnection-1.15.1-py3-none-any.whl
Algorithm Hash digest
SHA256 741a43f339e3ec87c17ed00d3818f3e2d5c1aec3635b3d69eb68ff11eae8394c
MD5 9fb7d1e5e42aa6270bbbaf58447bdc35
BLAKE2b-256 99b0873ca479f2e729cbd3f864f5c34fde4bb900f7c3fb3733b6376f21506ce8

See more details on using hashes here.

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