* Support DPTComplex objects and validate sensor types
* Gracefully start and stop xknx device objects
* Use non-awaitable XknxDevice callbacks
* Use non-awaitable xknx.TelegramQueue callbacks
* Use non-awaitable xknx.ConnectionManager callbacks
* Remove unnecessary `hass.async_block_till_done()` calls
* Wait for StateUpdater logic to proceed when receiving responses
* Update import module paths for specific DPTs
* Support Enum data types
* New HVAC mode names
* HVAC Enums instead of Enum member value strings
* New date and time devices
* Update xknx to 3.0.0
* Fix expose tests and DPTEnumData check
* ruff and mypy fixes
* Fix KNX Expose for too long strings
* Fix tests
* Catch exception and avoid error during config entry setup for exposures
* Properly catch exceptions in knx expose
* Fix pylint
* Fix CI
* Add test for conversion error
* refactor tests for KNX
- implement KNXTestKit class for convenient setup and assertion of KNX telegrams
- add fixture returning an instance of KNXTestKit with automatic cleanup test
* add tests for expose default attribute
- fix expose edge case not covered by #53046
* use asyncio.Queue instead of AsyncMock.call_args_list
for better readability
* get xknx from Mock instead of hass.data
* fix type annotations
* add injection methods for incoming telegrams
* rest read-response in expose