554 Commits

Author SHA1 Message Date
Alexander Knöbel
f01231277b
Add humidity to KNX climate (#128844) 2024-10-20 22:17:00 +02:00
G Johansson
2b2820018c
Remove legacy knx notify service (#128185) 2024-10-11 20:19:15 +02:00
Matthias Alphart
964d87ae10
Update xknxproject to 3.8.1 (#128057) 2024-10-11 12:50:15 +02:00
Matthias Alphart
36a0c1b514
Update xknxproject to 3.8.0 (#127072) 2024-09-30 10:18:46 +02:00
Marc Mueller
c1b24e6ba2
Small typing improvements (#126818)
* Add from __future__ import annotations

* Use PEP 695 type aliases

* Fix generator typing
2024-09-26 13:51:27 +02:00
Doron Somech
d2d3ab2d98
Add fan support for KNX climate entities (#126368)
* Add fan mode support to knx climate

* fix linting errors

* remove unneeded None protection from CONF_FAN_PERCENTAGES_MODES

* Update homeassistant/components/knx/climate.py

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

* Update homeassistant/components/knx/climate.py

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

* Update homeassistant/components/knx/climate.py

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

* Update homeassistant/components/knx/schema.py

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

* find closest percentage when not in fan modes

* new field for fan speed mode, max steps apply to both step and percentage

* not picking FAN_OFF when the percentage is closest to zero

* add fan zero mode to support auto mode

* use StrEnum for FanZeroMode

* change default to 'percent'

* fix mypy errors

---------

Co-authored-by: Matthias Alphart <farmio@alphart.net>
2024-09-24 21:38:09 +02:00
Matthias Alphart
450b682c5c
Update xknx to 3.2.0 (#126569) 2024-09-24 08:45:19 +02:00
Matthias Alphart
87240bb96f
Fix loading KNX UI entities with entity category set (#126290)
* Fix loading KNX UI entities with entity category set

* add test

* docstring fixes

* telegram order

* Optionally ignore telegram sending order in tests

because we can't know which platform initialises first
2024-09-20 11:16:58 +02:00
epenet
a3155b2ad7
Move knx base entity to separate module (#126102)
* Move knx base entity to separate module

* one more
2024-09-17 10:15:26 +02:00
epenet
6ef1dd56f5
Use root import for device_automation (#125836) 2024-09-12 17:01:25 +02:00
Matthias Alphart
eb5390b94d
Update knx-frontend to 2024.9.10.221729 (#125734) 2024-09-11 12:23:23 +02:00
Matthias Alphart
713689491b
Remove KNX yaml config from hass.data (#124050)
* Remove KNX yaml config from `hass.data`

* Use HassKey
2024-09-09 09:01:21 +02:00
Matthias Alphart
9da3f98c23
Update knx-frontend to 2024.9.4.64538 (#125196) 2024-09-04 11:00:02 +02:00
Matthias Alphart
1650cee16c
Check KNX integration is loaded on websocket calls (#123178) 2024-08-28 18:10:38 +02:00
Erik Montnemery
cffa8b4feb
Update icons.json to new service schema part 2 (#124769) 2024-08-28 13:47:41 +02:00
Matthias Alphart
633ff0ea42
Handle KNX expose conversion exceptions and unavailable states (#124776) 2024-08-28 13:14:34 +02:00
Matthias Alphart
8504a16e83
Use KNX group address format from project (#124084) 2024-08-28 12:34:28 +02:00
Matthias Alphart
41e66edd14
Set default name for KNX outgoing telegram source (#124439) 2024-08-28 12:31:30 +02:00
Matthias Alphart
c2ce71a38c
Update xknx to 3.1.1 (#124257) 2024-08-24 06:48:02 +02:00
Matthias Alphart
ea52acd7bd
Fix loading KNX integration actions when not using YAML (#124027)
* Fix loading KNX integration services when not using YAML

* remove unnecessary comment

* Remove unreachable test
2024-08-16 13:43:02 +02:00
Erik Montnemery
629b919707
Remove unnecessary assignment of Template.hass from knx (#123977) 2024-08-15 10:56:04 +02:00
Matthias Alphart
d6d016e029
Fix KNX UI Light color temperature DPT (#123778) 2024-08-15 10:52:55 +02:00
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
b3d1d79a49
Update xknx to 3.1.0 and fix climate read only mode (#123776) 2024-08-13 13:28:37 +02:00
epenet
0bb8c4832d
Enable raise-within-try (TRY301) rule in ruff (#123351) 2024-08-12 09:16:33 +02:00
Matthias Alphart
e1336a1975
Update knx-frontend to 2024.8.9.225351 (#123557) 2024-08-12 08:55:24 +02:00
Matthias Alphart
7ec0b8b331
Update knx-frontend to 2024.8.6.211307 (#123261) 2024-08-07 09:12:20 +02:00
Matthias Alphart
86d8c3b31a
Update knx-frontend to 2024.8.6.85349 (#123226) 2024-08-06 11:51:04 +02:00
Matthias Alphart
f2d99cb059
Use KNX UI entity platform controller class (#123128) 2024-08-05 12:34:48 +02:00
Matthias Alphart
42234e6a09
Address post-merge reviews for KNX integration (#123038) 2024-08-02 12:53:39 +02:00
Matthias Alphart
4da385898b
Mitigate breaking change for KNX climate schema (#123043) 2024-08-02 08:50:19 +02:00
Matthias Alphart
67ed8b207a
KNX: use xknx 3.0.0 eager telegram decoding (#122896)
* Use KNX xknx 3.0.0 eager telegram decoding

* review suggestion
2024-07-31 11:08:05 +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
956cc6a85c
Add UI to create KNX switch and light entities (#122630)
Update KNX frontend to 2024.7.25.204106
2024-07-30 13:54:44 +02:00
Matthias Alphart
d7b0d1a50e
Use dispatcher for KNX GroupMonitor instead of custom HassJob (#122384) 2024-07-23 17:47:45 +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
G Johansson
ca4c617d4b
Add TURN_OFF/TURN_ON feature flags for fan (#121447) 2024-07-19 11:35:24 +02:00
Marc Mueller
ca55986057
Import Generator from collections.abc (1) (#120914) 2024-07-01 11:51:51 +02:00
Marc Mueller
49df0c4366
Improve schema typing (2) (#120475) 2024-06-26 02:25:30 +02:00
Marc Mueller
bcd1243686
Use VolDictType to improve schema typing (#120417) 2024-06-25 15:15:59 +02:00
Marc Mueller
be6dfc7a70
Typing improvements (#120297) 2024-06-24 11:07:22 +02:00
J. Nick Koston
faa55de538
Fix blocking I/O in the event loop when registering static paths (#119629) 2024-06-18 08:18:31 +02:00
Matthias Alphart
c8e9a3a8f4
Device automation extra fields translation for KNX (#119518) 2024-06-15 11:31:10 +02:00
epenet
960d1289ef
Avoid references to websocket_api.const in core and other components (#119285) 2024-06-10 13:49:44 +02:00
Matthias Alphart
fff5715a06
Require KNX boolean service descriptor selectors (#118597) 2024-06-08 11:09:52 +02:00
Matthias Alphart
a7429e5f50
Fix KNX climate.set_hvac_mode not turning on (#119012) 2024-06-06 22:40:04 +02:00
Marc Mueller
fe21e2b8ba
Import Generator from typing_extensions (1) (#118986) 2024-06-06 17:02:13 +02:00
Jan Bouwhuis
066cd6dbef
Improve repair issue when notify service is still being used (#118855)
Co-authored-by: Joost Lekkerkerker <joostlek@outlook.com>
Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
2024-06-05 15:41:22 +02:00
J. Nick Koston
ed0568c655
Ensure config entries are not unloaded while their platforms are setting up (#118767)
* Report non-awaited/non-locked config entry platform forwards

Its currently possible for config entries to be reloaded while their platforms
are being forwarded if platform forwards are not awaited or done after the
config entry is setup since the lock will not be held in this case.

In https://developers.home-assistant.io/blog/2022/07/08/config_entry_forwards
we advised to await platform forwards to ensure this does not happen, however
for sleeping devices and late discovered devices, platform forwards may happen
later.

If config platform forwards are happening during setup, they should be awaited

If config entry platform forwards are not happening during setup, instead
async_late_forward_entry_setups should be used which will hold the lock to
prevent the config entry from being unloaded while its platforms are being
setup

* Report non-awaited/non-locked config entry platform forwards

Its currently possible for config entries to be reloaded while their platforms
are being forwarded if platform forwards are not awaited or done after the
config entry is setup since the lock will not be held in this case.

In https://developers.home-assistant.io/blog/2022/07/08/config_entry_forwards
we advised to await platform forwards to ensure this does not happen, however
for sleeping devices and late discovered devices, platform forwards may happen
later.

If config platform forwards are happening during setup, they should be awaited

If config entry platform forwards are not happening during setup, instead
async_late_forward_entry_setups should be used which will hold the lock to
prevent the config entry from being unloaded while its platforms are being
setup

* run with error on to find them

* cert_exp, hold lock

* cert_exp, hold lock

* shelly async_late_forward_entry_setups

* compact

* compact

* found another

* patch up mobileapp

* patch up hue tests

* patch up smartthings

* fix mqtt

* fix esphome

* zwave_js

* mqtt

* rework

* fixes

* fix mocking

* fix mocking

* do not call async_forward_entry_setup directly

* docstrings

* docstrings

* docstrings

* add comments

* doc strings

* fixed all in core, turn off strict

* coverage

* coverage

* missing

* coverage
2024-06-04 21:34:39 -04:00