* 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>
* 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