Commit graph

32 commits

Author SHA1 Message Date
Matthias Alphart
9351f300b0
Update xknx to 3.0.0 - more DPT definitions (#122891)
* 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
2024-07-31 09:10:36 +02:00
Matthias Alphart
34e72ea16a
Add support for KNX UI to create light entities (#122342)
* Add light to KNX UI-createable entity platforms

* review from switch

* Add a test
2024-07-22 09:35:29 +02:00
Matthias Alphart
d418a40856
Create, update and delete KNX entities from UI / WS-commands (#104079)
* 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>
2024-07-21 20:01:48 +02:00
epenet
38a6e666a7
Add missing return type to some test functions (#119665) 2024-06-14 08:26:45 +02:00
epenet
3ac0fa53c8
Cleanup unused FixtureRequest in tests (#118780) 2024-06-04 11:49:21 +02:00
epenet
242ee04642
Improve type hints in tests (i-p) (#118380) 2024-05-30 08:47:08 +02:00
Sid
f8b6629b26
Enable Ruff PGH rules (#115091) 2024-04-08 15:42:22 +02:00
Sid
d5f883fbf0
Unignore Ruff PLR in tests (#114470)
* Unignore Ruff PLR in tests

* Address review comments

* review comments

* fix import

* Update test_api.py

* Update test_api.py

* Update test_api.py
2024-04-01 11:11:59 +02:00
Marc Mueller
c88b337600
Add empty line after module docstring [tests f-k] (#112709) 2024-03-08 14:50:04 +01:00
J. Nick Koston
da50e459bf
Ensure knx tests add config entry before updating it (#110425) 2024-02-12 23:13:10 +01:00
Franck Nijhof
3e85a29b86
Move overlapping pylint rules to ruff, disable mypy overlap (#94359) 2023-06-27 17:42:46 +02:00
Matthias Alphart
c522ea855d
KNX Group Monitor: Load latest 50 Telegrams on start (#93153)
* 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
2023-05-17 09:58:00 +02:00
Matthias Alphart
2f8e8901fc
Add KNX interface device trigger for telegrams (#93102)
* 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
2023-05-15 22:59:29 +02:00
Matthias Alphart
6250b0a230
Add a custom panel for KNX with a group monitor (#92355)
* 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>
2023-05-11 00:13:22 +02:00
Matthias Alphart
557b9c7d51
Add KNX interface device with diagnostic entities (#89213) 2023-03-19 02:13:52 -11:00
Matthias Alphart
db428f2141
Update xknx to 2.3.0 - add some DPTs, Routing security (#85658)
Update xknx to 2.3.0
2023-01-11 00:24:56 +01:00
Matthias Alphart
daf56e92a0
Update xknx to 2.0.0 (#82709) 2022-11-26 06:49:11 +01:00
Matthias Alphart
441d7c0461
Wait for config entry platforms in KNX (#77437) 2022-08-28 12:36:31 +02:00
Matthias Alphart
a98f658854
Update xknx to 0.22.0 (#75749) 2022-07-26 10:32:26 +02:00
Marvin Wichmann
cec3a08b95
Cleanup KNX integration (#68820)
* Cleanup KNX integration

* Cleanup KNX integration

* Update homeassistant/components/knx/__init__.py

Co-authored-by: Matthias Alphart <farmio@alphart.net>

Co-authored-by: Matthias Alphart <farmio@alphart.net>
2022-03-29 16:46:02 +02:00
Matthias Alphart
d4370395e2
Update xknx to 0.19.1 (#65275) 2022-01-30 20:12:44 -08:00
Marvin Wichmann
62584b4813
Add tests for KNX diagnostic and expose (#64938)
* Add test for KNX diagnostic

* Add test for KNX expose

* Apply review suggestions
2022-01-27 23:03:20 +01:00
Matthias Alphart
29baad8848
Update xknx to 0.19.0 (#64379) 2022-01-18 21:38:13 +01:00
Mirko Lenz
ab4effc7e2
Allow sending GroupValueResponse telegrams with knx.send service (#62639)
* Add knx.respond service

* Combine knx.send and knx.respond services

* Rename knx attribute and fix tests

* Use parametrization in tests

Co-authored-by: Marvin Wichmann <marvin.wichmann@unic.com>
2021-12-29 18:15:48 +01:00
Marvin Wichmann
e5c33474e3
Add config and options flow to KNX integration (#59377) 2021-11-20 11:30:41 +01:00
Matthias Alphart
4d4d778598
Add tests for KNX light (#58912)
* test lights: simple, brightness, color_temp

* hs, xyy, rgb individual

* test rgb, rgbw
2021-11-04 22:43:38 +01:00
Marvin Wichmann
48d4cdf882
Update xknx to 0.18.11 and fix flaky test (#57877)
* Update xknx to 0.18.11

* review: join the queue before actually asserting
2021-10-17 09:43:18 +02:00
Marvin Wichmann
addb91d49e
Update xknx to version 0.18.10 (#57635)
Co-authored-by: Paulus Schoutsen <paulus@home-assistant.io>
2021-10-14 10:54:48 -07:00
Matthias Alphart
4e4bb2e5a8
Test KNX events (#53433)
* test knx_event

* use async_capture_events
2021-07-28 19:04:11 +02:00
Matthias Alphart
9f14b2cef5
Test KNX switch (#53289) 2021-07-21 15:04:14 -07:00
Matthias Alphart
e8d7952880
Refactor KNX tests (#53183)
* 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
2021-07-19 23:39:19 -05:00
mptei
1d28f485d3
Patch ip interface instead of XKNX in knx (#49064)
* knx: Deeper tests.

* Set rate_limit to 0; removed waiting for queue
2021-04-11 23:01:30 +02:00