forked from M-Labs/thermostat
fan_update: tec_qt to thermostat_ctrl_menu
This commit is contained in:
parent
9ede52de93
commit
4907678d53
@ -1,3 +1,4 @@
|
|||||||
|
import logging
|
||||||
from PyQt6 import QtWidgets, QtGui, QtCore
|
from PyQt6 import QtWidgets, QtGui, QtCore
|
||||||
from PyQt6.QtCore import pyqtSignal, pyqtSlot, QSignalBlocker
|
from PyQt6.QtCore import pyqtSignal, pyqtSlot, QSignalBlocker
|
||||||
from qasync import asyncSlot
|
from qasync import asyncSlot
|
||||||
@ -45,6 +46,7 @@ class ThermostatCtrlMenu(QtWidgets.QMenu):
|
|||||||
|
|
||||||
self.fan_power_slider.valueChanged.connect(self.fan_set_request)
|
self.fan_power_slider.valueChanged.connect(self.fan_set_request)
|
||||||
self.fan_auto_box.stateChanged.connect(self.fan_auto_set_request)
|
self.fan_auto_box.stateChanged.connect(self.fan_auto_set_request)
|
||||||
|
self._thermostat.fan_update.connect(self.fan_update)
|
||||||
|
|
||||||
self.fan_lbl.setToolTip("Adjust the fan")
|
self.fan_lbl.setToolTip("Adjust the fan")
|
||||||
self.fan_lbl.setText("Fan:")
|
self.fan_lbl.setText("Fan:")
|
||||||
@ -125,6 +127,20 @@ class ThermostatCtrlMenu(QtWidgets.QMenu):
|
|||||||
self.actionAbout_Thermostat.triggered.connect(about_thermostat)
|
self.actionAbout_Thermostat.triggered.connect(about_thermostat)
|
||||||
self.addAction(self.actionAbout_Thermostat)
|
self.addAction(self.actionAbout_Thermostat)
|
||||||
|
|
||||||
|
@pyqtSlot("QVariantMap")
|
||||||
|
def fan_update(self, fan_settings):
|
||||||
|
logging.debug(fan_settings)
|
||||||
|
if fan_settings is None:
|
||||||
|
return
|
||||||
|
with QSignalBlocker(self.fan_power_slider):
|
||||||
|
self.fan_power_slider.setValue(
|
||||||
|
fan_settings["fan_pwm"] or 100 # 0 = PWM off = full strength
|
||||||
|
)
|
||||||
|
with QSignalBlocker(self.fan_auto_box):
|
||||||
|
self.fan_auto_box.setChecked(fan_settings["auto_mode"])
|
||||||
|
if not self.hw_rev_data["settings"]["fan_pwm_recommended"]:
|
||||||
|
self.set_fan_pwm_warning()
|
||||||
|
|
||||||
def set_fan_pwm_warning(self):
|
def set_fan_pwm_warning(self):
|
||||||
if self.fan_power_slider.value() != 100:
|
if self.fan_power_slider.value() != 100:
|
||||||
pixmapi = getattr(QtWidgets.QStyle.StandardPixmap, "SP_MessageBoxWarning")
|
pixmapi = getattr(QtWidgets.QStyle.StandardPixmap, "SP_MessageBoxWarning")
|
||||||
|
@ -108,7 +108,6 @@ class MainWindow(QtWidgets.QMainWindow):
|
|||||||
self.zero_limits_warning.set_limits_warning
|
self.zero_limits_warning.set_limits_warning
|
||||||
)
|
)
|
||||||
|
|
||||||
self.thermostat.fan_update.connect(self.fan_update)
|
|
||||||
self.thermostat.report_update.connect(self.autotuners.tick)
|
self.thermostat.report_update.connect(self.autotuners.tick)
|
||||||
self.thermostat.report_update.connect(self.pid_autotune_handler)
|
self.thermostat.report_update.connect(self.pid_autotune_handler)
|
||||||
self.thermostat.interval_update.connect(
|
self.thermostat.interval_update.connect(
|
||||||
@ -200,20 +199,6 @@ class MainWindow(QtWidgets.QMainWindow):
|
|||||||
f"Connected to Thermostat v{hw_rev_d['rev']['major']}.{hw_rev_d['rev']['minor']}"
|
f"Connected to Thermostat v{hw_rev_d['rev']['major']}.{hw_rev_d['rev']['minor']}"
|
||||||
)
|
)
|
||||||
|
|
||||||
@pyqtSlot("QVariantMap")
|
|
||||||
def fan_update(self, fan_settings):
|
|
||||||
logging.debug(fan_settings)
|
|
||||||
if fan_settings is None:
|
|
||||||
return
|
|
||||||
with QSignalBlocker(self.thermostat_ctrl_menu.fan_power_slider):
|
|
||||||
self.thermostat_ctrl_menu.fan_power_slider.setValue(
|
|
||||||
fan_settings["fan_pwm"] or 100 # 0 = PWM off = full strength
|
|
||||||
)
|
|
||||||
with QSignalBlocker(self.thermostat_ctrl_menu.fan_auto_box):
|
|
||||||
self.thermostat_ctrl_menu.fan_auto_box.setChecked(fan_settings["auto_mode"])
|
|
||||||
if not self.hw_rev_data["settings"]["fan_pwm_recommended"]:
|
|
||||||
self.thermostat_ctrl_menu.set_fan_pwm_warning()
|
|
||||||
|
|
||||||
@asyncSlot(int)
|
@asyncSlot(int)
|
||||||
async def on_report_box_stateChanged(self, enabled):
|
async def on_report_box_stateChanged(self, enabled):
|
||||||
await self.thermostat.set_report_mode(enabled)
|
await self.thermostat.set_report_mode(enabled)
|
||||||
|
Loading…
Reference in New Issue
Block a user