Releases: XKNX/xknx
Releases · XKNX/xknx
Improvements to HA integration; removal of core config handling
Breaking Changes
- Remove configuration handling from core library (use https://xknx.io/config-converter)
Devices
- Add support for cover lock
- ExposeSensor values can now be read from other xknx devices that share a group address
- Add more information to sensors and binary sensors in the HA integration
Internals
- Drop support for python 3.7
- use pytest tests instead of unittest TestCase
- Move RequestResponse and subclasses to xknx.io.request_response.*
- Move ConnectionConfig to xknx.io.connection
- Store last Telegram and decoded value in RemoteValue
- Improve CI to use Codecov instead of Coveralls for code coverage reports
Add support for unique ids
HA integration
- Add support for unique ids
Internals
- Remove unfinished config v2
Bugfix for ValueReader
Internals
- Comparing GroupAddress or IndividualAddress to other types don't raise TypeError anymore
This caused errors when Point-to-point Telegrams were received while the TelegramQueue had match-all-callbacks (ValueReader) - Specify some type annotations
Passive addresses
Devices
- Accept lists of group addresses using the heads for group_address / group_address_state and the tails for passive_group_addresses in every Device (and RemoteValue)
- Sensor: Don't allow floats in DPTBase value_type parser
Internals
- type annotation fixes
Value templates
Devices
- BinarySensor, Sensor: add
ha_value_template
attribute to store HomeAssistant value templates
Internals
- Distribute type annotations in package
Cover up
Route back
New Features
- Add new optional config
route_back
for connections to be able to work behind NAT. - Read env vars after reading config file to allow dynamic config.
HA integration
- knx_event: fire also for outgoing telegrams
Devices
- BinarySensor: return
None
forBinarySensor.counter
when context timeout is not used (and don't calculate it) - Climate: Add
create_temperature_sensors
option to create dedicated sensors for current and target temperature. - Weather (breaking change!): Renamed
expose_sensors
tocreate_sensors
to prevent confusion with the XKNXexpose_sensor
device type. - Weather: Added wind bearing attribute that accepts a value in degrees (0-360) for determining wind direction.
Internals
- RemoteValue is Generic now accepting DPTArray or DPTBinary
- split RemoteValueClimateMode into RemoteValueControllerMode and RemoteValueOperationMode
- return the payload (or None) in RemoteValue.payload_valid(payload) instead of bool
- Light colors are represented as
Tuple[Tuple[int,int,int], int]
instead ofTuple[List[int], int]
now - DPT 3 payloads/values are not invertable anymore.
- Tunnel: Interface changed - gateway_ip, gateway_port before local_ip, local_port added with default
0
. - Tunnel: default auto_reconnectto True
Fan contributions
Devices
- Fan: Add
max_step
attribute which defines the maximum amount of steps. If set, the fan is controlled by steps instead of percentage. - Fan: Add
group_address_oscillation
andgroup_address_oscillation_state
attributes to control the oscillation of a fan.
Bugfix for yaml loader
- fix conflict with HA Yaml loader
HA register services
HA integration
- knx_event: renamed
fire_event_filter
toevent_filter
and deprecatedfire_event
config option. A callback is now always registered for HA to be able to modify itsgroup_addresses
filter from a service. - added
knx.event_register
service allowing to add and remove group addresses to trigger knx_event without having to change configuration. - added
knx.exposure_register
service allowing to add and remove ExposeSensor instances at runtime
Internals
- remove DPTComparator: DPTBinary and DPTArray are not equal, even if their .value is, and are never equal to
None
. - add Device.shutdown() method (used eg. when removing ExposeSensor)
- TelegramQueue.Callback: add
group_addresses
attribute to store a list of GroupAddress triggering the callback (additionally toaddress_filters
). - add a lot of type annotations