:param host: Hostname or ip to fetch status from
    :type host: str
    :return: The multizone status as a named tuple.
    :rtype: pychromecast.dial.MultizoneStatus or None

def get_multizone_status(host, services=None, zconf=None):
    """
    :param host: Hostname or ip to fetch status from
    :type host: str
    :return: The multizone status as a named tuple.
    :rtype: pychromecast.dial.MultizoneStatus or None
    """

    try:
        status = status = _get_status(
            host, services, zconf, "/setup/eureka_info?params=multizone")

        dynamic_groups = []
        if 'multizone' in status and 'dynamic_groups' in status['multizone']:
            for group in status['multizone']['dynamic_groups']:
                name = group.get('name', "Unknown group name")
                udn = group.get('uuid', None)
                uuid = None
                if udn:
                    uuid = UUID(udn.replace('-', ''))
                dynamic_groups.append(MultizoneInfo(name, uuid))

        groups = []
        if 'multizone' in status and 'groups' in status['multizone']:
            for group in status['multizone']['groups']:
                name = group.get('name', "Unknown group name")
                udn = group.get('uuid', None)
                uuid = None
                if udn:
                    uuid = UUID(udn.replace('-', ''))
                groups.append(MultizoneInfo(name, uuid))

        return MultizoneStatus(dynamic_groups, groups)

    except (requests.exceptions.RequestException, OSError, ValueError):
        return None