Skip to content

Commit 98ce6e3

Browse files
committed
Removed RestSharp dependency
1 parent d5accaa commit 98ce6e3

File tree

2 files changed

+13
-13
lines changed

2 files changed

+13
-13
lines changed

FanControl.HomeAssistant/FanControl.HomeAssistant.csproj

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
<Project Sdk="Microsoft.NET.Sdk">
22

33
<PropertyGroup>
4-
<TargetFramework>net48</TargetFramework>
4+
<TargetFrameworks>netstandard2.0;net48;net7.0;net8.0</TargetFrameworks>
55
</PropertyGroup>
66

77
<ItemGroup>
@@ -12,7 +12,7 @@
1212

1313
<ItemGroup>
1414
<PackageReference Include="Newtonsoft.Json" Version="13.0.3" />
15-
<PackageReference Include="RestSharp" Version="110.1.0" />
15+
<PackageReference Include="System.Net.Http" Version="4.3.4" />
1616
</ItemGroup>
1717

1818
</Project>

FanControl.HomeAssistant/HomeAssistantSensor.cs

Lines changed: 11 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
using FanControl.Plugins;
2-
using RestSharp;
32
using Newtonsoft.Json;
3+
using System.Net.Http;
44

55
namespace FanControl.HomeAssistant
66
{
@@ -14,6 +14,7 @@ public class HomeAssistantSensor : IPluginSensor
1414
private HomeAssistantSensorConfig _hassSensorConfig;
1515
private IPluginLogger _logger;
1616
private long _cycle = 0;
17+
private HttpClient _httpClient;
1718

1819
internal HomeAssistantSensor(HomeAssistantSensorConfig hassSensorConfig, HomeAssistantConfig hassConfig, IPluginLogger logger)
1920
{
@@ -30,6 +31,10 @@ internal HomeAssistantSensor(HomeAssistantSensorConfig hassSensorConfig, HomeAss
3031
_logger.Log(HomeAssistantPlugin.LOG_PREFIX + $"Error: Configured polling interval of {_hassSensorConfig.PollingInterval} seconds for sensor {_hassSensorConfig.EntityId} is invalid. Falling back to default value of {HomeAssistantSensorConfig.POLLING_INTERVAL_DEFAULT}.");
3132
_hassSensorConfig.PollingInterval = HomeAssistantSensorConfig.POLLING_INTERVAL_DEFAULT;
3233
}
34+
35+
_httpClient = new HttpClient();
36+
_httpClient.DefaultRequestHeaders.Add("Authorization", "Bearer " + _hassConfig.HomeAssistantAuthToken);
37+
_httpClient.BaseAddress = new System.Uri(_hassConfig.HomeAssistantURL);
3338
}
3439

3540
public string Name { get; }
@@ -68,7 +73,7 @@ private class HassEntityAttributes
6873
/// <summary>
6974
/// HomeAssistant REST API Response structure
7075
/// </summary>
71-
private class HassTemperatureSesnorResponse
76+
private class HassTemperatureSensorResponse
7277
{
7378
public float state { get; set; }
7479
public string entity_id { get; set; }
@@ -117,19 +122,14 @@ private async void _poll_data()
117122
}
118123
*/
119124

120-
// get the state from the REST API
121-
var client = new RestClient(_hassConfig.HomeAssistantURL);
122-
client.AddDefaultHeader("Authorization", "Bearer " + _hassConfig.HomeAssistantAuthToken);
123-
var request = new RestRequest("api/states/{EntityId}", Method.Get);
124-
request.AddUrlSegment("EntityId", Id);
125-
var response = await client.ExecuteAsync(request);
125+
HttpResponseMessage response = await _httpClient.GetAsync($"api/states/{Id}");
126126
var resp_code = (int)response.StatusCode;
127127

128128
// Handle response based on code.
129129
if (resp_code == 200)
130130
{
131-
string rawResponse = response.Content;
132-
HassTemperatureSesnorResponse sensorData = JsonConvert.DeserializeObject<HassTemperatureSesnorResponse>(rawResponse);
131+
string rawResponse = await response.Content.ReadAsStringAsync();
132+
HassTemperatureSensorResponse sensorData = JsonConvert.DeserializeObject<HassTemperatureSensorResponse>(rawResponse);
133133
Value = sensorData.state;
134134
}
135135
else
@@ -141,7 +141,7 @@ private async void _poll_data()
141141
catch (System.Exception e)
142142
{
143143
_logger.Log(HomeAssistantPlugin.LOG_PREFIX + $"Error polling state of {Id} -> {e.Message}");
144-
_logger.Log(HomeAssistantPlugin.LOG_PREFIX + e.StackTrace);
144+
_logger.Log(HomeAssistantPlugin.LOG_PREFIX + e.ToString());
145145
}
146146

147147
}

0 commit comments

Comments
 (0)