Skip to main content

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 Enertex Bayern GmbH, Weinzierl Engineering GmbH and MDT technologies GmbH for providing us a device to support testing and development of xknx.

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.18.0.tar.gz (190.2 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

xknx-3.18.0-py3-none-any.whl (280.4 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: xknx-3.18.0.tar.gz
  • Upload date:
  • Size: 190.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/7.0.0 CPython/3.14.6

File hashes

Hashes for xknx-3.18.0.tar.gz
Algorithm Hash digest
SHA256 bbca50110fd32e28274bee998462c1e7e992260d7489b957b85af10f15e5991d
MD5 f771d1f573042d67f8dade3ca25a908d
BLAKE2b-256 21bcf80479543890e2b83a8d32c31af3899adcbe9143c2deccfdcf8d7dfb3af0

See more details on using hashes here.

File details

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

File metadata

  • Download URL: xknx-3.18.0-py3-none-any.whl
  • Upload date:
  • Size: 280.4 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/7.0.0 CPython/3.14.6

File hashes

Hashes for xknx-3.18.0-py3-none-any.whl
Algorithm Hash digest
SHA256 98841b34ab28d2f688d6906f5d994b2f3c36b1807204d662e278f7fbd322b54c
MD5 f716f236a2285150e0be5f2cc36c2cb1
BLAKE2b-256 8fdb044894d64f0726bcf35555110235ba1927c5d4cb9b707600f4483a3e20f0

See more details on using hashes here.

Release history Release notifications | RSS feed

Supported by

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