Prevent live logbook from sending state changed events when we only want device ids (#72780)

pull/72784/head
J. Nick Koston 2022-05-31 10:08:04 -10:00 committed by GitHub
parent 7854aaa746
commit 35ee4ad55b
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 8 additions and 0 deletions

View File

@ -132,6 +132,12 @@ def async_subscribe_events(
if not _is_state_filtered(ent_reg, state):
target(event)
if device_ids and not entity_ids:
# No entities to subscribe to but we are filtering
# on device ids so we do not want to get any state
# changed events
return
if entity_ids:
subscriptions.append(
async_track_state_change_event(

View File

@ -1743,6 +1743,8 @@ async def test_subscribe_unsubscribe_logbook_stream_device(
assert msg["type"] == "event"
assert msg["event"]["events"] == []
hass.states.async_set("binary_sensor.should_not_appear", STATE_ON)
hass.states.async_set("binary_sensor.should_not_appear", STATE_OFF)
hass.bus.async_fire("mock_event", {"device_id": device.id})
await hass.async_block_till_done()