| @@ -93,8 +93,6 @@ class AlarmDecoder(object): | |||
| BATTERY_TIMEOUT = 30 | |||
| """Default timeout (in seconds) before the battery status reverts.""" | |||
| FIRE_TIMEOUT = 30 | |||
| """Default tTimeout (in seconds) before the fire status reverts.""" | |||
| # Attributes | |||
| address = 18 | |||
| @@ -143,7 +141,6 @@ class AlarmDecoder(object): | |||
| self._ignore_message_states = ignore_message_states | |||
| self._ignore_lrr_states = ignore_lrr_states | |||
| self._battery_timeout = AlarmDecoder.BATTERY_TIMEOUT | |||
| self._fire_timeout = AlarmDecoder.FIRE_TIMEOUT | |||
| self._power_status = None | |||
| self._chime_status = None | |||
| self._ready_status = None | |||
| @@ -155,7 +152,6 @@ class AlarmDecoder(object): | |||
| self._armed_stay = False | |||
| self._exit = False | |||
| self._fire_status = False | |||
| self._fire_status_timeout = 0 | |||
| self._battery_status = (False, 0) | |||
| self._panic_status = False | |||
| self._relay_status = {} | |||
| @@ -220,25 +216,6 @@ class AlarmDecoder(object): | |||
| """ | |||
| self._battery_timeout = value | |||
| @property | |||
| def fire_timeout(self): | |||
| """ | |||
| Retrieves the timeout for restoring the fire status, in seconds. | |||
| :returns: fire status timeout | |||
| """ | |||
| return self._fire_timeout | |||
| @fire_timeout.setter | |||
| def fire_timeout(self, value): | |||
| """ | |||
| Sets the timeout for restoring the fire status, in seconds. | |||
| :param value: timeout in seconds | |||
| :type value: int | |||
| """ | |||
| self._fire_timeout = value | |||
| @property | |||
| def internal_address_mask(self): | |||
| """ | |||
| @@ -916,7 +893,6 @@ class AlarmDecoder(object): | |||
| fire_status = status | |||
| last_status = self._fire_status | |||
| last_update = self._fire_status_timeout | |||
| # Quirk in Ademco panels. Fire bit goes on/off if other alarms are on or a system fault | |||
| if isinstance(message, Message): | |||
| @@ -926,33 +902,12 @@ class AlarmDecoder(object): | |||
| not message.text.startswith("CHECK") and | |||
| message.system_fault != 3): | |||
| # if we had an alarm and the sticky bit was cleared then clear the alarm | |||
| if self._fire_status and not message.alarm_event_occurred: | |||
| # fire restore | |||
| fire_status = False | |||
| # if we had a fire event and it went away and we still have a sticky alarm bit | |||
| # then it is not gone yet just restore it | |||
| if not message.fire_alarm and self._fire_status: | |||
| if message.alarm_event_occurred: | |||
| fire_status = self._fire_status | |||
| # if we did not have an alarm and we do now send event | |||
| if message.fire_alarm and message.fire_alarm != self._fire_status: | |||
| fire_status = message.fire_alarm | |||
| # if we had an alarm already send and we get it again extend the timeout | |||
| if message.fire_alarm and message.fire_alarm == self._fire_status: | |||
| self._fire_status = message.fire_alarm | |||
| self._fire_status_timeout = time.time() | |||
| fire_status = message.fire_alarm | |||
| else: | |||
| # if we timeout with an alarm set restore it | |||
| if time.time() > last_update + self._fire_timeout: | |||
| fire_status = False | |||
| else: | |||
| # Keep the current fire state do not update for SYSTEM messages. | |||
| fire_status = self._fire_status | |||
| # Keep the current fire state do not update for SYSTEM messages. | |||
| fire_status = self._fire_status | |||
| else: | |||
| fire_status = message.fire_alarm | |||
| @@ -960,7 +915,6 @@ class AlarmDecoder(object): | |||
| if fire_status != self._fire_status: | |||
| if fire_status is not None: | |||
| self._fire_status = fire_status | |||
| self._fire_status_timeout = time.time() | |||
| self.on_fire(status=fire_status) | |||
| return self._fire_status | |||