docs: def _update_internal_states(self, message):
          """
          Updates internal device states.
  
          :param message: :py:class:`~alarmdecoder.messages.Message` to update internal states with
          :type message: :py:class:`~alarmdecoder.messages.Message`, :py:class:`~alarmdecoder.messages.ExpanderMessage`, :py:class:`~alarmdecoder.messages.LRRMessage`, or :py:class:`~alarmdecoder.messages.RFMessage`
          """
          if isinstance(message, Message) and not self._ignore_message_states:
              self._update_armed_ready_status(message)
              self._update_power_status(message)
              self._update_chime_status(message)
              self._update_alarm_status(message)
              self._update_zone_bypass_status(message)
              self._update_battery_status(message)
              self._update_fire_status(message)
  
          elif isinstance(message, ExpanderMessage):
              self._update_expander_status(message)
  
          self._update_zone_tracker(message)