Releases: XKNX/xknx
Releases · XKNX/xknx
2.12.2 Fix thread leak
2.12.1 Address error messages
Internal
- More detailed address parsing error messages.
2.12.0 Broadcasts
Bugfixes
None
is not a valid address parameter for GroupAddress and IndividualAddress anymore. It raisesCouldNotParseAddress
.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
andnm_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
- @oldcorvus made their first contribution in #1365
- @RealByron made their first contribution in #1362
- @opieters made their first contribution in #1375
DPT 9 small negative fix
Bugfixes
- Fix DPT 9 handling of values <
0
and >=-0.005
. These are now rounded to0
instead of being sent as-20.48
.
DateTime fix
Bugfixes
- Fix processing custom time data in DateTime devices.
DateTime state
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
Protocol
- Support Tunnelling Feature service messages.
Spring cleanup
Dependencies
- For Python <3.11 dependency
async_timeout
is added as backport forasyncio.timeout
.
Internals
- Replace
asyncio.wait_for
withasyncio.timeout
. - Add Ruff to pre-commit and tox.
- Use pyproject.toml for specifying project metadata.
Hostnames
Connection
- Resolve IP addresses from hostname or adapter name for
gateway_ip
orlocal_ip
.
Bugfixes
- Handle empty list for group addresses in RemoteValue.
Internals
- Refactor DPTBase transcoder classes
- Accept
DPTArray
orDPTBinary
inDPTBase.from_knx()
instead of rawtuple[int]
. - Return
DPTArray
orDPTBinary
fromDPTBase.to_knx()
instead oftuple[int, ...]
. - Remove payload_valid() from RemoteValue and remove payload type form its generics parameters.
- Accept
IP Device Management
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.