Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Feature: Add Device Track Sensor without breaking Geolocation sensor #158

Open
wants to merge 45 commits into
base: main
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
45 commits
Select commit Hold shift + click to select a range
cc85b8a
Fix: missing audio commands due to improper configuration (#39)
amadeo-alex Jan 13, 2024
01463da
updated VirtualDesktop library version and removed unused one (#40)
amadeo-alex Jan 15, 2024
2ac7574
Development: 2.1.0-beta1 version change (#46)
amadeo-alex Feb 13, 2024
952d8ec
Fix: sensor being updated constantly when value doesn't change (#45)
amadeo-alex Feb 13, 2024
87887aa
Feature: screenshot camera sensor (#42)
amadeo-alex Feb 13, 2024
7f6b3f5
Feature: set audio input command (#41)
amadeo-alex Feb 13, 2024
dd55e18
Fix: Powershell command argument binding (#47)
amadeo-alex Feb 15, 2024
d1af9d6
Fix: active window title encoding (#50)
amadeo-alex Feb 24, 2024
a426aee
Fix: constant MQTT discovery payload publish (#54)
amadeo-alex Mar 1, 2024
b828cf8
Feature: ability to ignore MQTT grace period after waking up from hib…
amadeo-alex Mar 1, 2024
dc6b04e
Feature: modern/transparent tray icon option (#55)
amadeo-alex Mar 1, 2024
113f17b
updated description to better reflect sensor's functionality (#57)
amadeo-alex Mar 1, 2024
3478aa0
dependency bump (#56)
amadeo-alex Mar 1, 2024
2067440
added note regarding HA 255 payload character limit (#58)
amadeo-alex Mar 1, 2024
1f2a409
Feature: NFC tag scanning (#69)
amadeo-alex Apr 8, 2024
5e480f4
Fix: close all subwindows when main one is closed (#70)
amadeo-alex Apr 8, 2024
9e10674
Fix: device rename MQTT messages cleanup (#71)
amadeo-alex Apr 8, 2024
571c8fa
Fix: added additional check for mixed german keyboard layouts (#74)
amadeo-alex May 1, 2024
b2fb3c9
Fix: attributes are now cleared if no process uses the microphone (#76)
amadeo-alex May 2, 2024
07a76e5
Feature: ActiveWindowSensor process name attribute (#77)
amadeo-alex May 2, 2024
d5d84ae
Fix: added additional checks for management object property or its va…
amadeo-alex May 2, 2024
d8dd96a
Feature: advanced sensor settings (device_class, unit_of_measurement,…
amadeo-alex May 2, 2024
255d209
Fix: adjust sensor state_class/device_class (#82)
amadeo-alex May 3, 2024
2ff3696
Fix: screenshot sensor monitor scaling (#84)
amadeo-alex May 4, 2024
eec64de
Fix: CoreAudio library memory leak / redesign (#85)
amadeo-alex May 4, 2024
efa9a32
Fix: name being used instead of friendly name while creating/editing …
amadeo-alex May 7, 2024
dafd930
Fix: windows updates sensor missing uniqueid (#90)
amadeo-alex May 8, 2024
c8cb353
Fix: added lost useAttributes parameter (#92)
amadeo-alex May 16, 2024
8051a8b
Feature: "MultipleKeys" command support for action parameter (#98)
amadeo-alex Jun 2, 2024
8e67272
Fix: audio library/sleep management/playback (#101)
amadeo-alex Jun 16, 2024
bd03bf5
added missing audio device mute attribute assignment; added missing m…
amadeo-alex Jun 16, 2024
c63e485
Feature: separate installer for client and satellite (#103)
amadeo-alex Jun 16, 2024
0bd1904
Fix: advanced settings not being saved for satellite sensors (#104)
amadeo-alex Jun 22, 2024
be6a48c
fixed advanced settings not being saved properly (#105)
amadeo-alex Jun 24, 2024
abec36f
Fix: added ignoreversion parameter (#107)
amadeo-alex Jun 24, 2024
b577482
Fix: satellite service installer not respecting user selected path (#…
amadeo-alex Jul 3, 2024
f30f24a
Fix: audio manager com-thread safety (#122)
amadeo-alex Jul 12, 2024
1027b1f
Fix: satellite service sensors/commands not being properly saved (#123)
amadeo-alex Jul 12, 2024
5161f6f
Feature: tray webview command (#124)
amadeo-alex Jul 12, 2024
6b474c2
Feature: quick action automation trigger (#125)
amadeo-alex Jul 13, 2024
5082f67
Feature: quick action button press (#126)
amadeo-alex Jul 13, 2024
3fd5fda
Fix: readded service stop logic (#133)
amadeo-alex Aug 1, 2024
ee6c38f
Fix: added additional null check for malfunctioning sensors (#134)
amadeo-alex Aug 3, 2024
cdb26c6
Release: 2.1.0-beta3 (#135)
amadeo-alex Aug 4, 2024
ec6cf76
Add Device Location Track Sensor, and minor code cleanups
denisabt Sep 17, 2024
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
7 changes: 6 additions & 1 deletion .github/workflows/build.yml
Original file line number Diff line number Diff line change
Expand Up @@ -120,7 +120,12 @@ jobs:
working-directory: "D:\\a\\HASS.Agent\\HASS.Agent\\src\\HASS.Agent\\HASS.Agent.Satellite.Service"
run: "dotnet publish -c Release -f net6.0-windows10.0.19041.0 -o bin\\Publish-x64\\Release\\ --no-self-contained -r win-x64 -p:Platform=x64"

- name: Compile InnoSetup Installer
- name: Compile InnoSetup Installer - Satellite Service
working-directory: "D:\\a\\HASS.Agent\\HASS.Agent\\src\\HASS.Agent.Installer"
run: |
& "${Env:ProgramFiles(x86)}\\Inno Setup 6\\iscc.exe" InstallerScript-Service.iss

- name: Compile InnoSetup Installer - Client
working-directory: "D:\\a\\HASS.Agent\\HASS.Agent\\src\\HASS.Agent.Installer"
run: |
& "${Env:ProgramFiles(x86)}\\Inno Setup 6\\iscc.exe" InstallerScript.iss
Expand Down
222 changes: 222 additions & 0 deletions src/HASS.Agent.Installer/AfterInstallNotice-Service.rtf

Large diffs are not rendered by default.

218 changes: 218 additions & 0 deletions src/HASS.Agent.Installer/BeforeInstallNotice-Service.rtf

Large diffs are not rendered by default.

114 changes: 114 additions & 0 deletions src/HASS.Agent.Installer/InstallerScript-Service.iss
Original file line number Diff line number Diff line change
@@ -0,0 +1,114 @@
; Script generated by the Inno Setup Script Wizard.
; SEE THE DOCUMENTATION FOR DETAILS ON CREATING INNO SETUP SCRIPT FILES!
; Modified to suit HASS.Agent requirements :)

; InnoDependencyInstaller
; Thanks to https://github.com/DomGries/InnoDependencyInstaller for the amazing work!
#define public Dependency_Path_NetCoreCheck "dependencies\"
#include "CodeDependencies.iss"

; Standard installation constants
#define MyAppName "HASS.Agent Satellite Service"
#define MyAppVersion "2.1.0-beta3"
#define MyAppPublisher "HASS.Agent Team"
#define MyAppURL "https://hass-agent.io"
#define MyAppExeName "HASS.Agent.Satellite.Service.exe"
#define ServiceName "hass.agent.svc"
#define ServiceDisplayName "HASS.Agent - Satellite Service"
#define ServiceDescription "Satellite service for HASS.Agent: a Windows based Home Assistant client. This service processes commands and sensors without the requirement of a logged-in user."

[Setup]
ArchitecturesInstallIn64BitMode=x64
;SetupMutex=Global\HASS.Agent.Setup.Satellite.Mutex,HASS.Agent.Satellite.Setup.Mutex
AppMutex=Global\\HASS.Agent.Service.Mutex
AppId={{4004588E-F411-41C2-ABD8-A898B0A14B93}
AppName={#MyAppName}
AppVersion={#MyAppVersion}
;AppVerName={#MyAppName} {#MyAppVersion}
AppPublisher={#MyAppPublisher}
AppPublisherURL={#MyAppURL}
AppSupportURL={#MyAppURL}
AppUpdatesURL={#MyAppURL}
DefaultDirName={commonpf64}\{#MyAppName}\Service
DisableProgramGroupPage=yes
LicenseFile=..\..\LICENSE.md
InfoBeforeFile=.\BeforeInstallNotice-Service.rtf
InfoAfterFile=.\AfterInstallNotice-Service.rtf
PrivilegesRequired=admin
OutputDir=.\bin
OutputBaseFilename=HASS.Agent.Service.Installer
SetupIconFile=..\HASS.Agent\HASS.Agent.Shared\hassagent.ico
Compression=lzma
SolidCompression=yes
WizardStyle=modern
CloseApplications=force
CloseApplicationsFilter=*.*
UninstallDisplayIcon={app}\{#MyAppExeName}
UninstallDisplayName={#MyAppName} {#MyAppVersion}

[Languages]
Name: "english"; MessagesFile: "compiler:Default.isl"

; NOTE: Don't use "Flags: ignoreversion" on any shared system files
[Files]
; Service files
Source: "..\HASS.Agent\HASS.Agent.Satellite.Service\bin\Publish-x64\Release\*"; DestDir: "{app}"; Flags: ignoreversion recursesubdirs createallsubdirs

[Run]
Filename: "{sys}\sc.exe"; Parameters: "start {#ServiceName}"; Description: "Start Satellite Service"; Flags: postinstall runhidden runascurrentuser

[Registry]
Root: HKLM; Subkey: "SOFTWARE\HASSAgent\SatelliteService"; ValueType: string; ValueName: "InstallPath"; ValueData: "{app}"; Flags: createvalueifdoesntexist uninsdeletevalue

; Service registration and removal
[Run]
Filename: "{sys}\sc.exe"; Parameters: "create {#ServiceName} binpath= ""{app}\{#MyAppExeName}"""; Flags: runhidden
Filename: "{sys}\sc.exe"; Parameters: "failure {#ServiceName} reset= 86400 actions= restart/60000/restart/60000//1000"; Flags: runhidden
Filename: "{sys}\sc.exe"; Parameters: "description {#ServiceName} ""{#ServiceDescription}"""; Flags: runhidden
Filename: "{sys}\sc.exe"; Parameters: "config {#ServiceName} DisplayName= ""{#ServiceDisplayName}"""; Flags: runhidden
Filename: "{sys}\sc.exe"; Parameters: "config {#ServiceName} start= auto"; Flags: runhidden
[UninstallRun]
Filename: "{sys}\sc.exe"; Parameters: "stop {#ServiceName}"; RunOnceId: StopService; Flags: runhidden
Filename: "{sys}\timeout.exe"; Parameters: "5"; RunOnceId: Delay1; Flags:runhidden
Filename: "{sys}\sc.exe"; Parameters: "delete {#ServiceName}" ; RunOnceId: DeleteService; Flags: runhidden
Filename: "{sys}\timeout.exe"; Parameters: "5"; RunOnceId: Delay2; Flags:runhidden

[Code]
function InitializeSetup: Boolean;
begin
Dependency_ForceX86 := False;
Dependency_AddDotNet60Desktop;
Result := True;
end;

procedure CurStepChanged(CurStep: TSetupStep);
var
ProgressPage: TOutputProgressWizardPage;
I, Step, Wait, ResultCode: Integer;
begin
if CurStep = ssInstall then
begin
Exec(ExpandConstant('{sys}') + '\sc.exe', 'stop ' + ExpandConstant('{#ServiceName}'), '', SW_HIDE, ewWaitUntilTerminated, ResultCode)

//thanks to https://stackoverflow.com/a/39827761
Wait := 5000;
Step := 100;
ProgressPage :=
CreateOutputProgressPage(
WizardForm.PageNameLabel.Caption,
WizardForm.PageDescriptionLabel.Caption);
ProgressPage.SetText('Making sure the satellite service is stopped...', '');
ProgressPage.SetProgress(0, Wait);
ProgressPage.Show;
try
for I := 0 to Wait div Step do
begin
ProgressPage.SetProgress(I * Step, Wait);
Sleep(Step);
end;
finally
ProgressPage.Hide;
ProgressPage.Free;
end;
end;
end;
54 changes: 24 additions & 30 deletions src/HASS.Agent.Installer/InstallerScript.iss
Original file line number Diff line number Diff line change
Expand Up @@ -9,19 +9,15 @@

; Standard installation constants
#define MyAppName "HASS.Agent"
#define MyAppVersion "2.0.1"
#define MyAppVersion "2.1.0-beta3"
#define MyAppPublisher "HASS.Agent Team"
#define MyAppURL "https://hass-agent.io"
#define MyAppExeName "HASS.Agent.exe"
#define MyAppServiceExeName "HASS.Agent.Satellite.Service.exe"
#define ServiceName "hass.agent.svc"
#define ServiceDisplayName "HASS.Agent - Satellite Service"
#define ServiceDescription "Satellite service for HASS.Agent: a Windows based Home Assistant client. This service processes commands and sensors without the requirement of a logged-in user."

[Setup]
ArchitecturesInstallIn64BitMode=x64
SetupMutex=Global\HASS.Agent.Setup.Mutex,HASS.Agent.Setup.Mutex
AppMutex=Global\HASS.Agent.App.Mutex,HASS.Agent.App.Mutex
AppMutex=HASS.Agent.App.Mutex
AppId={{7BBED458-609B-4D13-AD9E-4FF219DF8644}
AppName={#MyAppName}
AppVersion={#MyAppVersion}
Expand All @@ -36,7 +32,7 @@ LicenseFile=..\..\LICENSE.md
InfoBeforeFile=.\BeforeInstallNotice.rtf
InfoAfterFile=.\AfterInstallNotice.rtf
; Uncomment the following line to run in non administrative install mode (install for current user only.)
;PrivilegesRequired=lowest
PrivilegesRequired=lowest
OutputDir=.\bin
OutputBaseFilename=HASS.Agent.Installer
SetupIconFile=..\HASS.Agent\HASS.Agent.Shared\hassagent.ico
Expand All @@ -57,38 +53,19 @@ Name: "desktopicon"; Description: "{cm:CreateDesktopIcon}"; GroupDescription: "{
; NOTE: Don't use "Flags: ignoreversion" on any shared system files
[Files]
; Client files
;Source: "..\HASS.Agent\HASS.Agent\bin\Publish-x64\Release\*"; Excludes: "*.pdb"; DestDir: "{app}"; Flags: ignoreversion recursesubdirs createallsubdirs
; Service files
;Source: "..\HASS.Agent\HASS.Agent.Satellite.Service\bin\Publish-x64\Release\*"; Excludes: "*.pdb"; DestDir: "{commonpf64}\{#MyAppName}\Service"; Flags: ignoreversion recursesubdirs createallsubdirs
Source: "..\HASS.Agent\HASS.Agent\bin\Publish-x64\Release\*"; DestDir: "{app}"; Flags: ignoreversion recursesubdirs createallsubdirs
; Service files
Source: "..\HASS.Agent\HASS.Agent.Satellite.Service\bin\Publish-x64\Release\*"; DestDir: "{commonpf64}\{#MyAppName}\Service"; Flags: ignoreversion recursesubdirs createallsubdirs
; Service installer
Source: ".\bin\HASS.Agent.Service.Installer.exe"; DestDir: "{tmp}"; Flags: ignoreversion

[Icons]
Name: "{autoprograms}\{#MyAppName}"; Filename: "{app}\{#MyAppExeName}"
Name: "{autodesktop}\{#MyAppName}"; Filename: "{app}\{#MyAppExeName}"; Tasks: desktopicon

[Run]
Filename: "{app}\{#MyAppExeName}"; Parameters: "compat_migrate"; Description: "Try to migrate configuration"; Flags: postinstall skipifsilent runascurrentuser unchecked
Filename: "{sys}\sc.exe"; Parameters: "start {#ServiceName}"; Description: "Start Satellite Service"; Flags: postinstall runhidden runascurrentuser
Filename: "{app}\{#MyAppExeName}"; Parameters: "compat_migrate"; Description: "Try to migrate configuration - use only once (administrative permissions required)"; Flags: postinstall skipifsilent runascurrentuser unchecked
Filename: "{tmp}\HASS.Agent.Service.Installer.exe"; Description: "Install Satellite Service (administrative permissions required)"; Flags: postinstall runascurrentuser
Filename: "{app}\{#MyAppExeName}"; Description: "{cm:LaunchProgram,{#StringChange(MyAppName, '&', '&&')}}"; Flags: postinstall skipifsilent nowait

[Registry]
Root: HKLM; Subkey: "SOFTWARE\HASSAgent\SatelliteService"; ValueType: string; ValueName: "InstallPath"; ValueData: "{commonpf64}\{#MyAppName}\Service"; Flags: createvalueifdoesntexist uninsdeletevalue

; Service registration and removal
[Run]
Filename: "{sys}\sc.exe"; Parameters: "create {#ServiceName} binpath= ""{commonpf64}\{#MyAppName}\Service\{#MyAppServiceExeName}"""; Flags: runhidden
Filename: "{sys}\sc.exe"; Parameters: "failure {#ServiceName} reset= 86400 actions= restart/60000/restart/60000//1000"; Flags: runhidden
Filename: "{sys}\sc.exe"; Parameters: "description {#ServiceName} ""{#ServiceDescription}"""; Flags: runhidden
Filename: "{sys}\sc.exe"; Parameters: "config {#ServiceName} DisplayName= ""{#ServiceDisplayName}"""; Flags: runhidden
Filename: "{sys}\sc.exe"; Parameters: "config {#ServiceName} start= auto"; Flags: runhidden
[UninstallRun]
Filename: "{sys}\sc.exe"; Parameters: "stop {#ServiceName}"; RunOnceId: StopService; Flags: runhidden
Filename: "{sys}\sc.exe"; Parameters: "delete {#ServiceName}" ; RunOnceId: DeleteService; Flags: runhidden
; Additional delay for the service to be uninstalled
Filename: "{sys}\timeout.exe"; Parameters: "5"; Flags:runhidden

[Code]
function InitializeSetup: Boolean;
begin
Expand Down Expand Up @@ -118,3 +95,20 @@ begin
Result := True;
end
end;

procedure CurUninstallStepChanged (CurUninstallStep: TUninstallStep);
var
mres : integer;
serviceUninstallerPath : String;
ResultCode : integer;
begin
case CurUninstallStep of
usPostUninstall:
begin
mres := MsgBox('Do you want to uninstall the Satellite Service? (administrative permissions required)', mbConfirmation, MB_YESNO or MB_DEFBUTTON2)
if mres = IDYES then
RegQueryStringValue(HKLM, 'SOFTWARE\HASSAgent\SatelliteService', 'InstallPath', serviceUninstallerPath);
Exec(serviceUninstallerPath + '\unins000.exe', '', '', SW_SHOW, ewWaitUntilTerminated, ResultCode);
end;
end;
end;
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,8 @@ internal static class CommandsManager
private static bool _active = true;
private static bool _pause;

private static bool _discoveryPublished = false;

private static DateTime _lastAutoDiscoPublish = DateTime.MinValue;

/// <summary>
Expand Down Expand Up @@ -122,20 +124,22 @@ private static async void Process()
// do we have commands?
if (!CommandsPresent()) continue;

// publish availability & sensor autodisco's every 30 sec
// publish availability & autodiscovery every 30 sec
if ((DateTime.Now - _lastAutoDiscoPublish).TotalSeconds > 30)
{
// let hass know we're still here
await Variables.MqttManager.AnnounceAvailabilityAsync();

// publish command autodisco's
foreach (var command in Variables.Commands.TakeWhile(_ => !_pause).TakeWhile(_ => _active))
if (!_discoveryPublished)
{
if (_pause || Variables.MqttManager.GetStatus() != MqttStatus.Connected) continue;
await command.PublishAutoDiscoveryConfigAsync();
foreach (var command in Variables.Commands.TakeWhile(_ => !_pause).TakeWhile(_ => _active))
{
if (_pause || Variables.MqttManager.GetStatus() != MqttStatus.Connected) continue;
await command.PublishAutoDiscoveryConfigAsync();
}

_discoveryPublished = true;
}

// are we subscribed?
if (!_subscribed)
{
foreach (var command in Variables.Commands.TakeWhile(_ => !_pause).TakeWhile(_ => _active))
Expand All @@ -146,7 +150,6 @@ private static async void Process()
_subscribed = true;
}

// log moment
_lastAutoDiscoPublish = DateTime.Now;
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -108,7 +108,11 @@ public static ConfiguredSensor ConvertToConfiguredSensor(this RpcConfiguredServe
Counter = rpcConfiguredSensor.Counter,
Instance = rpcConfiguredSensor.Instance,
EntityName = rpcConfiguredSensor.EntityName,
Name = rpcConfiguredSensor.Name
Name = rpcConfiguredSensor.Name,
AdvancedSettings = rpcConfiguredSensor.AdvancedSettings,
IgnoreAvailability = rpcConfiguredSensor.IgnoreAvailability,
ApplyRounding = rpcConfiguredSensor.ApplyRounding,
Round = rpcConfiguredSensor.RoundValue,
};

return configuredSensor;
Expand Down Expand Up @@ -149,7 +153,11 @@ public static RpcConfiguredServerSensor ConvertToRpcConfiguredSensor(this Config
Counter = configuredSensor.Counter ?? string.Empty,
Instance = configuredSensor.Instance ?? string.Empty,
Name = configuredSensor.Name ?? string.Empty,
EntityName = configuredSensor?.EntityName ?? string.Empty
EntityName = configuredSensor?.EntityName ?? string.Empty,
AdvancedSettings = configuredSensor?.AdvancedSettings ?? string.Empty,
IgnoreAvailability = configuredSensor?.IgnoreAvailability ?? false,
ApplyRounding = configuredSensor?.ApplyRounding ?? false,
RoundValue = configuredSensor?.Round ?? 0,
};

return configuredRpcSensor;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@
<UserSecretsId>dotnet-HASSAgentSatelliteService-6E4FA50A-3AC9-4E66-8671-9FAB92372154</UserSecretsId>
<PlatformTarget>x64</PlatformTarget>
<Platforms>x64;x86</Platforms>
<Version>2.0.1</Version>
<Version>2.1.0-beta3</Version>
<Company>HASS.Agent Team</Company>
<Product>HASS.Agent Satellite Service</Product>
<AssemblyName>HASS.Agent.Satellite.Service</AssemblyName>
Expand All @@ -17,9 +17,9 @@
<PackageProjectUrl>https://github.com/hass-agent/HASS.Agent</PackageProjectUrl>
<RepositoryUrl>https://github.com/hass-agent/HASS.Agent</RepositoryUrl>
<PackageIcon>hass.png</PackageIcon>
<AssemblyVersion>2.0.1</AssemblyVersion>
<AssemblyVersion>2.1.0</AssemblyVersion>
<ApplicationIcon>hass.ico</ApplicationIcon>
<FileVersion>2.0.1</FileVersion>
<FileVersion>2.1.0</FileVersion>
<SupportedOSPlatformVersion>10.0.17763.0</SupportedOSPlatformVersion>
<IncludeSourceRevisionInInformationalVersion>false</IncludeSourceRevisionInInformationalVersion>
</PropertyGroup>
Expand All @@ -29,22 +29,22 @@
</ItemGroup>

<ItemGroup>
<PackageReference Include="Google.Protobuf" Version="3.25.0" />
<PackageReference Include="Google.Protobuf" Version="3.25.3" />
<PackageReference Include="Grpc" Version="2.46.6" />
<PackageReference Include="Grpc.Core.Api" Version="2.59.0" />
<PackageReference Include="Grpc.Tools" Version="2.59.0">
<PackageReference Include="Grpc.Core.Api" Version="2.61.0" />
<PackageReference Include="Grpc.Tools" Version="2.62.0">
<PrivateAssets>all</PrivateAssets>
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
</PackageReference>
<PackageReference Include="Microsoft.Extensions.Hosting" Version="8.0.0" />
<PackageReference Include="Microsoft.Extensions.Hosting.WindowsServices" Version="8.0.0" />
<PackageReference Include="MQTTnet" Version="4.3.1.873" />
<PackageReference Include="MQTTnet.Extensions.ManagedClient" Version="4.3.1.873" />
<PackageReference Include="MQTTnet" Version="4.3.3.952" />
<PackageReference Include="MQTTnet.Extensions.ManagedClient" Version="4.3.3.952" />
<PackageReference Include="Serilog" Version="3.1.1" />
<PackageReference Include="Serilog.Extensions.Hosting" Version="7.0.0" />
<PackageReference Include="Serilog.Extensions.Logging" Version="7.0.0" />
<PackageReference Include="Serilog.Extensions.Hosting" Version="8.0.0" />
<PackageReference Include="Serilog.Extensions.Logging" Version="8.0.0" />
<PackageReference Include="Serilog.Sinks.Async" Version="1.5.0" />
<PackageReference Include="Serilog.Sinks.Console" Version="5.0.0" />
<PackageReference Include="Serilog.Sinks.Console" Version="5.0.1" />
<PackageReference Include="Serilog.Sinks.File" Version="5.0.0" />
<PackageReference Include="System.Configuration.ConfigurationManager" Version="8.0.0" />
<PackageReference Include="System.IO.Pipes.AccessControl" Version="5.0.0" />
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -134,6 +134,10 @@ message RpcConfiguredServerSensor {
string instance = 9;
string name = 10;
string entityName = 11;
string advancedSettings = 12;
bool applyRounding = 13;
int32 roundValue = 14;
bool ignoreAvailability = 15;
}

message RpcConfiguredServerCommand {
Expand Down
Loading