跳转到主要内容

RFXCOM RFXtrx库,适用于Python 3.3+

项目描述

Build Status Coverage PyPI Version PyPI Downloads

一个Python库,用于与您的RFXTrx进行自动化项目。

此库设计用于与Python 3.3+和asyncio(但可以实施其他传输)一起使用。目前,它主要用于home项目,这是一个用于管理和可视化您的智能家居设备的仪表板。

此库相对较新,因此支持的设备数量有限,仅限于@d0ugal所拥有的设备。这意味着,当前完全支持的协议列表包括

  1. 状态数据包来自RFXTrx本身。

  2. 能源使用传感器(例如Owl CM119/160和Owl CM180)

  3. 温度和湿度传感器(例如Oregon THGN132)

  4. LightwaveRF的照明和电力控制设备

如果您想使用某个设备,并且认为它不受支持或不确定,请打开一个问题

安装

建议您通过pip从PyPI获取最新版本

pip install rfxcom

但是,如果您想获取最新的开发版本,可以直接从github下载存储库,并在存储库的根目录中运行python setup.py install

文档

在 Read The Docs 上查看文档.

快速示例

以下示例展示了此库的一些基本用法,它设置了 asyncio 事件循环,将库指向串行设备路径,并附加了一个简单的处理函数,该函数打印出它接收的所有数据包的信息。例如,查看它对能源使用传感器的输出

from asyncio import get_event_loop
from rfxcom.transport import AsyncioTransport

dev_name = '/dev/serial/by-id/usb-RFXCOM_RFXtrx433_A1WYT9NA-if00-port0'
loop = get_event_loop()

def handler(packet):
    # Print out the packet - the string representation will show us the type.
    print(packet)

    # Each packet will have a dictionary which contains parsed data.
    print(packet.data)

    # You can access the raw bytes from the packet too.
    print(packet.raw)

try:
    rfxcom = AsyncioTransport(dev_name, loop, callback=handler)
    loop.run_forever()
finally:
    loop.close()

您还可以将协程用作 AsyncioTransport 的回调

from asyncio import get_event_loop, coroutine
from rfxcom.transport import AsyncioTransport

dev_name = '/dev/serial/by-id/usb-RFXCOM_RFXtrx433_A1WYT9NA-if00-port0'
loop = get_event_loop()

@coroutine
def handler(packet):
    print(packet)
    yield from some_io(packet)

try:
    rfxcom = AsyncioTransport(dev_name, loop, callback=handler)
    loop.run_forever()
finally:
    loop.close()

贡献

如果您想为 python-rfxcom 贡献,您需要使用 tox 来运行测试。这将针对 Python 3.3、Python 3.4 进行测试,使用 pyflakes 进行代码检查,并构建文档。要这样做,您只需安装 tox,然后在 python-rfxcom git 仓库的根目录下调用 tox 即可。

pip install tox
tox

如果您无法在本地针对 Python 3.3 和 Python 3.4 进行测试,请不要担心,许多人可能只有一个安装。我们使用出色的 Travis CI 来验证所有拉取请求。

支持者

AWS AWS 云计算和安全赞助商 Datadog Datadog 监控 Fastly Fastly CDN Google Google 下载分析 Microsoft Microsoft PSF 赞助商 Pingdom Pingdom 监控 Sentry Sentry 错误日志 StatusPage StatusPage 状态页面