Fix logbook domain filter - alexa, homekit (#18790)
parent
ff33d34b81
commit
f1c5e756ff
|
@ -445,6 +445,12 @@ def _exclude_events(events, entities_filter):
|
||||||
domain = event.data.get(ATTR_DOMAIN)
|
domain = event.data.get(ATTR_DOMAIN)
|
||||||
entity_id = event.data.get(ATTR_ENTITY_ID)
|
entity_id = event.data.get(ATTR_ENTITY_ID)
|
||||||
|
|
||||||
|
elif event.event_type == EVENT_ALEXA_SMART_HOME:
|
||||||
|
domain = 'alexa'
|
||||||
|
|
||||||
|
elif event.event_type == EVENT_HOMEKIT_CHANGED:
|
||||||
|
domain = DOMAIN_HOMEKIT
|
||||||
|
|
||||||
if not entity_id and domain:
|
if not entity_id and domain:
|
||||||
entity_id = "%s." % (domain, )
|
entity_id = "%s." % (domain, )
|
||||||
|
|
||||||
|
|
|
@ -242,9 +242,11 @@ class TestComponentLogbook(unittest.TestCase):
|
||||||
config = logbook.CONFIG_SCHEMA({
|
config = logbook.CONFIG_SCHEMA({
|
||||||
ha.DOMAIN: {},
|
ha.DOMAIN: {},
|
||||||
logbook.DOMAIN: {logbook.CONF_EXCLUDE: {
|
logbook.DOMAIN: {logbook.CONF_EXCLUDE: {
|
||||||
logbook.CONF_DOMAINS: ['switch', ]}}})
|
logbook.CONF_DOMAINS: ['switch', 'alexa', DOMAIN_HOMEKIT]}}})
|
||||||
events = logbook._exclude_events(
|
events = logbook._exclude_events(
|
||||||
(ha.Event(EVENT_HOMEASSISTANT_START), eventA, eventB),
|
(ha.Event(EVENT_HOMEASSISTANT_START),
|
||||||
|
ha.Event(EVENT_ALEXA_SMART_HOME),
|
||||||
|
ha.Event(EVENT_HOMEKIT_CHANGED), eventA, eventB),
|
||||||
logbook._generate_filter_from_config(config[logbook.DOMAIN]))
|
logbook._generate_filter_from_config(config[logbook.DOMAIN]))
|
||||||
entries = list(logbook.humanify(self.hass, events))
|
entries = list(logbook.humanify(self.hass, events))
|
||||||
|
|
||||||
|
@ -325,22 +327,35 @@ class TestComponentLogbook(unittest.TestCase):
|
||||||
pointA = dt_util.utcnow()
|
pointA = dt_util.utcnow()
|
||||||
pointB = pointA + timedelta(minutes=logbook.GROUP_BY_MINUTES)
|
pointB = pointA + timedelta(minutes=logbook.GROUP_BY_MINUTES)
|
||||||
|
|
||||||
|
event_alexa = ha.Event(EVENT_ALEXA_SMART_HOME, {'request': {
|
||||||
|
'namespace': 'Alexa.Discovery',
|
||||||
|
'name': 'Discover',
|
||||||
|
}})
|
||||||
|
event_homekit = ha.Event(EVENT_HOMEKIT_CHANGED, {
|
||||||
|
ATTR_ENTITY_ID: 'lock.front_door',
|
||||||
|
ATTR_DISPLAY_NAME: 'Front Door',
|
||||||
|
ATTR_SERVICE: 'lock',
|
||||||
|
})
|
||||||
|
|
||||||
eventA = self.create_state_changed_event(pointA, entity_id, 10)
|
eventA = self.create_state_changed_event(pointA, entity_id, 10)
|
||||||
eventB = self.create_state_changed_event(pointB, entity_id2, 20)
|
eventB = self.create_state_changed_event(pointB, entity_id2, 20)
|
||||||
|
|
||||||
config = logbook.CONFIG_SCHEMA({
|
config = logbook.CONFIG_SCHEMA({
|
||||||
ha.DOMAIN: {},
|
ha.DOMAIN: {},
|
||||||
logbook.DOMAIN: {logbook.CONF_INCLUDE: {
|
logbook.DOMAIN: {logbook.CONF_INCLUDE: {
|
||||||
logbook.CONF_DOMAINS: ['sensor', ]}}})
|
logbook.CONF_DOMAINS: ['sensor', 'alexa', DOMAIN_HOMEKIT]}}})
|
||||||
events = logbook._exclude_events(
|
events = logbook._exclude_events(
|
||||||
(ha.Event(EVENT_HOMEASSISTANT_START), eventA, eventB),
|
(ha.Event(EVENT_HOMEASSISTANT_START),
|
||||||
|
event_alexa, event_homekit, eventA, eventB),
|
||||||
logbook._generate_filter_from_config(config[logbook.DOMAIN]))
|
logbook._generate_filter_from_config(config[logbook.DOMAIN]))
|
||||||
entries = list(logbook.humanify(self.hass, events))
|
entries = list(logbook.humanify(self.hass, events))
|
||||||
|
|
||||||
assert 2 == len(entries)
|
assert 4 == len(entries)
|
||||||
self.assert_entry(entries[0], name='Home Assistant', message='started',
|
self.assert_entry(entries[0], name='Home Assistant', message='started',
|
||||||
domain=ha.DOMAIN)
|
domain=ha.DOMAIN)
|
||||||
self.assert_entry(entries[1], pointB, 'blu', domain='sensor',
|
self.assert_entry(entries[1], name='Amazon Alexa', domain='alexa')
|
||||||
|
self.assert_entry(entries[2], name='HomeKit', domain=DOMAIN_HOMEKIT)
|
||||||
|
self.assert_entry(entries[3], pointB, 'blu', domain='sensor',
|
||||||
entity_id=entity_id2)
|
entity_id=entity_id2)
|
||||||
|
|
||||||
def test_include_exclude_events(self):
|
def test_include_exclude_events(self):
|
||||||
|
|
Loading…
Reference in New Issue