Skip to main content

An Asynchronous Library for the KNX protocol. Documentation: https://xknx.io/

Project description

XKNX - An asynchronous KNX library written in Python

PyPI - Python Version codecov Checked with mypy Pre-commit HA integration usage Discord

Documentation

See documentation at: https://xknx.io/

Help

We need your help for testing and improving XKNX. For questions, feature requests, bug reports either open an issue, join the XKNX chat on Discord or write an email.

Development

You will need at least Python 3.10 in order to use XKNX.

Setting up your local environment:

  1. Install requirements: pip install -r requirements/testing.txt
  2. Install pre-commit hook: pre-commit install

Testing

To run all tests, linters, formatters and type checker call tox

Running only unit tests is possible with pytest Running specific unit tests can be invoked by: pytest -vv test/management_tests/procedures_test.py -k test_nm_individual_address_serial_number_write_fail

Home-Assistant

XKNX is the underlying library for the KNX integration in Home Assistant.

Example

"""Example for switching a light on and off."""
import asyncio

from xknx import XKNX
from xknx.devices import Light


async def main():
    """Connect to KNX/IP bus, switch on light, wait 2 seconds and switch it off again."""
    async with XKNX() as xknx:
        light = Light(
            xknx,
            name='TestLight',
            group_address_switch='1/0/9',
        )
        xknx.devices.async_add(light)

        await light.set_on()
        await asyncio.sleep(2)
        await light.set_off()

asyncio.run(main())

Attributions

Many thanks to Weinzierl Engineering GmbH and MDT technologies GmbH for providing us each an IP Secure Router to support testing and development of xknx.

Project details


Release history Release notifications | RSS feed

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

xknx-3.2.0.tar.gz (154.2 kB view details)

Uploaded Source

Built Distribution

xknx-3.2.0-py3-none-any.whl (230.8 kB view details)

Uploaded Python 3

File details

Details for the file xknx-3.2.0.tar.gz.

File metadata

  • Download URL: xknx-3.2.0.tar.gz
  • Upload date:
  • Size: 154.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.1.1 CPython/3.12.6

File hashes

Hashes for xknx-3.2.0.tar.gz
Algorithm Hash digest
SHA256 068e1d0208bffc76643a0c53f23dd4d9edf4ecaa3d813e5aca8b24cc574fc50a
MD5 4e873251e695f9e3b8029a8c1fe58439
BLAKE2b-256 3fa703d7ff292cfe3cecef4fcbc9cb6775b5b55a2fe76b775462377a8ce33af1

See more details on using hashes here.

File details

Details for the file xknx-3.2.0-py3-none-any.whl.

File metadata

  • Download URL: xknx-3.2.0-py3-none-any.whl
  • Upload date:
  • Size: 230.8 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.1.1 CPython/3.12.6

File hashes

Hashes for xknx-3.2.0-py3-none-any.whl
Algorithm Hash digest
SHA256 5acce4bbe6971b64f58a29199f82477831263371f70eaf45b3c8d9a308124bf1
MD5 2fe3f57db3aaa25433daddcdd3433a39
BLAKE2b-256 86dea365fec761f3bdab8f36179be38040fa0c43e60f9650a0c9e25891888c5c

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page