• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

net-daemon / netdaemon / 16544134123

26 Jul 2025 09:39PM UTC coverage: 83.774% (-0.3%) from 84.091%
16544134123

Pull #1315

github

web-flow
Merge 0420fb98c into 074af55b8
Pull Request #1315: Minimal NetDaemon

857 of 1147 branches covered (74.72%)

Branch coverage included in aggregate %.

23 of 37 new or added lines in 8 files covered. (62.16%)

1 existing line in 1 file now uncovered.

3361 of 3888 relevant lines covered (86.45%)

1270.34 hits per line

Source File
Press 'n' to go to next uncovered line, 'b' for previous

70.37
/src/Client/NetDaemon.HassClient/Common/HomeAssistantClientConnector.cs
1
namespace NetDaemon.Client;
2

3
/// <summary>
4
///     Make connection to Home Assistant
5
/// </summary>
6
public static class HomeAssistantClientConnector
7
{
8
    /// <summary>
9
    ///     Connect to Home Assistant
10
    /// </summary>
11
    /// <param name="host">The host name</param>
12
    /// <param name="port">Network port</param>
13
    /// <param name="ssl">Set true to use ssl</param>
14
    /// <param name="token">The access token to use</param>
15
    /// <param name="cancelToken">Cancellation token</param>
16
    public static Task<IHomeAssistantConnection> ConnectClientAsync(string host, int port, bool ssl, string token,
17
        CancellationToken cancelToken)
18
    {
19
        return ConnectClientAsync(host, port, ssl, token, HomeAssistantSettings.DefaultWebSocketPath, cancelToken);
1✔
20
    }
21

22
    /// <summary>
23
    ///     Connect to Home Assistant
24
    /// </summary>
25
    /// <param name="host">The host name</param>
26
    /// <param name="port">Network port</param>
27
    /// <param name="ssl">Set true to use ssl</param>
28
    /// <param name="token">The access token to use</param>
29
    /// <param name="websocketPath">The relative websocket path to use connecting</param>
30
    /// <param name="cancelToken">Cancellation token</param>
31
    public static async Task<IHomeAssistantConnection> ConnectClientAsync(string host, int port, bool ssl, string token,
32
        string websocketPath,
33
        CancellationToken cancelToken)
34
    {
35
        var loggerFactory = LoggerFactory.Create(b => b.AddConsole());
2✔
36
        var loggerConnect = loggerFactory.CreateLogger<IHomeAssistantConnection>();
1✔
37
        var loggerClient = loggerFactory.CreateLogger<IHomeAssistantClient>();
1✔
38
        var settings = new HomeAssistantSettings
1✔
39
        {
1✔
40
            Host = host,
1✔
41
            Port = port,
1✔
42
            Ssl = ssl,
1✔
43
            Token = token
1✔
44
        };
1✔
45
        var optionsSettings = Options.Create(settings);
1✔
46
        var apiManager = new HomeAssistantApiManager(optionsSettings, new HttpClient());
1✔
47
        var connectionFactory = new HomeAssistantConnectionFactory(loggerConnect, apiManager);
1✔
48
        var pipeLineFactory = new WebSocketClientTransportPipelineFactory();
1✔
49
        var websocketClientFactory = new WebSocketClientFactory(Options.Create(settings));
1✔
50
        var client = new HomeAssistantClient(loggerClient, websocketClientFactory, pipeLineFactory, connectionFactory);
1✔
51

52
        return await client.ConnectAsync(host, port, ssl, token, websocketPath, cancelToken).ConfigureAwait(false);
1✔
53
    }
1✔
54

55
    /// <summary>
56
    ///     Connect to Home Assistant
57
    /// </summary>
58
    public static async Task<IHomeAssistantConnection> ConnectClientAsync(string websocketUrl, string token, CancellationToken cancelToken)
59
    {
NEW
60
        return await ConnectClientAsync(new Uri(websocketUrl), token, cancelToken);
×
NEW
61
    }
×
62

63

64
    /// <summary>
65
    ///     Connect to Home Assistant
66
    /// </summary>
67
    public static async Task<IHomeAssistantConnection> ConnectClientAsync(Uri websocketUrl, string token, CancellationToken cancelToken)
68
    {
NEW
69
        return await ConnectClientAsync(websocketUrl.Host, websocketUrl.Port, websocketUrl.Scheme is "https" or "wss", token, websocketUrl.PathAndQuery, cancelToken);
×
NEW
70
    }
×
71
}
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2026 Coveralls, Inc