diff --git a/homeassistant/components/matter/select.py b/homeassistant/components/matter/select.py index b46cad53123..2e9c44a8f8a 100644 --- a/homeassistant/components/matter/select.py +++ b/homeassistant/components/matter/select.py @@ -229,18 +229,18 @@ DISCOVERY_SCHEMAS = [ entity_category=EntityCategory.CONFIG, translation_key="startup_on_off", options=["On", "Off", "Toggle", "Previous"], - measurement_to_ha=lambda x: { # pylint: disable=unnecessary-lambda + measurement_to_ha={ 0: "Off", 1: "On", 2: "Toggle", None: "Previous", - }.get(x), - ha_to_native_value=lambda x: { + }.get, + ha_to_native_value={ "Off": 0, "On": 1, "Toggle": 2, "Previous": None, - }[x], + }.get, ), entity_class=MatterSelectEntity, required_attributes=(clusters.OnOff.Attributes.StartUpOnOff,), diff --git a/tests/components/matter/test_select.py b/tests/components/matter/test_select.py index f84e5870392..e380e5d5925 100644 --- a/tests/components/matter/test_select.py +++ b/tests/components/matter/test_select.py @@ -97,3 +97,8 @@ async def test_attribute_select_entities( await trigger_subscription_callback(hass, matter_client) state = hass.states.get(entity_id) assert state.state == "On" + # test that an invalid value (e.g. 255) leads to an unknown state + set_node_attribute(light_node, 1, 6, 16387, 255) + await trigger_subscription_callback(hass, matter_client) + state = hass.states.get(entity_id) + assert state.state == "unknown"