Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Update xknx to 0.21.5 #112

Closed
wants to merge 1 commit into from
Closed

Conversation

pyup-bot
Copy link
Collaborator

This PR updates xknx from 0.16.3 to 0.21.5.

Changelog

0.21.4

Devices

- Fan: Add support for dedicated on/off switch GA
- Sensor: Set `unit_of_measurement` for DPTString to `None`

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

0.21.3

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

Bugfixes

- IP Secure: Fix MAC calculation for 22-byte payloads
- IP Secure: Fix Keyring loading

Internals

- Rename TaskRegistry.register and Task `task` attribute to `async_func` to avoid confusion; return Task from `start()`

0.21.1

Bugfixes

- Fix exposure of datetime, time and date objects to the Bus again

Internals

- TaskRegistry takes functions returning coroutines instead of coroutines directly

0.21.0

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 of `netifaces`
- make HPAI hashable and add `addr_tuple` convenice property

0.20.4

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 form `GroupAddress` to `address_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

0.20.3

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

0.20.2

Bug fixes

- Properly shutdown climate mode if climate.shutdown() is called and ClimateMode exists

0.20.1

Features

- Add support for SearchRequestExtended to find interfaces that allow IP Secure
- Use XKNX `state_updater` argument to set default method for StateUpdater. StateUpdater is always started - Device / RemoteValue can always opt in to use it, even if default is `False`.
- Add support for DPT 16.001 (DPT_String_8859_1) as `DPTLatin1` with value_type "latin_1".

Bug fixes

- Stop SecureSession keepalive_task when session is stopped (and don't restart it from sending STATUS_CLOSE)
- Fix encoding invalid characters for DPTString (value_type "string")

0.20.0

Features

- We now support IP Secure!
Thanks to MDT for providing us an interface for testing purposes!
- Add support for requesting tunnel interface information

Protocol

- add SessionRequest, SessionResponse, SessionAuthenticate, SessionStatus, SecureWrapper Frame parser

Internals

- Drop support for Python 3.8 to follow Home Assistant changes
- Return `bytes` from to_knx() in knxip package instead of `list[int]`
- Add a callback for `connection_lost` of TCP transports to Tunnel

0.19.2

Connection

- Do a ConnectionStateRequest heartbeat on TCP tunnel connections too

Devices

- Handle invalid payloads per RemoteValue, log a readable warning

0.19.1

Connection

- Tunneling: Fix route_back connections sending to invalid address

Protocol

- add DescriptionRequest and DescriptionResponse Frame parser

0.19.0

Devices

- Handle ConversionError in RemoteValue, log a readable warning

Connection

- Raise if an initial connection can not be established, auto-reconnect only when the connection was successful once
- Add support for TCP tunnel connections
- Optionally run KNXIPInterface in separate thread
- Handle separate Tunneling control and data endpoints
- Fix rate limiter wait time: don't add time waiting for ACK or L_DATA.con frames to the rate_limit

Internals

- Some refactoring and code movement in the io module - especially in KNXIPInterface; renamed UDPClient to UDPTransport
- Cleanup some list generating code in the knxip module

0.18.15

Internals

- Fix Gateway Scanner on Linux

0.18.14

Internals

- Tunnel: Implement flow control according to KNX spec recommendations: wait for L_DATA.con frame before sending next L_DATA.req with 3 second timeout
- Logging: Some changes to loggers like `knx` now includes the source/destination HPAI and a timestamp
- Fix a rare race-condition in the gateway scanner where a non-existing interface was queried

0.18.13

Internals

- Fix GatewayScanner on MacOS and Windows and only return one instance of a gateway

Devices

- Light: Only send to global switch or brightness address if individual colors are configured to not overwrite actuator colors
- Light: Debounce individual colors callback to mitigate color flicker in visualizations

0.18.12

Internals

- Gatewayscanner now also reports the individual address of the gateway
- Outgoing telegrams will now have the correct source_address if tunneling is used

Devices

- Added `always_callback` option to NumericValue and RawValue

0.18.11

Internals

- Stop state updater if connection is lost and restart if restored
- Add central task registry to keep track of tasks spawned in devices

0.18.10

Internals

- DPTString: replace invalid characters with question marks in `to_knx`
- Catch and log exceptions raised in callbacks to not stall the TelegramQueue
- Handle callbacks in separate asyncio Tasks
- GatewayScanFilter: Ignore non-gateway KNX/IP devices
- Introduce connection state change handler

Home Assistant Plugin

- Properly handle disconnected state in the UI.

0.18.9

Devices

- Light: Support for HS-color (DPT 5.003 hue and 5.001 saturation)

0.18.8

Devices

- Cover: enable `set_up` and `set_down` with `group_address_position` only (without `group_address_long`).

0.18.7

Devices

- Add RawValue device.
- Remove unused HA-specific attributes (unique_id, device_class, create_sensors).
- Climate: add `group_address_active_state`, `group_address_command_value_state` and a `is_active` property.
- Configurable `sync_state` in all devices.

0.18.6

Devices

- Add `respond_to_read` option to Switch. If `True` GroupValueRead telegrams addressed to the `group_address` are answered.
- Add NumericValue device.

Internals

- Add RemoteValueNumeric for values of type `float | int`.
- Fix DPTBase classmethod return types

0.18.5

Internals

- `DPTBase.parse_transcoder` is now a classmethod to allow parsing only subclasses.
- Add `DPTNumeric` as base class for DPTs representing numeric values.

0.18.4

Bugfix

- ClimateMode: Fix telegram processing when operation_mode and controller_mode (heat/cool) are both used

0.18.3

Devices

- Light: Support for xyY-color (DPT 242.600)

0.18.2

Devices

- Climate: Make `setpoint_shift_mode` optional. When `None` assign its DPT from the first incoming payload.
- Light: Support individual color lights without switch object

0.18.1

Devices

- Add InternalGroupAddress for communication between Devices without sending to the bus.

Internals

- RemoteValue.value changed to a settable property. It is used to create payloads for outgoing telegrams.
- RemoteValue.update_value (async) sets a new value and awaits the callbacks without sending to the bus.
- Round DPT 14 values to precision of 7 digits

0.18.0

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

Breaking Changes

- Remove configuration handling from core library (use https://xknx.io/config-converter)

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

0.17.5

HA integration

- Add experimental (opt-in) support for unique ids

Internals

- Remove unfinished config v2

0.17.4

Internals

- Comparing GroupAddress or IndividualAddress to other types don't raise TypeError anymore
- Specify some type annotations

0.17.3

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

0.17.2

Devices

- BinarySensor, Sensor: add `ha_value_template` attribute to store HomeAssistant value templates

Internals

- Distribute type annotations

0.17.1

Devices

- Cover: Use correct step direction when stopping

Internals

- Convert all Enums to upper case to satisfy pylint

0.17.0

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` for `BinarySensor.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` to `create_sensors` to prevent confusion with the XKNX `expose_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 of `Tuple[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_reconnect`to True
Links

@pyup-bot pyup-bot mentioned this pull request Jun 28, 2022
@pyup-bot
Copy link
Collaborator Author

Closing this in favor of #125

@pyup-bot pyup-bot closed this Aug 13, 2022
@dstrigl dstrigl deleted the pyup-update-xknx-0.16.3-to-0.21.5 branch August 13, 2022 23:52
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant