Compare commits

...

2 Commits

Author SHA1 Message Date
farmio
9d979a1d7f review; mark disabled by default 2025-12-03 20:09:09 +01:00
farmio
0a1214256a Add counter for KNX DataSecure undecodable telegrams 2025-12-03 14:52:04 +01:00
4 changed files with 17 additions and 2 deletions

View File

@@ -21,6 +21,9 @@
"telegram_count": {
"default": "mdi:plus-network"
},
"telegrams_data_secure_undecodable": {
"default": "mdi:lock-alert"
},
"telegrams_incoming": {
"default": "mdi:upload-network"
},

View File

@@ -108,6 +108,12 @@ SYSTEM_ENTITY_DESCRIPTIONS = (
+ knx.xknx.connection_manager.cemi_count_incoming
+ knx.xknx.connection_manager.cemi_count_incoming_error,
),
KNXSystemEntityDescription(
key="telegrams_data_secure_undecodable",
entity_registry_enabled_default=False,
state_class=SensorStateClass.TOTAL_INCREASING,
value_fn=lambda knx: knx.xknx.connection_manager.undecoded_data_secure,
),
)

View File

@@ -639,6 +639,10 @@
"name": "Telegrams",
"unit_of_measurement": "telegrams"
},
"telegrams_data_secure_undecodable": {
"name": "Undecodable Data Secure telegrams",
"unit_of_measurement": "[%key:component::knx::entity::sensor::telegrams_incoming_error::unit_of_measurement%]"
},
"telegrams_incoming": {
"name": "Incoming telegrams",
"unit_of_measurement": "[%key:component::knx::entity::sensor::telegram_count::unit_of_measurement%]"

View File

@@ -36,6 +36,7 @@ async def test_diagnostic_entities(
"sensor.knx_interface_outgoing_telegrams",
"sensor.knx_interface_outgoing_telegram_errors",
"sensor.knx_interface_telegrams",
"sensor.knx_interface_undecodable_data_secure_telegrams",
):
entity = entity_registry.async_get(entity_id)
assert entity.entity_category is EntityCategory.DIAGNOSTIC
@@ -43,6 +44,7 @@ async def test_diagnostic_entities(
for entity_id in (
"sensor.knx_interface_incoming_telegrams",
"sensor.knx_interface_outgoing_telegrams",
"sensor.knx_interface_undecodable_data_secure_telegrams",
):
entity = entity_registry.async_get(entity_id)
assert entity.disabled is True
@@ -57,7 +59,7 @@ async def test_diagnostic_entities(
async_fire_time_changed(hass)
await hass.async_block_till_done()
assert len(events) == 3 # 5 polled sensors - 2 disabled
assert len(events) == 3 # 6 polled sensors - 3 disabled
events.clear()
for entity_id, test_state in (
@@ -74,7 +76,7 @@ async def test_diagnostic_entities(
state=XknxConnectionState.DISCONNECTED
)
await hass.async_block_till_done()
assert len(events) == 4 # 3 not always_available + 3 force_update - 2 disabled
assert len(events) == 4
events.clear()
knx.xknx.current_address = IndividualAddress("1.1.1")