From 5c8b9ff39e5d3c8b6ea4a6436d3bba5c0d4ebede Mon Sep 17 00:00:00 2001 From: Hugh Eaves Date: Thu, 3 Oct 2019 09:54:39 -0400 Subject: [PATCH] Support zone expanders in alarmdecoder --- homeassistant/components/alarmdecoder/__init__.py | 4 ++-- homeassistant/components/alarmdecoder/binary_sensor.py | 9 +++++++-- 2 files changed, 9 insertions(+), 4 deletions(-) diff --git a/homeassistant/components/alarmdecoder/__init__.py b/homeassistant/components/alarmdecoder/__init__.py index e0ff80ae9faa7a..61cb0effe53e2a 100644 --- a/homeassistant/components/alarmdecoder/__init__.py +++ b/homeassistant/components/alarmdecoder/__init__.py @@ -174,7 +174,7 @@ def zone_restore_callback(sender, zone): hass.helpers.dispatcher.dispatcher_send(SIGNAL_ZONE_RESTORE, zone) def handle_rel_message(sender, message): - """Handle relay message from AlarmDecoder.""" + """Handle relay or zone expander message from AlarmDecoder.""" hass.helpers.dispatcher.dispatcher_send(SIGNAL_REL_MESSAGE, message) controller = False @@ -195,7 +195,7 @@ def handle_rel_message(sender, message): controller.on_zone_fault += zone_fault_callback controller.on_zone_restore += zone_restore_callback controller.on_close += handle_closed_connection - controller.on_relay_changed += handle_rel_message + controller.on_expander_message += handle_rel_message hass.data[DATA_AD] = controller diff --git a/homeassistant/components/alarmdecoder/binary_sensor.py b/homeassistant/components/alarmdecoder/binary_sensor.py index bbcc4fd6eae1c2..dc3f16b7d22487 100644 --- a/homeassistant/components/alarmdecoder/binary_sensor.py +++ b/homeassistant/components/alarmdecoder/binary_sensor.py @@ -151,10 +151,15 @@ def _rfx_message_callback(self, message): self.schedule_update_ha_state() def _rel_message_callback(self, message): - """Update relay state.""" + """Update relay / expander state.""" + if self._relay_addr == message.address and self._relay_chan == message.channel: _LOGGER.debug( - "Relay %d:%d value:%d", message.address, message.channel, message.value + "%s %d:%d value:%d", + "Relay" if message.type == message.RELAY else "ZoneExpander", + message.address, + message.channel, + message.value, ) self._state = message.value self.schedule_update_ha_state()