* 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
* knx entity CRUD - initial commit - switch
* platform dependent schema
* coerce empty GA-lists to None
* read entity configuration from WS
* use entity_id instead of unique_id for lookup
* Add device support
* Rename KNXEntityStore to KNXConfigStore
* fix test after rename
* Send schema options for creating / editing entities
* Return entity_id after entity creation
* remove device_class config in favour of more-info-dialog settings
* refactor group address schema for custom selector
* Rename GA keys and remove invalid keys from schema
* fix rebase
* Fix deleting devices and their entities
* Validate entity schema in extra step - return validation infos
* Use exception to signal validation error; return validated data
* Forward validation result when editing entities
* Get proper validation error message for optional GAs
* Add entity validation only WS command
* use ulid instead of uuid
* Fix error handling for edit unknown entity
* Remove unused optional group address sets from validated schema
* Add optional dpt field for ga_schema
* Move knx config things to sub-key
* Add light platform
* async_forward_entry_setups only once
* Test crate and remove devices
* Test removing entities of a removed device
* Test entity creation and storage
* Test deleting entities
* Test unsuccessful entity creation
* Test updating entity data
* Test get entity config
* Test validate entity
* Update entity data by entity_id instead of unique_id
* Remove unnecessary uid unique check
* remove schema_options
* test fixture for entity creation
* clean up group address schema
class can be used to add custom serializer later
* Revert: Add light platfrom
* remove unused optional_ga_schema
* Test GASelector
* lint tests
* Review
* group entities before adding
* fix / ignore mypy
* always has_entity_name
* Entity name: check for empty string when no device
* use constants instead of strings in schema
* Fix mypy errors for voluptuous schemas
---------
Co-authored-by: Marc Mueller <30130371+cdce8p@users.noreply.github.com>
* remove impossible test
IndividualAddress telegrams are not processed by xknx.telegram_queue
* Use Telegrams helper class for group monitor messages
* Store 50 telegrams in deque for group monitor
* Send recent telegrams at once on connection of group monitor
* Update KNX-frontend to support group monitor prepopulation
* telegram device trigger initial
* add Telegrams helper class
to parse and convert Telegram only once instead of once per device trigger
* translation
* label for extra_field
* test device trigger
* test trigger callback removal
* rename extra_field key to same name as used in trigger
* typo
* Add KNX panel
* provide project data for the panel group monitor
* upload and delete project from panel
* test project store
* more tests
* finish tests
* use integers for DPTBinary payload monitor display
* add project to diagnostics
* require new frontend version
* update knx_frontend
* review suggestions
* update xknxproject to 3.1.0
---------
Co-authored-by: Marvin Wichmann <me@marvin-wichmann.de>
* 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