Commit graph

52 commits

Author SHA1 Message Date
Matthias Alphart
b042ebe4ff
Rename KNX Climate preset modes according to specification (#123964)
* Rename KNX Climate preset modes according to specification

* change icon for "standby"
2024-08-15 08:37:10 +02:00
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
Matthias Alphart
622d1e4c50
Add data point type option to knx.telegram trigger (#117463)
* Add data point type (dpt) option to `knx.telegram` trigger

* Rename from `dpt` to `type` to match services

* Add test for GroupValueRead telegrams

* Fix device trigger schema inheritance

* Typesafe dispatcher signal

* readability

* Avoid re-decoding with same transcoder
2024-05-22 00:03:54 +02:00
Marc Mueller
87bb7ced79
Use PEP 695 for simple type aliases (#117633) 2024-05-17 14:42:21 +02:00
Marc Mueller
59a6035d3f
Add empty line after module docstring [j-m] (#112700) 2024-03-08 09:01:29 -05:00
Matthias Alphart
f53109f513
Move KNX service registration to async_setup (#106635) 2024-01-07 23:26:46 +01:00
Matthias Alphart
a9b51f0255
Fix KNX telegram device trigger not firing after integration reload (#107388) 2024-01-07 20:32:17 +01:00
Joost Lekkerkerker
a82410d5e9
Deduplicate constants E-Z (#105657) 2023-12-13 17:05:37 +01:00
Matthias Alphart
74deb8b011
Add datetime platform to KNX (#97190) 2023-07-25 11:04:05 +02:00
Matthias Alphart
8ff9f2ddbe
Add date platform to KNX (#97154) 2023-07-24 21:12:37 +02:00
Matthias Alphart
89259865fb
Restore KNX telegram history (#95800)
* Restore KNX telegram history

* increase default log size

* test removal of telegram history
2023-07-09 21:15:55 +02:00
Matthias Alphart
489781c1e6
Add time platform to KNX (#95302) 2023-06-28 15:19:32 +02:00
Matthias Alphart
f4756fe1f9
Update xknx to 2.11.0: Add support for Light DPT 9 color temperature (#95213)
Update xknx to 2.11.0
2023-06-25 21:05:35 -04:00
Matthias Alphart
2ce23c17ca
Update KNX frontend - add Group monitor telegram detail view (#95144)
* Use TelegramDict for WS communication

* Update knx_frontend
2023-06-25 14:58:08 +02:00
Matthias Alphart
b10e73e2d4
Configurable KNX Telegram history size (#93248)
* Configurable KNX Telegram history size

* Add maximum value to description
2023-05-22 18:09:59 +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
6a0ea09f29
Upload KNX Keyfile from Config/Options Flow directly (#88097)
* Manage KNX Keyfile from UI

* migrate config entry to use new keyfile

* Revert "migrate config entry to use new keyfile"

use same config style as before instead of entry version migration

* clean up uploaded file when integration is removed

* change default filename

* revert to previous step name

* remove empty directory on unload
2023-02-20 14:48:56 +01:00
Matthias Alphart
0561c14d53
Add text platform for KNX (#82811) 2022-11-29 18:05:51 +01:00
Matthias Alphart
e738df502b
Fix KNX secure config switching from manual to keyfile (#82724) 2022-11-28 10:18:45 +01:00
Matthias Alphart
4517af509c
Add support for KNX IP-Secure routing (#82765)
* always use instance variable for new entry data

- change `self._tunneling_config` to non-optional `self.new_entry_data`
- always use self.new_entry_data in `finish_flow()`

* support secure routing

* amend current tests

* use sync latency tolerance

* test secure routing config flow

* diagnostics redact backbone_key

* test xknx library setup

* check length of backbone_key

* better readable key validation
2022-11-27 23:33:12 +01:00
Matthias Alphart
daf56e92a0
Update xknx to 2.0.0 (#82709) 2022-11-26 06:49:11 +01:00
epenet
ec532414ba
Import climate constants from root [a-l] (#78177) 2022-09-10 23:39:52 +02:00
epenet
069dd567f7
Use climate enums in knx (#70676) 2022-04-25 14:57:31 +02:00
Matthias Alphart
b3d1574a71
Refactor KNX config flow and validate user input (#69698)
* validate config flow user input

* test flow for invalid user input

* validate multicast address blocks

* Update homeassistant/components/knx/config_flow.py

Co-authored-by: Marvin Wichmann <me@marvin-wichmann.de>

Co-authored-by: Marvin Wichmann <me@marvin-wichmann.de>
2022-04-10 15:56:45 +02:00
Marvin Wichmann
9b05a1264a
Add support for IP secure to KNX config flow (#68906)
* Add support for TCP Secure in KNX config flow

* Add support for TCP Secure in KNX config flow

* Fix typing

* Fix import

* Move assert up to cover all possible cases
2022-03-30 21:10:47 +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
Marvin Wichmann
072f7d5611
Add support for TCP tunneling connections to KNX (#64928) 2022-01-26 06:36:07 +01:00
Marvin Wichmann
66b8f87e43
Fix notify platform setup for KNX (#61842)
* Fix notify platform setup for KNX

* Apply review suggestions

* Store hass config in DATA_HASS_CONFIG

* Readd guard clause
2021-12-15 19:30:38 +01:00
Marvin Wichmann
3baa7b679d
Use new Platform enum in KNX (#60902) 2021-12-03 09:29:38 -08:00
Marvin Wichmann
e5c33474e3
Add config and options flow to KNX integration (#59377) 2021-11-20 11:30:41 +01:00
Matthias Alphart
00b1c2bb70
Fix KNX climate entities hvac action without controller_mode (#59522)
* fix hvac action for climate entities without controller_mode

* Update homeassistant/components/knx/climate.py

Co-authored-by: Marvin Wichmann <marvin@fam-wichmann.de>

Co-authored-by: Marvin Wichmann <marvin@fam-wichmann.de>
2021-11-11 19:39:57 +01:00
Matthias Alphart
4e1958c1bd
Add Button platform to KNX integration (#59082)
* add button platform

* default values for payload and payload_length

* allow `type` configuration for encoded payloads

* add test for type configuration

* move common constants to const.py

- CONF_PAYLOAD
- CONF_PAYLOAD_LENGTH

* validate payload for payload_length or type

* c&p errors

* fix unique_id and pylint

* fix validator
2021-11-10 20:34:35 +01:00
Matthias Alphart
968e582468
Remove last_knx_update extra_state_attribute from KNX BinarySensor and Sensor (#58786) 2021-10-31 12:58:17 +01:00
Matthias Alphart
5687ced7b3
Cleanup KNX integration (#52168)
Co-authored-by: Franck Nijhof <frenck@frenck.nl>
2021-06-26 14:30:36 +02:00
Matthias Alphart
74db49fae4
Add KNX select entity (#52026)
* select entity for knx

* validate select options

* lint

* phytonify

* Tweak

Co-authored-by: Franck Nijhof <frenck@frenck.nl>
2021-06-24 10:54:04 +02:00
Matthias Alphart
742159a6a6
Add number entity to KNX (#51786)
Co-authored-by: Franck Nijhof <frenck@frenck.nl>
2021-06-23 17:20:49 +02:00
Matthias Alphart
b08f473da4
Add current hvac_action to KNX climate (#51464) 2021-06-15 17:51:16 +02:00
Matthias Alphart
164e45f0a7
KNX: move some Schema to schema.py (#51307)
* create platform schema node from schema class

* move connection schema to schema.py

* rename SCHEMA to ENTITY_SCHEMA

* Final module level constants
2021-06-01 08:59:23 +02:00
Marvin Wichmann
21744790d3
Add KNX source address to Sensor and BinarySensor (#48857)
* Add source address to Sensor and BinarySensor

* Fix typing

* Review: Always use UTC time in state attributes

* Review: Add missing UTC conversion in sensor
2021-04-10 18:12:43 +02:00
Ville Skyttä
dc880118a4
Lint suppression cleanups (#47248)
* Unused pylint suppression cleanups

* Remove outdated pylint bug references

* Add flake8-noqa config and note to run it every now and then

* Add codes to noqa's

* Unused noqa cleanups
2021-03-02 09:02:04 +01:00
Matthias Alphart
3fda9fd0c6
KNX address constant (#47196) 2021-03-01 21:59:36 +01:00
Marc Mueller
16dcbf1467
Update pylint (#47205) 2021-02-28 22:09:01 -10:00
Matthias Alphart
d02b27a5d0
Update xknx to 0.17.1 (#46974) 2021-02-23 16:26:17 -08:00
Martin
175f2f0275
Add fan platform to knx (#46161) 2021-02-09 22:09:34 -10:00
Marvin Wichmann
899fc3d35a
Update xknx to 0.15.3 (#42026)
Co-authored-by: Paulus Schoutsen <paulus@home-assistant.io>
2020-11-13 09:37:45 +01:00
Marvin Wichmann
3d6434be75
Use centralized KnxEntity for all KNX platforms (#40381) 2020-09-21 18:08:35 +02:00
Marvin Wichmann
45288431f9
Update xknx to 0.14.2 (#40304)
* Updates xknx to 0.14.0

* Review: Explicity add state attributes to weather device

* Review: Remove state attributes from weather device

* Review: Add `counter` as a state attribute to binary_sensors
2020-09-20 23:40:36 +02:00
Marvin Wichmann
bba8b8e759
Add support for a dedicated weather station within KNX (#39476)
* Adds support for a dedicated weather station within KNX

* Review

* Change config values to comply with the naming of the other platforms
2020-08-31 11:38:52 +02:00