Releases: XKNX/xknx
Releases · XKNX/xknx
Management
Management
- Add support for creating point-to-point connections to do device management
- Add
nm_individual_address_check
procedure to check if an individual address is in use on the network - Add
dm_restart
procedure to request a basic restart of a device - Remove PayloadReader class. Management procedure functions should be used to request data from individual devices.
Internals
- Optionally return a list of Telegrams to be sent to an incoming request as reply. This is used for incoming device management requests. Callbacks for incoming requests (in Interface subclasses) are now handled in an asyncio Task.
- Incoming L_DATA.req frames are confirmed (L_DATA.con) and replies / acks are sent as L_DATA.ind
Secure discovery bugfix
Bugfix
- Fix GatewayDescriptor parsing when SearchResponseExtended DIBs are in unexpected order
Fan out
Devices
- Fan: Add support for dedicated on/off switch GA
- Sensor: Set
unit_of_measurement
for DPTString toNone
Internals
- Lock sending telegrams via a Tunnel until a confirmation is received
- Use device subclass for
device_updated_cb
callback argument type hint - Fix CEMI Frame Ack-request flag set wrongly
Cover update
Devices
- Cover: call
device_updated_cb
periodically when cover is moving - Cover: auto-send a stop for covers not supporting setting position
- Cover: add
invert_updown
option to decouple updown from position - Cover: fix travel time prediction when receiving updates from bus while moving
Protocol
- Parse and encode different TPCI in a CEMIFrame or Telegram
- Set priority "System" flag for point-to-point CEMI frames initialized by a Telegram
0.21.2 IP Secure Bug fixes
Bugfixes
- IP Secure: Fix MAC calculation for 22-byte payloads
- IP Secure: Fix Keyring loading
Internals
- Rename TaskRegistry.register and Task
task
attribute toasync_func
to avoid confusion; return Task fromstart()
Fix Task Registry
Fix Task Registry
Bugfixes
- Fix exposure of datetime, time and date objects to the Bus again
Internals
- TaskRegistry takes functions returning coroutines instead of coroutines directly
Search and connect
Discovery
- Use unicast discovery endpoint to receive SearchRespones frames
- Send SearchRequest and SearchRequestExtended simultaneously when using GatewayScanner
- Skip SearchResponse results for Core-V2 devices - wait for SearchResponseExtended
- Identify interfaces having KNX IP Secure Tunneling required and skip if using Automatic connection mode
- Only send SearchRequests from one interface for each
scan()
call - Connect to next found interface in case of unsuccessful initial connection when using "automatic" mode
Internals
- Use
ifaddr
instead ofnetifaces
- make HPAI hashable and add
addr_tuple
convenice property
Fix exposure of time and date & cleanups
Bugfixes
- Fix exposure of datetime, time and date objects to the Bus
Protocol
- Add DIBSecuredServiceFamilies and DIBTunnelingInfo parser
Internal
- Include base class in
DPTBase.parse_transcoder()
lookup - Move
levels
instance attribute formGroupAddress
toaddress_format
class variable - Remove xknx form every class in the knxip package: CEMIFrame, KNXIPFrame and KNXIPBody (and subclasses)
- Remove xknx form every class in the io.request_response package
- Remove xknx form io.transport package and io.secure_session and io.self_description modules
Threading fixes
Devices
- Notification: add
value_type
argument to set "string" or "latin_1" text encoding
Bug fixes
- Fix call from wrong thread in ConnectionManager
- Fix thread leak when restarting XKNX
Internal
- Change RemoteValueString to _RemoteValueGeneric subclass
Properly handle device shutdowns
0.20.2 Handle shutdown properly
Bug fixes
- Properly shutdown climate mode if climate.shutdown() is called and ClimateMode exists