fritzconnection is a Python library to communicate with the AVM Fritz!Box by the TR-064 protocol. This allows to read status-information from the router, read and change configuration settings and state, monitor realtime phone calls and much more.
The available services are depending on the Fritz!Box model and the according system software. fritzconnection can list and access all available services and actions of a given router. Using fritzconnection is as easy as:
from fritzconnection import FritzConnection fc = FritzConnection(address='192.168.178.1') fc.reconnect() # get a new external ip from the provider print(fc) # print router model information
fritzconnection provides a basic API call_action() that takes a service- and an action-name with optional arguments to send commands and receive data. In the example above the reconnect() method just wraps the call_action() method. A reconnection by means of call_action() would look like this:
fc = FritzConnection(address='192.168.178.1') fc.call_action("WANIPConn1", "ForceTermination")
With the call_action() method every service/action combination documented by the AVM support-page (Apps/TR-064) can get executed.
fritzconnection is neither related nor supported by AVM. Also AVM reserves the right to add, modify or remove features of their products at any time without notice.