diff --git a/homeassistant/components/elkm1/alarm_control_panel.py b/homeassistant/components/elkm1/alarm_control_panel.py index 3e9ab11483786..1c299e6880317 100644 --- a/homeassistant/components/elkm1/alarm_control_panel.py +++ b/homeassistant/components/elkm1/alarm_control_panel.py @@ -125,8 +125,10 @@ def __init__(self, element, elk, elk_data): async def async_added_to_hass(self): """Register callback for ElkM1 changes.""" await super().async_added_to_hass() - for keypad in self._elk.keypads: - keypad.add_callback(self._watch_keypad) + if len(self._elk.areas.elements) == 1: + for keypad in self._elk.keypads: + keypad.add_callback(self._watch_keypad) + self._element.add_callback(self._watch_area) # We do not get changed_by back from resync. last_state = await self.async_get_last_state() @@ -152,6 +154,21 @@ def _watch_keypad(self, keypad, changeset): self._changed_by = username(self._elk, keypad.last_user) self.async_write_ha_state() + def _watch_area(self, area, changeset): + if not changeset.get("log_event"): + return + self._changed_by_keypad = None + self._changed_by_id = area.log_number + self._changed_by = username(self._elk, area.log_number - 1) + self._changed_by_time = "%04d-%02d-%02dT%02d:%02d" % ( + area.log_year, + area.log_month, + area.log_day, + area.log_hour, + area.log_minute, + ) + self.async_write_ha_state() + @property def code_format(self): """Return the alarm code format.""" diff --git a/homeassistant/components/elkm1/manifest.json b/homeassistant/components/elkm1/manifest.json index 5a88792208aed..20b8195d5b8b3 100644 --- a/homeassistant/components/elkm1/manifest.json +++ b/homeassistant/components/elkm1/manifest.json @@ -2,7 +2,7 @@ "domain": "elkm1", "name": "Elk-M1 Control", "documentation": "https://www.home-assistant.io/integrations/elkm1", - "requirements": ["elkm1-lib==0.7.17"], + "requirements": ["elkm1-lib==0.7.18"], "codeowners": ["@bdraco"], "config_flow": true } diff --git a/requirements_all.txt b/requirements_all.txt index a60ad79707faa..11f5d9a79e102 100644 --- a/requirements_all.txt +++ b/requirements_all.txt @@ -526,7 +526,7 @@ elgato==0.2.0 eliqonline==1.2.2 # homeassistant.components.elkm1 -elkm1-lib==0.7.17 +elkm1-lib==0.7.18 # homeassistant.components.emulated_roku emulated_roku==0.2.1 diff --git a/requirements_test_all.txt b/requirements_test_all.txt index bc1ca515e5549..4c62ea89b6373 100644 --- a/requirements_test_all.txt +++ b/requirements_test_all.txt @@ -233,7 +233,7 @@ eebrightbox==0.0.4 elgato==0.2.0 # homeassistant.components.elkm1 -elkm1-lib==0.7.17 +elkm1-lib==0.7.18 # homeassistant.components.emulated_roku emulated_roku==0.2.1