From f25526076ab97ffa6a31d481b3d0bf399d6b6b3b Mon Sep 17 00:00:00 2001 From: jbouwh Date: Wed, 26 Aug 2026 14:27:34 +0000 Subject: [PATCH] Use device class selector for KNX --- .../knx/storage/entity_store_schema.py | 10 +-- homeassistant/components/knx/strings.json | 63 ------------------ .../knx/snapshots/test_websocket.ambr | 66 +------------------ 3 files changed, 4 insertions(+), 135 deletions(-) diff --git a/homeassistant/components/knx/storage/entity_store_schema.py b/homeassistant/components/knx/storage/entity_store_schema.py index 23abcc612e9b8a..f5534358ac313f 100644 --- a/homeassistant/components/knx/storage/entity_store_schema.py +++ b/homeassistant/components/knx/storage/entity_store_schema.py @@ -10,7 +10,6 @@ from homeassistant.components.climate import HVACMode from homeassistant.components.number import ( DEVICE_CLASS_UNITS as NUMBER_DEVICE_CLASS_UNITS, - NumberDeviceClass, NumberMode, ) from homeassistant.components.sensor import ( @@ -575,13 +574,8 @@ def _number_limit_sub_validator(config: dict) -> dict: custom_value=True, ), ), - probatio.Optional(CONF_DEVICE_CLASS): selector.SelectSelector( - selector.SelectSelectorConfig( - options=[cls.value for cls in NumberDeviceClass], - # should align with sensor - translation_key="component.knx.selector.sensor_device_class", - sort=True, - ) + probatio.Optional(CONF_DEVICE_CLASS): selector.DeviceClassSelector( + selector.DeviceClassSelectorConfig(domain=Platform.NUMBER) ), probatio.Optional(CONF_SYNC_STATE, default=True): SyncStateSelector(), }, diff --git a/homeassistant/components/knx/strings.json b/homeassistant/components/knx/strings.json index eb7b6b24733183..1d94dd7c7250c0 100644 --- a/homeassistant/components/knx/strings.json +++ b/homeassistant/components/knx/strings.json @@ -1382,69 +1382,6 @@ } }, "selector": { - "sensor_device_class": { - "options": { - "absolute_humidity": "[%key:component::sensor::entity_component::absolute_humidity::name%]", - "apparent_power": "[%key:component::sensor::entity_component::apparent_power::name%]", - "aqi": "[%key:component::sensor::entity_component::aqi::name%]", - "area": "[%key:component::sensor::entity_component::area::name%]", - "atmospheric_pressure": "[%key:component::sensor::entity_component::atmospheric_pressure::name%]", - "battery": "[%key:component::sensor::entity_component::battery::name%]", - "blood_glucose_concentration": "[%key:component::sensor::entity_component::blood_glucose_concentration::name%]", - "carbon_dioxide": "[%key:component::sensor::entity_component::carbon_dioxide::name%]", - "carbon_monoxide": "[%key:component::sensor::entity_component::carbon_monoxide::name%]", - "conductivity": "[%key:component::sensor::entity_component::conductivity::name%]", - "current": "[%key:component::sensor::entity_component::current::name%]", - "data_rate": "[%key:component::sensor::entity_component::data_rate::name%]", - "data_size": "[%key:component::sensor::entity_component::data_size::name%]", - "date": "[%key:component::sensor::entity_component::date::name%]", - "distance": "[%key:component::sensor::entity_component::distance::name%]", - "duration": "[%key:component::sensor::entity_component::duration::name%]", - "energy": "[%key:component::sensor::entity_component::energy::name%]", - "energy_distance": "[%key:component::sensor::entity_component::energy_distance::name%]", - "energy_storage": "[%key:component::sensor::entity_component::energy_storage::name%]", - "frequency": "[%key:component::sensor::entity_component::frequency::name%]", - "gas": "[%key:component::sensor::entity_component::gas::name%]", - "humidity": "[%key:component::sensor::entity_component::humidity::name%]", - "illuminance": "[%key:component::sensor::entity_component::illuminance::name%]", - "irradiance": "[%key:component::sensor::entity_component::irradiance::name%]", - "moisture": "[%key:component::sensor::entity_component::moisture::name%]", - "monetary": "[%key:component::sensor::entity_component::monetary::name%]", - "nitrogen_dioxide": "[%key:component::sensor::entity_component::nitrogen_dioxide::name%]", - "nitrogen_monoxide": "[%key:component::sensor::entity_component::nitrogen_monoxide::name%]", - "nitrous_oxide": "[%key:component::sensor::entity_component::nitrous_oxide::name%]", - "ozone": "[%key:component::sensor::entity_component::ozone::name%]", - "ph": "[%key:component::sensor::entity_component::ph::name%]", - "pm1": "[%key:component::sensor::entity_component::pm1::name%]", - "pm10": "[%key:component::sensor::entity_component::pm10::name%]", - "pm25": "[%key:component::sensor::entity_component::pm25::name%]", - "pm4": "[%key:component::sensor::entity_component::pm4::name%]", - "power": "[%key:component::sensor::entity_component::power::name%]", - "power_factor": "[%key:component::sensor::entity_component::power_factor::name%]", - "precipitation": "[%key:component::sensor::entity_component::precipitation::name%]", - "precipitation_intensity": "[%key:component::sensor::entity_component::precipitation_intensity::name%]", - "pressure": "[%key:component::sensor::entity_component::pressure::name%]", - "reactive_energy": "[%key:component::sensor::entity_component::reactive_energy::name%]", - "reactive_power": "[%key:component::sensor::entity_component::reactive_power::name%]", - "signal_strength": "[%key:component::sensor::entity_component::signal_strength::name%]", - "sound_pressure": "[%key:component::sensor::entity_component::sound_pressure::name%]", - "speed": "[%key:component::sensor::entity_component::speed::name%]", - "sulphur_dioxide": "[%key:component::sensor::entity_component::sulphur_dioxide::name%]", - "temperature": "[%key:component::sensor::entity_component::temperature::name%]", - "temperature_delta": "[%key:component::sensor::entity_component::temperature_delta::name%]", - "timestamp": "[%key:component::sensor::entity_component::timestamp::name%]", - "volatile_organic_compounds": "[%key:component::sensor::entity_component::volatile_organic_compounds::name%]", - "volatile_organic_compounds_parts": "[%key:component::sensor::entity_component::volatile_organic_compounds_parts::name%]", - "voltage": "[%key:component::sensor::entity_component::voltage::name%]", - "volume": "[%key:component::sensor::entity_component::volume::name%]", - "volume_flow_rate": "[%key:component::sensor::entity_component::volume_flow_rate::name%]", - "volume_storage": "[%key:component::sensor::entity_component::volume_storage::name%]", - "water": "[%key:component::sensor::entity_component::water::name%]", - "weight": "[%key:component::sensor::entity_component::weight::name%]", - "wind_direction": "[%key:component::sensor::entity_component::wind_direction::name%]", - "wind_speed": "[%key:component::sensor::entity_component::wind_speed::name%]" - } - }, "sensor_state_class": { "options": { "measurement": "[%key:component::sensor::entity_component::_::state_attributes::state_class::state::measurement%]", diff --git a/tests/components/knx/snapshots/test_websocket.ambr b/tests/components/knx/snapshots/test_websocket.ambr index c4a5c4ff882924..c84770e4521be6 100644 --- a/tests/components/knx/snapshots/test_websocket.ambr +++ b/tests/components/knx/snapshots/test_websocket.ambr @@ -1963,71 +1963,9 @@ 'optional': True, 'required': False, 'selector': dict({ - 'select': dict({ - 'custom_value': False, + 'device_class': dict({ + 'domain': 'number', 'multiple': False, - 'options': list([ - 'absolute_humidity', - 'apparent_power', - 'aqi', - 'area', - 'atmospheric_pressure', - 'battery', - 'blood_glucose_concentration', - 'carbon_monoxide', - 'carbon_dioxide', - 'conductivity', - 'current', - 'data_rate', - 'data_size', - 'distance', - 'duration', - 'energy', - 'energy_distance', - 'energy_storage', - 'frequency', - 'gas', - 'humidity', - 'illuminance', - 'irradiance', - 'moisture', - 'monetary', - 'nitrogen_dioxide', - 'nitrogen_monoxide', - 'nitrous_oxide', - 'ozone', - 'ph', - 'pm1', - 'pm10', - 'pm25', - 'pm4', - 'power_factor', - 'power', - 'precipitation', - 'precipitation_intensity', - 'pressure', - 'radon', - 'reactive_energy', - 'reactive_power', - 'signal_strength', - 'sound_pressure', - 'speed', - 'sulphur_dioxide', - 'temperature', - 'temperature_delta', - 'volatile_organic_compounds', - 'volatile_organic_compounds_parts', - 'voltage', - 'volume', - 'volume_storage', - 'volume_flow_rate', - 'water', - 'weight', - 'wind_direction', - 'wind_speed', - ]), - 'sort': True, - 'translation_key': 'component.knx.selector.sensor_device_class', }), }), 'type': 'ha_selector',