From a54773d3aebe9873d0ad51aebd76973410b71835 Mon Sep 17 00:00:00 2001 From: atse Date: Fri, 11 Aug 2023 16:08:50 +0800 Subject: [PATCH] Add proper set_fan and get_fan coroutine methods --- pytec/pytec/aioclient.py | 12 ++++++++---- pytec/tec_qt.py | 12 ++++++------ 2 files changed, 14 insertions(+), 10 deletions(-) diff --git a/pytec/pytec/aioclient.py b/pytec/pytec/aioclient.py index 5fa0e78..8bf004b 100644 --- a/pytec/pytec/aioclient.py +++ b/pytec/pytec/aioclient.py @@ -160,6 +160,10 @@ class Client: """ return await self._get_conf("postfilter") + async def get_fan(self): + """Get Thermostat current fan settings""" + return await self._command("fan") + async def report(self): """Obtain one-time report on measurement values""" return await self._command("report") @@ -219,6 +223,10 @@ class Client: value = str(value) await self._command(topic, str(channel), field, value) + async def set_fan(self, power="auto"): + """Set fan power""" + await self._command("fan", str(power)) + async def power_up(self, channel, target): """Start closed-loop mode""" await self.set_param("pid", channel, "target", value=target) @@ -236,10 +244,6 @@ class Client: """Get Thermostat hardware revision""" return await self._command("hwrev") - async def fan(self): - """Get Thermostat current fan settings""" - return await self._command("fan") - async def reset(self): """Reset the Thermostat diff --git a/pytec/tec_qt.py b/pytec/tec_qt.py index e8c097f..e154924 100644 --- a/pytec/tec_qt.py +++ b/pytec/tec_qt.py @@ -111,7 +111,7 @@ class ClientWatcher(QObject): await asyncio.sleep(self.update_s - (loop.time() - time)) async def update_params(self): - self.fan_update.emit(await self.client.fan()) + self.fan_update.emit(await self.client.get_fan()) self.pwm_update.emit(await self.client.get_pwm()) if self.poll_for_report: self.report_update.emit(await self.client.report()) @@ -486,7 +486,7 @@ class MainWindow(QtWidgets.QMainWindow, Ui_MainWindow): self.hw_rev_data = await self.client.hw_rev() self._status(self.hw_rev_data) self.client_watcher.start_watching() - self.fan_update(await self.client.fan()) + self.fan_update(await self.client.get_fan()) # await self.client.set_param("fan", 1) else: self.status_lbl.setText("Disconnected") @@ -532,7 +532,7 @@ class MainWindow(QtWidgets.QMainWindow, Ui_MainWindow): if self.fan_auto_box.isChecked(): with QSignalBlocker(self.fan_auto_box): self.fan_auto_box.setChecked(False) - await self.client.set_param("fan", value) + await self.client.set_fan(value) if not self.hw_rev_data["settings"]["fan_pwm_recommended"]: self._set_fan_pwm_warning() @@ -541,10 +541,10 @@ class MainWindow(QtWidgets.QMainWindow, Ui_MainWindow): if not self.client.connected(): return if enabled: - await self.client.set_param("fan", "auto") - self.fan_update(await self.client.fan()) + await self.client.set_fan("auto") + self.fan_update(await self.client.get_fan()) else: - await self.client.set_param("fan", self.fan_power_slider.value()) + await self.client.set_fan(self.fan_power_slider.value()) @asyncSlot(int) async def on_report_box_stateChanged(self, enabled):