diff --git a/packages/air_bme280.yaml b/packages/air_bme280.yaml index 853a969c930c66989b318b42a502df75d522d6d2..838a337631dd7d809e4490c603a8972699179241 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 7510f2c8fa5d5681d1d033d07e106591466956a0..7e026de6c907ad93805c40fd4c61d5000c24c9d0 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 0000000000000000000000000000000000000000..3b221d930fc297317291e8df5826e01f3d521f98 --- /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 0000000000000000000000000000000000000000..4c60e353771734900a264589ccc7368cf50e16fb --- /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 3aa040e9db62b6071ab2fca8e59c3c7ca230cf7b..4258e32839f5d8454d2feb7d00a5ff4c022b0338 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