Get the latest status information from device.

        Method queries device via HTTP and updates instance attributes.
        Returns "True" on success and "False" on fail.
        This method is for pre 2016 AVR(-X) devices

def _update_avr(self):
        """
        Get the latest status information from device.

        Method queries device via HTTP and updates instance attributes.
        Returns "True" on success and "False" on fail.
        This method is for pre 2016 AVR(-X) devices
        """
        # Set all tags to be evaluated
        relevant_tags = {"Power": None, "InputFuncSelect": None, "Mute": None,
                         "MasterVolume": None}

        # Sound mode information only available in main zone
        if self._zone == "Main" and self._support_sound_mode:
            relevant_tags["selectSurround"] = None
            relevant_tags["SurrMode"] = None

        # Get status XML from Denon receiver via HTTP
        try:
            root = self.get_status_xml(self._urls.status)
        except ValueError:
            pass
        except requests.exceptions.RequestException:
            # On timeout and connection error, the device is probably off
            self._power = POWER_OFF
        else:
            # Get the tags from this XML
            relevant_tags = self._get_status_from_xml_tags(root, relevant_tags)

        # Second option to update variables from different source
        if relevant_tags and self._power != POWER_OFF:
            try:
                root = self.get_status_xml(self._urls.mainzone)
            except (ValueError,
                    requests.exceptions.RequestException):
                pass
            else:
                # Get the tags from this XML
                relevant_tags = self._get_status_from_xml_tags(root,
                                                               relevant_tags)

        # Error message if still some variables are not updated yet
        if relevant_tags and self._power != POWER_OFF:
            _LOGGER.error("Missing status information from XML of %s for: %s",
                          self._zone, ", ".join(relevant_tags.keys()))

        # Set state and media image URL based on current source
        # and power status
        if (self._power == POWER_ON) and (
                self._input_func in self._playing_func_list):
            if self._update_media_data():
                pass
            else:
                _LOGGER.error(
                    "Update of media data for source %s in %s failed",
                    self._input_func, self._zone)
        elif self._power == POWER_ON:
            self._state = STATE_ON
            self._title = None
            self._artist = None
            self._album = None
            self._band = None
            self._frequency = None
            self._station = None
            self._image_url = None
        else:
            self._state = STATE_OFF
            self._title = None
            self._artist = None
            self._album = None
            self._band = None
            self._frequency = None
            self._station = None

        # Get/update sources list if current source is not known yet
        if (self._input_func not in self._input_func_list and
                self._input_func is not None):
            if self._update_input_func_list():
                _LOGGER.info("List of input functions refreshed.")
                # If input function is still not known, create new entry.
                if (self._input_func not in self._input_func_list and
                        self._input_func is not None):
                    inputfunc = self._input_func
                    self._input_func_list_rev[inputfunc] = inputfunc
                    self._input_func_list[inputfunc] = inputfunc
            else:
                _LOGGER.error((
                    "Input function list for Denon receiver at host %s "
                    "could not be updated."), self._host)

        # Finished
        return True