async def METHOD_NAME(self):
    """
    The PulseAsync object subscribes to connection state events so we
    need to check periodically whether the connection has been lost.
    """
    if not self.pulse.connected:
        # Check if we were previously connected to the server and,
        # if so, stop the event handler
        if self._subscribed:
            if self._event_handler is not None:
                self._event_handler.cancel()
                self._event_handler = None
            self._subscribed = False
        try:
            await self.pulse.connect()
            logger.debug("Connection to pulseaudio ready")
        except PulseError:
            logger.warning("Failed to connect to pulseaudio, retrying in 10s")
        else:
            # We're connected so get details of the default sink
            await self.get_server_info()
            # Start event listeners for sink and server events
            self._event_handler = create_task(self._event_listener())
            self._subscribed = True
    # Set a timer to check status in 10 seconds time
    self.timeout_add(10, self.METHOD_NAME())