code: def _update_fire_status(self, message=None, status=None):
          
          fire_status = status
          last_status = self._fire_status
          if isinstance(message, Message):
              # Quirk in Ademco panels. The fire bit drops on "SYSTEM LO BAT" messages.
              # FIXME: does not support non english panels.
              if self.mode == ADEMCO and message.text.startswith("SYSTEM"):
                  fire_status = last_status
              else:
                  fire_status = message.fire_alarm
  
          if fire_status is None:
              return
  
          if fire_status != self._fire_status:
              self._fire_status, old_status = fire_status, self._fire_status
  
              if old_status is not None:
                  self.on_fire(status=self._fire_status)
  
          return self._fire_status
docs: Uses the provided message to update the fire alarm state.
  
          :param message: message to use to update
          :type message: :py:class:`~alarmdecoder.messages.Message`
          :param status: fire status, overrides message bits
          :type status: bool
  
          :returns: boolean indicating the new status