<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 async def async_run_command(self, command, retry=False):
 """Run commands through an SSH connection. Connect to the SSH server if not currently connected, otherwise use the existing connection. """

        if not self.is_connected:
            await self.async_connect()
        try:
            result = await asyncio.wait_for(self._client.run(
                "%s && %s" % (_PATH_EXPORT_COMMAND, command)), 9)
        except asyncssh.misc.ChannelOpenError:
            if not retry:
                await self.async_connect()
                return self.async_run_command(command, retry=True)
            else:
                self._connected = False
                _LOGGER.error("No connection to host")
                return []
        except TimeoutError:
            del self._client
            self._connected = False
            _LOGGER.error("Host timeout.")
            return []

        self._connected = True
        return result.stdout.split('\n')