From d36d123cf7c64f4c48be5a65a704a512b99248da Mon Sep 17 00:00:00 2001 From: Hugh Eaves Date: Thu, 3 Oct 2019 21:01:06 -0400 Subject: [PATCH] Support zone expanders in alarmdecoder (#27167) --- 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 e0ff80ae9fa..61cb0effe53 100644 --- a/homeassistant/components/alarmdecoder/__init__.py +++ b/homeassistant/components/alarmdecoder/__init__.py @@ -174,7 +174,7 @@ def setup(hass, config): 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 setup(hass, config): 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 bbcc4fd6eae..dc3f16b7d22 100644 --- a/homeassistant/components/alarmdecoder/binary_sensor.py +++ b/homeassistant/components/alarmdecoder/binary_sensor.py @@ -151,10 +151,15 @@ class AlarmDecoderBinarySensor(BinarySensorDevice): 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()