bug-fix: radiator function
This commit is contained in:
parent
045e270a6b
commit
7b0ada6f41
@ -744,15 +744,6 @@ class nodered_gui_radiator(nodered_gui_timer):
|
||||
#
|
||||
RX_KEYS = [KEY_TEMPERATURE, KEY_SETPOINT_TEMP, KEY_SETPOINT_TO_DEFAULT, KEY_BOOST, KEY_AWAY, KEY_SUMMER]
|
||||
|
||||
def __init__(self, mqtt_client, topic):
|
||||
super().__init__(mqtt_client, topic)
|
||||
self[self.KEY_ENABLE] = True
|
||||
self.add_callback(self.KEY_AWAY, None, self.enable_gui)
|
||||
self.add_callback(self.KEY_SUMMER, None, self.enable_gui)
|
||||
|
||||
def enable_gui(self, device, key, data):
|
||||
self.pack(self.KEY_ENABLE, not self.get(self.KEY_AWAY) and not self.get(self.KEY_SUMMER))
|
||||
|
||||
#
|
||||
# TX
|
||||
#
|
||||
@ -788,6 +779,14 @@ class nodered_gui_radiator(nodered_gui_timer):
|
||||
self.logger.debug("Sending %s with content %s", key, str(data))
|
||||
self.set_summer(data)
|
||||
|
||||
def set_enable(self, data):
|
||||
"""data: [True, False]"""
|
||||
self.pack(self.KEY_ENABLE, data)
|
||||
|
||||
def set_enable_mcb(self, device, key, data):
|
||||
self.logger.debug("Sending %s with content %s", key, str(data))
|
||||
self.set_enable(data)
|
||||
|
||||
|
||||
class brennenstuhl_heatingvalve(base):
|
||||
KEY_LINKQUALITY = "linkquality"
|
||||
|
@ -178,30 +178,34 @@ class radiator_function(object):
|
||||
self.boost_timer = None
|
||||
self.gui_heating.set_timer('-')
|
||||
|
||||
def update_states(self, away_mode=None, summer_mode=None):
|
||||
if away_mode is not None:
|
||||
self.__away_mode__ = away_mode
|
||||
if summer_mode is not None:
|
||||
self.__summer_mode__ = summer_mode
|
||||
self.gui_heating.set_away(self.__away_mode__)
|
||||
self.gui_heating.set_summer(self.__summer_mode__)
|
||||
self.gui_heating.set_enable(not self.__away_mode__ and not self.__summer_mode__)
|
||||
|
||||
def away_mode(self, device, key, value):
|
||||
self.__away_mode__ = value
|
||||
self.gui_heating.set_away(value)
|
||||
if value is True:
|
||||
self.__summer_mode__ = False
|
||||
self.gui_heating.set_summer(False)
|
||||
self.cancel_boost()
|
||||
self.update_states(away_mode=value, summer_mode=False)
|
||||
self.heating_valve.set_heating_setpoint(self.default_temperature - self.AWAY_REDUCTION)
|
||||
else:
|
||||
self.update_states(away_mode=value)
|
||||
self.heating_valve.set_heating_setpoint(self.default_temperature)
|
||||
|
||||
def summer_mode(self, device, key, value):
|
||||
self.__summer_mode__ = value
|
||||
self.gui_heating.set_summer(value)
|
||||
if value is True:
|
||||
self.__away_mode__ = False
|
||||
self.gui_heating.set_away(False)
|
||||
self.cancel_boost()
|
||||
self.update_states(away_mode=False, summer_mode=value)
|
||||
self.heating_valve.set_heating_setpoint(self.SUMMER_TEMPERATURE)
|
||||
else:
|
||||
self.update_states(summer_mode=value)
|
||||
self.heating_valve.set_heating_setpoint(self.default_temperature)
|
||||
|
||||
def boost(self, device, key, data):
|
||||
self.cancel_boost()
|
||||
if self.boost_timer is None:
|
||||
self.heating_valve.logger.info('Starting boost mode with setpoint %.1f°C.', self.BOOST_TEMPERATURE)
|
||||
self.boost_timer = 15*60
|
||||
@ -210,19 +214,18 @@ class radiator_function(object):
|
||||
self.boost_timer += 15 * 60
|
||||
if self.boost_timer > 60 * 60:
|
||||
self.boost_timer = 60 * 60
|
||||
self.update_states(away_mode=False, summer_mode=False)
|
||||
|
||||
def setpoint_to_default(self, device, key, data):
|
||||
self.heating_valve.set_heating_setpoint(self.default_temperature)
|
||||
self.set_heating_setpoint(device, key, self.default_temperature)
|
||||
|
||||
def set_heating_setpoint(self, device, key, data):
|
||||
self.cancel_boost()
|
||||
self.heating_valve.set_heating_setpoint(data)
|
||||
self.cancel_boost()
|
||||
self.update_states(away_mode=False, summer_mode=False)
|
||||
|
||||
def get_radiator_setpoint(self, device, key, data):
|
||||
self.gui_heating.set_setpoint_temperature(data)
|
||||
if self.__away_mode__:
|
||||
self.away_mode(device, self.gui_heating.KEY_AWAY, True)
|
||||
if self.__summer_mode__:
|
||||
self.summer_mode(device, self.gui_heating.KEY_SUMMER, True)
|
||||
self.update_states()
|
||||
if self.boost_timer is None and not self.__away_mode__ and not self.__summer_mode__:
|
||||
self.regular_temp_setpoint = data
|
||||
|
Loading…
x
Reference in New Issue
Block a user