From 8e036218a0659eb2ab9ed3752cab211e7d8080a4 Mon Sep 17 00:00:00 2001 From: Dirk Alders Date: Sun, 15 Jan 2023 20:21:32 +0100 Subject: [PATCH] Bath radiator boost on Circulation pump; simulation updated --- __simulation__/devices.py | 2 +- __simulation__/rooms.py | 22 +++++++++++++++++++++- function/__init__.py | 2 ++ 3 files changed, 24 insertions(+), 2 deletions(-) diff --git a/__simulation__/devices.py b/__simulation__/devices.py index 5795245..f8b40f7 100644 --- a/__simulation__/devices.py +++ b/__simulation__/devices.py @@ -829,7 +829,7 @@ class gui_radiator_valve(base): except TypeError: value = 0 perc = 0 - print_percent(COLOR_GUI_ACTIVE, 'T', perc, "%4.1fmin" % value, self.topic, "(Timer)") + print_percent(COLOR_GUI_ACTIVE, 't', perc, "%4.1fmin" % value, self.topic, "(Timer)") elif key == self.KEY_TEMPERATURE: perc = 100 * (value - self.TEMP_RANGE[0]) / (self.TEMP_RANGE[1] - self.TEMP_RANGE[0]) perc = 100 if perc > 100 else perc diff --git a/__simulation__/rooms.py b/__simulation__/rooms.py index 01cf8d2..b731725 100644 --- a/__simulation__/rooms.py +++ b/__simulation__/rooms.py @@ -56,6 +56,8 @@ class gfw_marion(base): self.gui_main_light = gui_light(mqtt_client, config.TOPIC_GFW_MARION_MAIN_LIGHT_GUI, True, False, False) self.main_light = shelly(mqtt_client, config.TOPIC_GFW_MARION_MAIN_LIGHT_SHELLY, input_0_func=shelly.INPUT_FUNC_OUT1_TRIGGER) self.main_light.add_channel_name(shelly.KEY_OUTPUT_0, "Main Light") + self.radiator_valve = brennenstuhl_radiator_valve(mqtt_client, config.TOPIC_GFW_MARION_RADIATOR_VALVE_ZIGBEE) + self.gui_radiator_valve = gui_radiator_valve(mqtt_client, config.TOPIC_GFW_MARION_RADIATOR_VALVE_GUI) class gfw_dirk(base): @@ -87,6 +89,9 @@ class gfw_dirk(base): self.led_array.add_channel_name(gui_led_array.KEY_LED_0, "Main Light") self.led_array.add_channel_name(gui_led_array.KEY_LED_1, "Desk Light") self.led_array.add_channel_name(gui_led_array.KEY_LED_2, "Amplifier") + # + self.radiator_valve = brennenstuhl_radiator_valve(mqtt_client, config.TOPIC_GFW_DIRK_RADIATOR_VALVE_ZIGBEE) + self.gui_radiator_valve = gui_radiator_valve(mqtt_client, config.TOPIC_GFW_DIRK_RADIATOR_VALVE_GUI) class gfw(base): @@ -108,15 +113,30 @@ class ffw_julian(base): class ffw_livingroom(base): def __init__(self, mqtt_client): - self.gui_main_light = gui_light(mqtt_client, config.TOPIC_FFW_LIVINGROOM_MAIN_LIGHT_GUI, True, False, False) + self.gui_main_light = gui_light(mqtt_client, config.TOPIC_FFW_LIVINGROOM_MAIN_LIGHT_GUI, True, True, True) self.main_light = shelly(mqtt_client, config.TOPIC_FFW_LIVINGROOM_MAIN_LIGHT_SHELLY, input_0_func=shelly.INPUT_FUNC_OUT1_TRIGGER) self.main_light.add_channel_name(shelly.KEY_OUTPUT_0, "Main Light") +class ffw_sleep(base): + def __init__(self, mqtt_client): + self.gui_main_light = gui_light(mqtt_client, config.TOPIC_FFW_SLEEP_MAIN_LIGHT_GUI, True, True, False) + self.main_light = shelly(mqtt_client, config.TOPIC_FFW_SLEEP_MAIN_LIGHT_SHELLY, input_0_func=shelly.INPUT_FUNC_OUT1_TRIGGER) + self.main_light.add_channel_name(shelly.KEY_OUTPUT_0, "Main Light") + + +class ffw_bath(base): + def __init__(self, mqtt_client): + self.radiator_valve = brennenstuhl_radiator_valve(mqtt_client, config.TOPIC_FFW_BATH_RADIATOR_VALVE_ZIGBEE) + self.gui_radiator_valve = gui_radiator_valve(mqtt_client, config.TOPIC_FFW_BATH_RADIATOR_VALVE_GUI) + + class ffw(base): def __init__(self, mqtt_client): self.julian = ffw_julian(mqtt_client) self.livingroom = ffw_livingroom(mqtt_client) + self.sleep = ffw_sleep(mqtt_client) + self.bath = ffw_bath(mqtt_client) class ffe_floor(base): diff --git a/function/__init__.py b/function/__init__.py index c994791..c3b0bd0 100644 --- a/function/__init__.py +++ b/function/__init__.py @@ -109,6 +109,8 @@ class all_functions(object): # tradfri button ffe_sleep right click self.ffe_sleep.button_tradfri.add_callback(devices.tradfri_button.KEY_ACTION, devices.tradfri_button.ACTION_RIGHT, self.ffe_floor.main_light_shelly.toggle_output_0_mcb) + self.ffe_kitchen.circulation_pump.main_light_shelly.add_callback( + devices.shelly.KEY_OUTPUT_0, True, self.ffw_bath.radiator_function.boost, True) def gfw_dirk_input_1(self, device, key, data): if self.last_gfw_dirk_input_1 is not None: