Skip to content

Releases: XKNX/xknx

2.12.2 Fix thread leak

05 Mar 21:12
Compare
Choose a tag to compare

Bugfixes

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

2.12.1 Address error messages

26 Feb 08:24
Compare
Choose a tag to compare

Internal

  • More detailed address parsing error messages.

2.12.0 Broadcasts

05 Feb 21:07
Compare
Choose a tag to compare

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

DPT 9 small negative fix

24 Jul 11:28
Compare
Choose a tag to compare

Bugfixes

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

DateTime fix

26 Jun 20:02
b3960de
Compare
Choose a tag to compare

Bugfixes

  • Fix processing custom time data in DateTime devices.

DateTime state

25 Jun 21:32
Compare
Choose a tag to compare

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.

Tunnelling Feature

08 May 19:53
1c9e1a7
Compare
Choose a tag to compare

Protocol

  • Support Tunnelling Feature service messages.

Spring cleanup

22 Apr 07:25
Compare
Choose a tag to compare

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.

Hostnames

12 Apr 14:05
Compare
Choose a tag to compare

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.

IP Device Management

15 Mar 21:46
Compare
Choose a tag to compare

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.