KNX/EIB库
knx的Python项目详细描述
极简的KNX/eib python库。
发送电报
此库可用于向总线系统中的执行器发送数据电报。
例如,为了打开灯,可以使用以下代码:
>>> from knx import connect >>> with connect() as c: ... c.write('0/1/14', 1)
其中,0/1/14是灯光的地址,1是 指示灯应打开的数据电报。
收听电报
这个knx库还可以用来监听发送到 公共汽车系统。例如,如果您只想在每次灯光 关闭或打开:
>>> import knx >>> import asyncio >>> @knx.coroutine ... def logger(): ... while True: ... telegram = (yield) ... print('Telegram from {0} sent to {1} with value: {2}'.format( ... telegram.src, telegram.dst, telegram.value)) >>> loop = asyncio.get_event_loop() >>> coro = knx.bus_monitor(logger(), host='localhost', port=6720) >>> loop.run_until_complete(coro)
安装要求
- python=3.6
使用pip安装:
$ pip install knx
替代方案
如果您正在寻找完整的家庭自动化解决方案,您可能希望采取 看看home-assistant或者 smarthome。
发展
在您喜爱的编辑器中编辑knx.py,并使用python -m unittest或python tests.py运行测试。
如果要在不安装此库的情况下运行示例,可以使用:
python -m examples.actor -- hostname '0/0/20'
(用适当的模块名替换actor,如果 模块不需要它们)