docs: def _update_armed_status(self, message=None, status=None, status_stay=None):
          """
          Uses the provided message to update the armed state.
  
          :param message: message to use to update
          :type message: :py:class:`~alarmdecoder.messages.Message`
          :param status: armed status, overrides message bits
          :type status: bool
          :param status_stay: armed stay status, overrides message bits
          :type status_stay: bool
  
          :returns: bool indicating the new status
          """
          arm_status = status
          stay_status = status_stay
  
          if isinstance(message, Message):
              arm_status = message.armed_away
              stay_status = message.armed_home
  
          if arm_status is None or stay_status is None:
              return
  
          self._armed_status, old_status = arm_status, self._armed_status
          self._armed_stay, old_stay = stay_status, self._armed_stay
          if arm_status != old_status or stay_status != old_stay:
              if old_status is not None or message is None:
                  if self._armed_status or self._armed_stay:
                      self.on_arm(stay=stay_status)
                  else:
                      self.on_disarm()
  
          return self._armed_status or self._armed_stay