Skip to content

Commit b538989

Browse files
committed
Cleaned up some implementation to get updated publishes on change
1 parent 31f1674 commit b538989

File tree

1 file changed

+14
-5
lines changed

1 file changed

+14
-5
lines changed

src/HomeAutio.Mqtt.Ecobee/EcobeeMqttService.cs

Lines changed: 14 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -74,7 +74,7 @@ await GetInitialStatusAsync()
7474
}
7575

7676
_refresh = new System.Timers.Timer();
77-
_refresh.Elapsed += RefreshAsync;
77+
_refresh.Elapsed += async (sender, e) => await RefreshAsync();
7878
_refresh.Interval = _refreshInterval;
7979
_refresh.Start();
8080
}
@@ -136,6 +136,8 @@ protected override async void Mqtt_MqttMsgPublishReceived(MqttApplicationMessage
136136
var desiredCoolResponse = await _client.PostAsync<ThermostatUpdateRequest, Response>(request)
137137
.ConfigureAwait(false);
138138
_log.LogInformation($"{request.Uri} response: ({desiredCoolResponse.Status.Code}) {desiredCoolResponse.Status.Message}");
139+
140+
await RefreshAsync();
139141
}
140142

141143
break;
@@ -157,11 +159,13 @@ protected override async void Mqtt_MqttMsgPublishReceived(MqttApplicationMessage
157159
var desiredFanModeResponse = await _client.PostAsync<ThermostatUpdateRequest, Response>(request)
158160
.ConfigureAwait(false);
159161
_log.LogInformation($"{request.Uri} response: ({desiredFanModeResponse.Status.Code}) {desiredFanModeResponse.Status.Message}");
162+
163+
await RefreshAsync();
160164
}
161165

162166
break;
163167
case "desiredHeat/set":
164-
if (int.TryParse(message, out int desiredHeatValue) && int.TryParse(_thermostatStatus[thermostatId].Status["desiredHeat"], out int currentDesiredCoolValue))
168+
if (int.TryParse(message, out int desiredHeatValue) && int.TryParse(_thermostatStatus[thermostatId].Status["desiredCool"], out int currentDesiredCoolValue))
165169
{
166170
request.Functions = new List<Function>
167171
{
@@ -179,6 +183,8 @@ protected override async void Mqtt_MqttMsgPublishReceived(MqttApplicationMessage
179183
var desiredHeatResponse = await _client.PostAsync<ThermostatUpdateRequest, Response>(request)
180184
.ConfigureAwait(false);
181185
_log.LogInformation($"{request.Uri} response: ({desiredHeatResponse.Status.Code}) {desiredHeatResponse.Status.Message}");
186+
187+
await RefreshAsync();
182188
}
183189

184190
break;
@@ -205,6 +211,8 @@ protected override async void Mqtt_MqttMsgPublishReceived(MqttApplicationMessage
205211
var setHoldResponse = await _client.PostAsync<ThermostatUpdateRequest, Response>(request)
206212
.ConfigureAwait(false);
207213
_log.LogInformation($"{request.Uri} response: ({setHoldResponse.Status.Code}) {setHoldResponse.Status.Message}");
214+
215+
await RefreshAsync();
208216
}
209217
catch (JsonException ex)
210218
{
@@ -219,6 +227,8 @@ protected override async void Mqtt_MqttMsgPublishReceived(MqttApplicationMessage
219227
var hvacModeResponse = await _client.PostAsync<ThermostatUpdateRequest, Response>(request)
220228
.ConfigureAwait(false);
221229
_log.LogInformation($"{request.Uri} response: ({hvacModeResponse.Status.Code}) {hvacModeResponse.Status.Message}");
230+
231+
await RefreshAsync();
222232
}
223233

224234
break;
@@ -236,9 +246,8 @@ protected override async void Mqtt_MqttMsgPublishReceived(MqttApplicationMessage
236246
/// Heartbeat ping. Failure will result in the heartbeat being stopped, which will
237247
/// make any future calls throw an exception as the heartbeat indicator will be disabled.
238248
/// </summary>
239-
/// <param name="sender">Event sender.</param>
240-
/// <param name="e">Event args.</param>
241-
private async void RefreshAsync(object sender, ElapsedEventArgs e)
249+
/// <returns>>A <see cref="Task"/> representing the asynchronous operation.</returns>
250+
private async Task RefreshAsync()
242251
{
243252
// Get current revision status
244253
var summaryRequest = new ThermostatSummaryRequest { Selection = new Selection { SelectionType = "registered" } };

0 commit comments

Comments
 (0)