From eecfa68de6ad52695a2e520a0df45040eb7a1352 Mon Sep 17 00:00:00 2001 From: Matthias Alphart Date: Mon, 16 Feb 2026 09:26:22 +0100 Subject: [PATCH] Update xknx to 3.15.0 (#163111) --- homeassistant/components/knx/manifest.json | 2 +- homeassistant/components/knx/telegrams.py | 2 ++ requirements_all.txt | 2 +- requirements_test_all.txt | 2 +- tests/components/knx/test_telegrams.py | 2 ++ tests/components/knx/test_time_server.py | 6 +++--- 6 files changed, 10 insertions(+), 6 deletions(-) diff --git a/homeassistant/components/knx/manifest.json b/homeassistant/components/knx/manifest.json index 75bcf8b9704f..260f81303aab 100644 --- a/homeassistant/components/knx/manifest.json +++ b/homeassistant/components/knx/manifest.json @@ -11,7 +11,7 @@ "loggers": ["xknx", "xknxproject"], "quality_scale": "platinum", "requirements": [ - "xknx==3.14.0", + "xknx==3.15.0", "xknxproject==3.8.2", "knx-frontend==2026.2.13.222258" ], diff --git a/homeassistant/components/knx/telegrams.py b/homeassistant/components/knx/telegrams.py index 1f01c9c78feb..1aa75aa1141a 100644 --- a/homeassistant/components/knx/telegrams.py +++ b/homeassistant/components/knx/telegrams.py @@ -45,6 +45,7 @@ class TelegramDict(DecodedTelegramPayload): """Represent a Telegram as a dict.""" # this has to be in sync with the frontend implementation + data_secure: bool | None destination: str destination_name: str direction: str @@ -153,6 +154,7 @@ class Telegrams: value = _serializable_decoded_data(telegram.decoded_data.value) return TelegramDict( + data_secure=telegram.data_secure, destination=f"{telegram.destination_address}", destination_name=dst_name, direction=telegram.direction.value, diff --git a/requirements_all.txt b/requirements_all.txt index 0e25c3c3b19f..1060e35d3481 100644 --- a/requirements_all.txt +++ b/requirements_all.txt @@ -3258,7 +3258,7 @@ wyoming==1.7.2 xiaomi-ble==1.6.0 # homeassistant.components.knx -xknx==3.14.0 +xknx==3.15.0 # homeassistant.components.knx xknxproject==3.8.2 diff --git a/requirements_test_all.txt b/requirements_test_all.txt index 0baefc03ef8e..82f058eb3f4f 100644 --- a/requirements_test_all.txt +++ b/requirements_test_all.txt @@ -2737,7 +2737,7 @@ wyoming==1.7.2 xiaomi-ble==1.6.0 # homeassistant.components.knx -xknx==3.14.0 +xknx==3.15.0 # homeassistant.components.knx xknxproject==3.8.2 diff --git a/tests/components/knx/test_telegrams.py b/tests/components/knx/test_telegrams.py index 840959bb6c54..53ac85631663 100644 --- a/tests/components/knx/test_telegrams.py +++ b/tests/components/knx/test_telegrams.py @@ -18,6 +18,7 @@ from .conftest import KNXTestKit MOCK_TIMESTAMP = "2023-07-02T14:51:24.045162-07:00" MOCK_TELEGRAMS = [ { + "data_secure": None, # None since CEMIHandler is mocked away and doesn't set it to False "destination": "1/3/4", "destination_name": "", "direction": "Incoming", @@ -33,6 +34,7 @@ MOCK_TELEGRAMS = [ "value": None, }, { + "data_secure": None, "destination": "2/2/2", "destination_name": "", "direction": "Outgoing", diff --git a/tests/components/knx/test_time_server.py b/tests/components/knx/test_time_server.py index 4db361c1dd39..7898c5177169 100644 --- a/tests/components/knx/test_time_server.py +++ b/tests/components/knx/test_time_server.py @@ -111,9 +111,9 @@ async def test_time_server_load_from_config_store( {}, config_store_fixture="config_store_time_server.json" ) # Verify all three formats are written on startup - await knx.assert_write("1/1/1", RAW_TIME) - await knx.assert_write("2/2/2", RAW_DATE) - await knx.assert_write("3/3/3", RAW_DATETIME) + await knx.assert_write("1/1/1", RAW_TIME, ignore_order=True) + await knx.assert_write("2/2/2", RAW_DATE, ignore_order=True) + await knx.assert_write("3/3/3", RAW_DATETIME, ignore_order=True) client = await hass_ws_client(hass) # Verify configuration was loaded