From 27b2c9314d53c74aae1636a1ad5e053596223d1f Mon Sep 17 00:00:00 2001 From: Jan Grewe <jan@faked.org> Date: Sun, 7 Apr 2024 19:02:48 +0200 Subject: [PATCH] add support for simple atomizer module via GPIO add script to control atomizer --- packages/air_bme280.yaml | 5 +++-- packages/base.yaml | 1 + packages/humidifier.yaml | 24 ++++++++++++++++++++++++ packages/humidifier_scripts.yaml | 18 ++++++++++++++++++ propbox.yaml | 25 ++++++++++++++----------- 5 files changed, 60 insertions(+), 13 deletions(-) create mode 100644 packages/humidifier.yaml create mode 100644 packages/humidifier_scripts.yaml diff --git a/packages/air_bme280.yaml b/packages/air_bme280.yaml index 853a969..838a337 100644 --- a/packages/air_bme280.yaml +++ b/packages/air_bme280.yaml @@ -6,7 +6,7 @@ sensor: id: bme280_temperature name: "Air: Temperature" accuracy_decimals: 2 - <<: !include filter.yaml + #<<: !include filter.yaml on_value: then: - lambda: |- @@ -15,11 +15,12 @@ sensor: id: bme280_humidity name: "Air: Humidity" accuracy_decimals: 2 - <<: !include filter.yaml + #<<: !include filter.yaml on_value: then: - lambda: |- id(${fan_script}).execute(); + id(${humidifier_script}).execute(); pressure: id: bme280_pressure name: "Air: Pressure" diff --git a/packages/base.yaml b/packages/base.yaml index 7510f2c..7e026de 100644 --- a/packages/base.yaml +++ b/packages/base.yaml @@ -14,6 +14,7 @@ substitutions: domain: !secret domain timezone: !secret timezone fan_script: "dummy" + humidifier_script: "dummy" preferences: flash_write_interval: 15s diff --git a/packages/humidifier.yaml b/packages/humidifier.yaml new file mode 100644 index 0000000..3b221d9 --- /dev/null +++ b/packages/humidifier.yaml @@ -0,0 +1,24 @@ +output: + - platform: gpio + id: humidifier_output + pin: 4 + inverted: True + +switch: + - platform: template + id: humidifier + name: "Humidifier" + optimistic: True + restore_mode: RESTORE_DEFAULT_OFF + turn_on_action: + - output.turn_on: humidifier_output + - delay: 100ms + - output.turn_off: humidifier_output + turn_off_action: + - output.turn_on: humidifier_output + - delay: 100ms + - output.turn_off: humidifier_output + - delay: 100ms + - output.turn_on: humidifier_output + - delay: 100ms + - output.turn_off: humidifier_output diff --git a/packages/humidifier_scripts.yaml b/packages/humidifier_scripts.yaml new file mode 100644 index 0000000..4c60e35 --- /dev/null +++ b/packages/humidifier_scripts.yaml @@ -0,0 +1,18 @@ +script: + - id: humidifier_control + then: + - lambda: |- + if ( + !id(humidifier).state && + id(bme280_humidity).state < atoi(id(humidity_min).state.c_str()) + atoi(id(humidity_hysteresis).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()) + ) { + ESP_LOGI("humidifier", "Humidity High, disabling Humidifier"); + id(humidifier).turn_off(); + } diff --git a/propbox.yaml b/propbox.yaml index 3aa040e..4258e32 100644 --- a/propbox.yaml +++ b/propbox.yaml @@ -8,16 +8,19 @@ substitutions: # Overrides fan_script: "fan_control_power" + 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 + 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 -- GitLab