Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/mfussenegger/knx
python knx / eib client library
https://github.com/mfussenegger/knx
eib eib-client knx knx-client library python python-3
Last synced: about 2 months ago
JSON representation
python knx / eib client library
- Host: GitHub
- URL: https://github.com/mfussenegger/knx
- Owner: mfussenegger
- License: mit
- Created: 2015-04-20T21:25:26.000Z (almost 10 years ago)
- Default Branch: master
- Last Pushed: 2019-01-03T14:31:31.000Z (about 6 years ago)
- Last Synced: 2024-11-23T07:33:34.053Z (about 2 months ago)
- Topics: eib, eib-client, knx, knx-client, library, python, python-3
- Language: Python
- Size: 33.2 KB
- Stars: 27
- Watchers: 11
- Forks: 14
- Open Issues: 2
-
Metadata Files:
- Readme: README.rst
- License: LICENSE
Awesome Lists containing this project
README
===
knx
===.. image:: https://travis-ci.org/mfussenegger/knx.svg?branch=master
:target: https://travis-ci.org/mfussenegger/knx
:alt: travis-ci.. image:: https://img.shields.io/pypi/wheel/knx.svg
:target: https://pypi.python.org/pypi/knx/
:alt: Wheel.. image:: https://img.shields.io/pypi/v/knx.svg
:target: https://pypi.python.org/pypi/knx/
:alt: PyPI Version.. image:: https://img.shields.io/pypi/pyversions/knx.svg
:target: https://pypi.python.org/pypi/knx/
:alt: Python VersionA minimalistic `KNX `_ / EIB
python library.Sending telegrams
-----------------This library can be used to send data telegrams to actuators in the bus system.
For example in order to turn on a light the following code could be used::
>>> from knx import connect
>>> with connect() as c:
... c.write('0/1/14', 1)Where ``0/1/14`` is the address of the light and ``1`` is the payload of the
data telegram which indicates that the light should be turned on.Listening to telegrams
----------------------This KNX library can also be used to listen to telegrams that are sent onto the
bus system. For example if you simply want to log an entry each time a light is
turned off or on::>>> 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)Install & Requirements
======================- Python >= 3.6
Install using pip::
$ pip install knx
Disclaimer
==========I've only tested this with `eibd
`_ 0.0.5 and the fork
`knxd `_ as a gateway.Alternatives
============If you're looking for complete home automation solutions you might want to take
a look at `home-assistant `_ or
`smarthome `_.Development
===========Edit ``knx.py`` in your favorite editor and run tests using ``python -m
unittest`` or ``python tests.py``.If you want to run the examples without first installing this library you can use::
python -m examples.actor -- hostname '0/0/20'
(Replace actor with the appropriate module name and omit the arguments if the
module doesn't require them)