public async Task<bool> Start(Status status = null, bool silent = false)
{
var success = await Connect(this.host, this.port, this.password, silent);
if (success)
{
if (status == null) this.status = await GetStatus();
else this.status = status;
idle = true;
IdleEventLoop();
}
else idle = false;
return success;
}