Xknx Versions Save

XKNX - A KNX library written in Python

2.12.2

2 months ago

Bugfixes

  • Fix thread leak when initial connection attempt fails (on threaded connection mode).

2.12.1

2 months ago

Internal

  • More detailed address parsing error messages.

2.12.0

3 months ago

Bugfixes

  • None is not a valid address parameter for GroupAddress and IndividualAddress anymore. It raises CouldNotParseAddress.
  • None in a RemoteValue or Device group address list is now ignored instead of parsed as broadcast address.
  • Broadcast address ("0/0/0") is now invalid for RemoteValue and Device group addresses and raises CouldNotParseAddress.

Management

  • Add handling mechanism and sending method for broadcast telegrams in the management class.
  • Add new management procedures for device management: nm_invididual_address_write, nm_individual_address_read, nm_individual_address_serial_number_read and nm_individual_address_serial_number_write.

Secure

  • Parse project_name from an ETS Keyring.

Internal

  • Use ruff format and more ruff linters. Remove black, isort, flake8 and pyupgrade from requirements.

New Contributors

2.11.2

9 months ago

Bugfixes

  • Fix DPT 9 handling of values < 0 and >= -0.005. These are now rounded to 0 instead of being sent as -20.48.

2.11.1

10 months ago

Bugfixes

  • Fix processing custom time data in DateTime devices.

2.11.0

10 months ago

Devices

  • Add group_address_state, respond_to_read and sync_state arguments to DateTime devices.
  • Add DPT 9 support for Light color temperature.

Internals

  • Remove pydocstyle and flake8 plugins, add pytest-icdiff to testing requirements.

2.10.0

1 year ago

Protocol

  • Support Tunnelling Feature service messages.

2.9.0

1 year ago

Dependencies

  • For Python <3.11 dependency async_timeout is added as backport for asyncio.timeout.

Internals

  • Replace asyncio.wait_for with asyncio.timeout.
  • Add Ruff to pre-commit and tox.
  • Use pyproject.toml for specifying project metadata.

2.8.0

1 year ago

Connection

  • Resolve IP addresses from hostname or adapter name for gateway_ip or local_ip.

Bugfixes

  • Handle empty list for group addresses in RemoteValue.

Internals

  • Refactor DPTBase transcoder classes
    • Accept DPTArray or DPTBinary in DPTBase.from_knx() instead of raw tuple[int].
    • Return DPTArray or DPTBinary from DPTBase.to_knx() instead of tuple[int, ...].
    • Remove payload_valid() from RemoteValue and remove payload type form its generics parameters.

2.7.0

1 year ago

Protocol

  • Add support for Device Management Configuration service.
  • Support CEMI M_Prop messages.
  • Don't ignore CEMIFrames with source address equal to xknx.current_address.

Internals

  • Use CEMILData instead of CEMIFrame in DataSecure.
  • Move init_from_telegram() from CEMIFrame to CEMILData. telegram() is now a method of CEMILData instead of a property of CEMIFrame.