diff --git a/homeassistant/components/siren/__init__.py b/homeassistant/components/siren/__init__.py index c9550574bb1..f571f87c93e 100644 --- a/homeassistant/components/siren/__init__.py +++ b/homeassistant/components/siren/__init__.py @@ -78,10 +78,13 @@ async def async_setup(hass: HomeAssistantType, config: ConfigType) -> bool: siren: SirenEntity, call: ServiceCall ) -> None: """Handle turning a siren on.""" + data = { + k: v + for k, v in call.data.items() + if k in (ATTR_TONE, ATTR_DURATION, ATTR_VOLUME_LEVEL) + } await siren.async_turn_on( - **filter_turn_on_params( - siren, cast(SirenTurnOnServiceParameters, dict(call.data)) - ) + **filter_turn_on_params(siren, cast(SirenTurnOnServiceParameters, data)) ) component.async_register_entity_service( diff --git a/tests/components/demo/test_siren.py b/tests/components/demo/test_siren.py index 74c39c668e9..117343d2958 100644 --- a/tests/components/demo/test_siren.py +++ b/tests/components/demo/test_siren.py @@ -105,4 +105,4 @@ async def test_turn_on_strip_attributes(hass): blocking=True, ) assert svc_call.called - assert svc_call.call_args_list[0] == call(**{ATTR_ENTITY_ID: [ENTITY_SIREN]}) + assert svc_call.call_args_list[0] == call()