From 272e65f56db7affe84958d679ff3288a5b148d1f Mon Sep 17 00:00:00 2001 From: "J. Nick Koston" Date: Wed, 18 May 2022 23:27:31 -0500 Subject: [PATCH] Fix device_ids being filtered when entities also specified in the logbook (#72122) --- homeassistant/components/logbook/__init__.py | 5 ++--- tests/components/logbook/test_init.py | 9 ++++++--- 2 files changed, 8 insertions(+), 6 deletions(-) diff --git a/homeassistant/components/logbook/__init__.py b/homeassistant/components/logbook/__init__.py index 806ba00d2c8..e2073800c25 100644 --- a/homeassistant/components/logbook/__init__.py +++ b/homeassistant/components/logbook/__init__.py @@ -59,7 +59,6 @@ from homeassistant.helpers.entityfilter import ( INCLUDE_EXCLUDE_BASE_FILTER_SCHEMA, EntityFilter, convert_include_exclude_filter, - generate_filter, ) from homeassistant.helpers.integration_platform import ( async_process_integration_platforms, @@ -579,8 +578,8 @@ def _get_events( ] = hass.data.get(DOMAIN, {}) format_time = _row_time_fired_timestamp if timestamp else _row_time_fired_isoformat entity_name_cache = EntityNameCache(hass) - if entity_ids is not None: - entities_filter = generate_filter([], entity_ids, [], []) + if entity_ids or device_ids: + entities_filter = None def yield_rows(query: Query) -> Generator[Row, None, None]: """Yield rows from the database.""" diff --git a/tests/components/logbook/test_init.py b/tests/components/logbook/test_init.py index 7657ebf2b83..a7420df9c5d 100644 --- a/tests/components/logbook/test_init.py +++ b/tests/components/logbook/test_init.py @@ -2546,10 +2546,13 @@ async def test_get_events_with_device_ids(hass, hass_ws_client, recorder_mock): assert response["id"] == 2 results = response["result"] - assert results[0]["entity_id"] == "light.kitchen" - assert results[0]["state"] == "on" + assert results[0]["domain"] == "test" + assert results[0]["message"] == "is on fire" + assert results[0]["name"] == "device name" assert results[1]["entity_id"] == "light.kitchen" - assert results[1]["state"] == "off" + assert results[1]["state"] == "on" + assert results[2]["entity_id"] == "light.kitchen" + assert results[2]["state"] == "off" await client.send_json( {