diff --git a/homeassistant/components/lutron_caseta/device_trigger.py b/homeassistant/components/lutron_caseta/device_trigger.py index b355c3dcc3f..b9fe89edf7f 100644 --- a/homeassistant/components/lutron_caseta/device_trigger.py +++ b/homeassistant/components/lutron_caseta/device_trigger.py @@ -405,7 +405,8 @@ async def async_get_triggers( triggers = [] if not (device := get_button_device_by_dr_id(hass, device_id)): - raise InvalidDeviceAutomationConfig(f"Device not found: {device_id}") + # Check if device is a valid button device. Return empty if not. + return [] valid_buttons = DEVICE_TYPE_SUBTYPE_MAP_TO_LEAP.get( _lutron_model_to_device_type(device["model"], device["type"]), {} diff --git a/tests/components/lutron_caseta/test_device_trigger.py b/tests/components/lutron_caseta/test_device_trigger.py index b8c655a23bd..161f5cf357f 100644 --- a/tests/components/lutron_caseta/test_device_trigger.py +++ b/tests/components/lutron_caseta/test_device_trigger.py @@ -5,9 +5,6 @@ import pytest from homeassistant.components import automation from homeassistant.components.device_automation import DeviceAutomationType -from homeassistant.components.device_automation.exceptions import ( - InvalidDeviceAutomationConfig, -) from homeassistant.components.lutron_caseta import ( ATTR_ACTION, ATTR_AREA_NAME, @@ -140,6 +137,7 @@ async def test_get_triggers(hass, device_reg): triggers = await async_get_device_automations( hass, DeviceAutomationType.TRIGGER, device_id ) + assert_lists_same(triggers, expected_triggers) @@ -152,10 +150,27 @@ async def test_get_triggers_for_invalid_device_id(hass, device_reg): connections={(device_registry.CONNECTION_NETWORK_MAC, "12:34:56:AB:CD:EF")}, ) - with pytest.raises(InvalidDeviceAutomationConfig): - await async_get_device_automations( - hass, DeviceAutomationType.TRIGGER, invalid_device.id - ) + triggers = await async_get_device_automations( + hass, DeviceAutomationType.TRIGGER, invalid_device.id + ) + + assert triggers == [] + + +async def test_get_triggers_for_non_button_device(hass, device_reg): + """Test error raised for invalid lutron device_id.""" + config_entry_id = await _async_setup_lutron_with_picos(hass, device_reg) + + invalid_device = device_reg.async_get_or_create( + config_entry_id=config_entry_id, + identifiers={(DOMAIN, "invdevserial")}, + ) + + triggers = await async_get_device_automations( + hass, DeviceAutomationType.TRIGGER, invalid_device.id + ) + + assert triggers == [] async def test_if_fires_on_button_event(hass, calls, device_reg):