HassApi 0.0.1
dotnet add package HassApi --version 0.0.1
NuGet\Install-Package HassApi -Version 0.0.1
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<PackageReference Include="HassApi" Version="0.0.1" />
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="HassApi" Version="0.0.1" />
<PackageReference Include="HassApi" />
For projects that support Central Package Management (CPM), copy this XML node into the solution Directory.Packages.props file to version the package.
paket add HassApi --version 0.0.1
The NuGet Team does not provide support for this client. Please contact its maintainers for support.
#r "nuget: HassApi, 0.0.1"
#r directive can be used in F# Interactive and Polyglot Notebooks. Copy this into the interactive tool or source code of the script to reference the package.
#:package HassApi@0.0.1
#:package directive can be used in C# file-based apps starting in .NET 10 preview 4. Copy this into a .cs file before any lines of code to reference the package.
#addin nuget:?package=HassApi&version=0.0.1
#tool nuget:?package=HassApi&version=0.0.1
The NuGet Team does not provide support for this client. Please contact its maintainers for support.
HassApi
Home Assistant REST API
授权
using HassApi;
var hassAuth = new HassAuth(
"http://192.168.1.5:8123",
"http://192.168.1.5:8123/android-tv" // clientId
);
// 1. 页面跳转
Console.WriteLine($"授权链接,获取code: {hassAuth.AuthorizeUri}");
// 2. 获取 RefreshToken
webview.Navigating += async (sender, ev) => {
// 重定向匹配
if (ev.Url.StartsWith(hassAuth.RedirectUri))
{
var code = "...";
var auth = await hassAuth.GetRefreshTokenAsync(code);
Console.WriteLine($"RefreshToken: {auth.RefreshToken}");
Console.WriteLine($"AccessToken: {auth.AccessToken}");
Console.WriteLine($"ExpiresIn: {auth.ExpiresIn}");
Console.WriteLine($"TokenType: {auth.TokenType}");
}
};
// 3. 过期后换取新的AccessToken
var refreshToken = "...";
var auth = await hassAuth.GetAccessTokenAsync(refreshToken);
Console.WriteLine($"RefreshToken: {auth.RefreshToken}");
Console.WriteLine($"AccessToken: {auth.AccessToken}");
Console.WriteLine($"ExpiresIn: {auth.ExpiresIn}");
Console.WriteLine($"TokenType: {auth.TokenType}");
REST API
using HassApi;
// 1. 初始化客户端
var hassClient = new HassClient(
"http://192.168.1.5:8123",
"eyJhGci..." // 你的 Long-Lived Token
);
// 2. 获取某个灯的状态
var light = await hassClient.GetStateAsync("light.living_room");
Console.WriteLine($"客厅灯状态: {light?.State}");
// 3. 开灯 (调用服务)
await hassClient.CallServiceAsync("light", "turn_on", new { entity_id = "light.living_room", brightness = 255 });
MobileApp
// 1. 注册设备
var res = await hassClient.RegisterMobileAppAsync(new MobileAppRegistrationRequest{
...
})
Console.WriteLine($"WebhookId: {res.WebhookId}");
var mobileApp = new MobileApp(
"http://192.168.1.5:8123",
"xxxxxxxxxxxxx" // WebhookId
);
// 2. 更新设备信息
await mobileApp.UpdateRegistrationAsync(new UpdateRegistrationRequest{
...
})
// 3. 上报传感器
...
| Product | Versions Compatible and additional computed target framework versions. |
|---|---|
| .NET | net5.0 was computed. net5.0-windows was computed. net6.0 was computed. net6.0-android was computed. net6.0-ios was computed. net6.0-maccatalyst was computed. net6.0-macos was computed. net6.0-tvos was computed. net6.0-windows was computed. net7.0 was computed. net7.0-android was computed. net7.0-ios was computed. net7.0-maccatalyst was computed. net7.0-macos was computed. net7.0-tvos was computed. net7.0-windows was computed. net8.0 was computed. net8.0-android was computed. net8.0-browser was computed. net8.0-ios was computed. net8.0-maccatalyst was computed. net8.0-macos was computed. net8.0-tvos was computed. net8.0-windows was computed. net9.0 was computed. net9.0-android was computed. net9.0-browser was computed. net9.0-ios was computed. net9.0-maccatalyst was computed. net9.0-macos was computed. net9.0-tvos was computed. net9.0-windows was computed. net10.0 was computed. net10.0-android was computed. net10.0-browser was computed. net10.0-ios was computed. net10.0-maccatalyst was computed. net10.0-macos was computed. net10.0-tvos was computed. net10.0-windows was computed. |
| .NET Core | netcoreapp2.0 was computed. netcoreapp2.1 was computed. netcoreapp2.2 was computed. netcoreapp3.0 was computed. netcoreapp3.1 was computed. |
| .NET Standard | netstandard2.0 is compatible. netstandard2.1 was computed. |
| .NET Framework | net461 was computed. net462 was computed. net463 was computed. net47 was computed. net471 was computed. net472 was computed. net48 was computed. net481 was computed. |
| MonoAndroid | monoandroid was computed. |
| MonoMac | monomac was computed. |
| MonoTouch | monotouch was computed. |
| Tizen | tizen40 was computed. tizen60 was computed. |
| Xamarin.iOS | xamarinios was computed. |
| Xamarin.Mac | xamarinmac was computed. |
| Xamarin.TVOS | xamarintvos was computed. |
| Xamarin.WatchOS | xamarinwatchos was computed. |
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.
-
.NETStandard 2.0
- Microsoft.Extensions.Http (>= 10.0.0)
- System.Text.Json (>= 10.0.0)
NuGet packages
This package is not used by any NuGet packages.
GitHub repositories
This package is not used by any popular GitHub repositories.
| Version | Downloads | Last Updated |
|---|---|---|
| 0.0.1 | 300 | 11/30/2025 |
Support basic functions