跳转到主要内容

与AVM FRITZ!Box通信

项目描述

fritzconnection

Python接口,用于与AVM Fritz!Box通信。支持TR-064协议、(AHA-)HTTP接口,并允许呼叫监控。

安装

使用pip进行安装

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

后者将安装segno包以启用wifi登录的二维码创建。

快速入门

使用fritzconnection非常简单

    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提供了两个基本命令来与路由器API通信:call_action() 用于 TR-064接口call_http() 用于 (AHA-)HTTP接口。这两个API可以在同一个FritzConnection实例中同时使用。

call_action

call_action() 预期一个 TR-064 服务名和操作名(以及可选参数)。通常,FritzConnection可以执行由AVM(模型特定)API提供的每个服务及其操作,如AVM所述。例如,这可以是网络设置、状态信息、对家庭自动化设备的访问等等。《call_action()` 方法将路由器响应作为字典返回,其中的值已转换为相应的Python数据类型。

call_http

call_http() 函数期望一个用于 http接口 的命令,例如 "getbasicdevicestats",并根据命令,可能还需要额外的参数,例如设备的 "ain"(标识符)。对该方法的一次调用将返回一个字典,其中包含 http 响应的 content-typeencodingresponse 数据。响应数据的 content-type 通常为 "text/plain" 或 "text/xml",可能需要进一步处理。

用户名和密码

为了避免在应用程序中硬编码 userpassword 参数,FritzConnection 可以从环境变量 FRITZ_USERNAMEFRITZ_PASSWORD 中读取。

缓存

在实例化 FritzConnection 时,必须检查特定型号的路由 API。这会导致大量的网络请求,可能需要几秒钟。为了避免这种情况,FritzConnection 提供了一个缓存,可以通过 use_cache 参数激活。

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

此参数默认为 False。创建缓存后,FritzConnection 将启动得更快。

该软件包包含库模块,可以简化某些 API 调用,并演示如何在 FritzConnection 上实现应用程序。

文档

完整文档和发布说明位于 https://fritzconnection.readthedocs.org

项目详情


下载文件

下载适用于您平台的文件。如果您不确定选择哪个,请了解更多关于 安装包 的信息。

源代码分发

fritzconnection-1.14.0.tar.gz (57.2 kB 查看哈希值)

上传时间 源代码

构建分发

fritzconnection-1.14.0-py3-none-any.whl (71.2 kB 查看哈希值)

上传时间 Python 3

支持者