/// <summary> /// Connect to Home Assistant /// </summary> /// <param name="host">The host name</param> /// <param name="port">Network port</param> /// <param name="ssl">Set true to use ssl</param> /// <param name="token">The access token to use</param> /// <param name="websocketPath">The relative websocket path to use connecting</param> /// <param name="cancelToken">Cancellation token</param> public static async Task <IHomeAssistantConnection> ConnectClientAsync(string host, int port, bool ssl, string token, string websocketPath, CancellationToken cancelToken) { var loggerFactory = LoggerFactory.Create(b => b.AddConsole()); var loggerConnect = loggerFactory.CreateLogger <IHomeAssistantConnection>(); var loggerClient = loggerFactory.CreateLogger <IHomeAssistantClient>(); var loggerResultMessageHandler = loggerFactory.CreateLogger <ResultMessageHandler>(); var settings = new HomeAssistantSettings { Host = host, Port = port, Ssl = ssl, Token = token }; var optionsSettings = Options.Create(settings); var apiManager = new HomeAssistantApiManager(optionsSettings, new HttpClient()); var connectionFactory = new HomeAssistantConnectionFactory(loggerConnect, apiManager); var pipeLineFactory = new WebSocketClientTransportPipelineFactory(); var websocketClientFactory = new WebSocketClientFactory(Options.Create(settings)); var client = new HomeAssistantClient(loggerClient, websocketClientFactory, pipeLineFactory, connectionFactory); return(await client.ConnectAsync(host, port, ssl, token, websocketPath, cancelToken).ConfigureAwait(false)); }
public LightService() { clientService = new HomeAssistantClient("https://rmarinho.duckdns.org/"); Init(); }