From 6d4fb074376cfecc807ab1a6d587a6b647e4d6be Mon Sep 17 00:00:00 2001
From: Jan Grewe <jan@faked.org>
Date: Mon, 8 Apr 2024 10:52:07 +0200
Subject: [PATCH] add humidifier min/max thresholds

---
 packages/humidifier_scripts.yaml  |  4 ++--
 packages/humidifier_settings.yaml | 25 +++++++++++++++++++++++++
 propbox.yaml                      | 27 ++++++++++++++-------------
 3 files changed, 41 insertions(+), 15 deletions(-)
 create mode 100644 packages/humidifier_settings.yaml

diff --git a/packages/humidifier_scripts.yaml b/packages/humidifier_scripts.yaml
index 4c60e35..6228468 100644
--- a/packages/humidifier_scripts.yaml
+++ b/packages/humidifier_scripts.yaml
@@ -4,14 +4,14 @@ script:
       - lambda: |-
           if (
             !id(humidifier).state && 
-            id(bme280_humidity).state < atoi(id(humidity_min).state.c_str()) + atoi(id(humidity_hysteresis).state.c_str())
+            id(bme280_humidity).state < atoi(id(humidifier_min).state.c_str())
           ) {
             ESP_LOGI("humidifier", "Humidity Low, enabling Humidifier");
             id(humidifier).turn_on();
 
           } else if (
             id(humidifier).state && 
-            id(bme280_humidity).state >= atoi(id(humidity_max).state.c_str()) - atoi(id(humidity_hysteresis).state.c_str())
+            id(bme280_humidity).state >= atoi(id(humidifier_max).state.c_str())
           ) {
             ESP_LOGI("humidifier", "Humidity High, disabling Humidifier");
             id(humidifier).turn_off();
diff --git a/packages/humidifier_settings.yaml b/packages/humidifier_settings.yaml
new file mode 100644
index 0000000..93c4363
--- /dev/null
+++ b/packages/humidifier_settings.yaml
@@ -0,0 +1,25 @@
+sensor:
+  - platform: template
+    name: "humidifier_max"
+    lambda: return atoi(id(humidifier_max).state.c_str());
+    internal: true
+  - platform: template
+    name: "humidifier_min"
+    lambda: return atoi(id(humidifier_min).state.c_str());
+    internal: true
+
+select:
+  - platform: template
+    id: humidifier_max
+    name: "Humidifier: Humidity Off"
+    options: ["40", "45", "50", "55", "60", "65", "70", "75", "80", "85"]
+    initial_option: "75"
+    optimistic: true
+    restore_value: true
+  - platform: template
+    id: humidifier_min
+    name: "Humidifier: Humidity On"
+    options: ["30", "35", "40", "45", "50", "55", "60", "65", "70", "75", "80"]
+    initial_option: "60"
+    optimistic: true
+    restore_value: true
diff --git a/propbox.yaml b/propbox.yaml
index 4258e32..ffd9b47 100644
--- a/propbox.yaml
+++ b/propbox.yaml
@@ -11,16 +11,17 @@ substitutions:
   humidifier_script: "humidifier_control"
 
 packages:
-  base:               !include packages/base.yaml
-  esp32:              !include packages/esp32.yaml
-  time:               !include packages/time_schedule.yaml
-  air_bme280:         !include packages/air_bme280.yaml
-  water_ds18b20:      !include packages/water_ds18b20.yaml
-  yyac32:             !include packages/yyac3s.yaml
-  fan_settings:       !include packages/fan_settings.yaml
-  fan_power:          !include packages/fan_power.yaml
-  fan_scripts:        !include packages/fan_scripts.yaml
-  light_power:        !include packages/light_power.yaml
-  light_settings:     !include packages/light_settings.yaml
-  humidifier:         !include packages/humidifier.yaml
-  humidifier_scripts: !include packages/humidifier_scripts.yaml
+  base:                 !include packages/base.yaml
+  esp32:                !include packages/esp32.yaml
+  time:                 !include packages/time_schedule.yaml
+  air_bme280:           !include packages/air_bme280.yaml
+  water_ds18b20:        !include packages/water_ds18b20.yaml
+  yyac32:               !include packages/yyac3s.yaml
+  fan_settings:         !include packages/fan_settings.yaml
+  fan_power:            !include packages/fan_power.yaml
+  fan_scripts:          !include packages/fan_scripts.yaml
+  light_power:          !include packages/light_power.yaml
+  light_settings:       !include packages/light_settings.yaml
+  humidifier:           !include packages/humidifier.yaml
+  humidifier_scripts:   !include packages/humidifier_scripts.yaml
+  humidifier_settings:  !include packages/humidifier_settings.yaml
-- 
GitLab