-
-
Save HeikoBornholdt/2febdb1024ea323bc7ec0fd1f4beb6fa to your computer and use it in GitHub Desktop.
02. Youtube - Turn ANY Device into a Smart Device with ESP8266
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| esphome: | |
| name: dehumidifier | |
| friendly_name: Dehumidifier | |
| on_boot: | |
| priority: -100 | |
| then: | |
| - lambda: |- | |
| if (id(state).state) { | |
| id(button_power).press(); | |
| } | |
| - script.execute: mode_default | |
| esp8266: | |
| board: d1_mini | |
| globals: | |
| - id: last_mode | |
| type: std::string | |
| initial_value: '"Default"' #Yes, you need single quotes + double quotes, it's not a misspelling | |
| output: | |
| - platform: gpio | |
| id: power_pin | |
| pin: D1 | |
| inverted: true | |
| - platform: gpio | |
| id: mode_pin | |
| pin: D2 | |
| inverted: true | |
| - platform: gpio | |
| id: led_pin | |
| pin: D3 | |
| inverted: true | |
| #_________________________________________________________________________________# Buttons_start | |
| button: | |
| - platform: template | |
| name: "Power" | |
| id: button_power | |
| on_press: | |
| - logger.log: "Pressing Power button..." | |
| - lambda: |- | |
| if ((!id(state).state) && (id(mode_select).state != "Default")) { | |
| id(mode_default).execute(); | |
| } | |
| - delay: 300ms | |
| - output.turn_on: power_pin | |
| - delay: 100ms | |
| - output.turn_off: power_pin | |
| - delay: 500ms | |
| - lambda: |- | |
| if (id(state).state) { | |
| ESP_LOGD("button_power", "Dehumidifer state is ON, turning OFF the leds..."); | |
| id(leds_off).execute(); | |
| } else { | |
| ESP_LOGD("button_power", "Dehumidifer state is OFF, skipping leds..."); | |
| if (id(mode_select).state != "Default") { | |
| ESP_LOGD("button_power", "Selecting default mode..."); | |
| id(mode_default).execute(); | |
| } | |
| } | |
| - platform: template | |
| name: Leds | |
| id: button_leds | |
| on_press: | |
| - logger.log: "Pressing Leds button..." | |
| - output.turn_on: led_pin | |
| - delay: 100ms | |
| - output.turn_off: led_pin | |
| #_________________________________________________________________________________# Buttons_end | |
| #_________________________________________________________________________________# Selects_start | |
| select: | |
| - platform: template | |
| name: "Mode" | |
| id: mode_select | |
| optimistic: true | |
| options: | |
| - "Default" | |
| - "Night" | |
| initial_option: "Default" | |
| on_value: | |
| then: | |
| - lambda: |- | |
| if (id(state).state) { | |
| if (id(mode_select).state != id(last_mode)) { | |
| id(last_mode) = id(mode_select).state; | |
| if (id(mode_select).state == "Default") { | |
| id(mode_nd).execute(); | |
| ESP_LOGI("mode_select", "Switched to Default mode"); | |
| } else if (id(mode_select).state == "Night") { | |
| id(mode_dn).execute(); | |
| ESP_LOGI("mode_select", "Switched to Night mode"); | |
| } | |
| } | |
| } | |
| # - lambda: |- | |
| # if (id(state).state) { | |
| # if (id(mode_select).state == "Default") { | |
| # id(mode_nd).execute(); | |
| # ESP_LOGI("mode_select", "Switched to Default mode"); | |
| # } else if (id(mode_select).state == "Night") { | |
| # id(mode_dn).execute(); | |
| # ESP_LOGI("mode_select", "Switched to Night mode"); | |
| # } | |
| # } | |
| #_________________________________________________________________________________# Selects_end | |
| #_________________________________________________________________________________# Sensors_start | |
| binary_sensor: | |
| - platform: gpio | |
| id: state | |
| name: "State" | |
| pin: | |
| number: D5 | |
| mode: INPUT | |
| device_class: power | |
| filters: | |
| - delayed_off: 100ms | |
| #_________________________________________________________________________________# Sensors_end | |
| #_________________________________________________________________________________# Scripts_start | |
| script: | |
| - id: leds_off | |
| then: | |
| - output.turn_on: led_pin | |
| - delay: 100ms | |
| - output.turn_off: led_pin | |
| - delay: 300ms | |
| - output.turn_on: led_pin | |
| - delay: 100ms | |
| - output.turn_off: led_pin | |
| - id: mode_dn # From Default mode to Night mode | |
| then: | |
| - output.turn_on: mode_pin | |
| - delay: 100ms | |
| - output.turn_off: mode_pin | |
| - id: mode_nd # From Night mode to Default mode | |
| then: | |
| - output.turn_on: mode_pin | |
| - delay: 100ms | |
| - output.turn_off: mode_pin | |
| - delay: 300ms | |
| - output.turn_on: mode_pin | |
| - delay: 100ms | |
| - output.turn_off: mode_pin | |
| - id: mode_default | |
| then: | |
| - delay: 300ms | |
| - select.set: | |
| id: mode_select | |
| option: "Default" | |
| - globals.set: | |
| id: last_mode | |
| value: '"Default"' #Yes, you need single quotes '' + double quotes "", it's not a misspelling | |
| #_________________________________________________________________________________# Scripts_end | |
| # Enable logging | |
| logger: | |
| # Enable Home Assistant API | |
| api: | |
| encryption: | |
| key: "1J7eq329j4RvW2ZPgdjX2n0aadaEH7FmL5kayZH6R/Y=" #this will be autogenerated by ESPHome Device Builder | |
| ota: | |
| - platform: esphome | |
| password: "882c826788d116aaec0d8462fde5b1ce" #this will be autogenerated by ESPHome Device Builder | |
| wifi: | |
| ssid: !secret wifi_ssid | |
| password: !secret wifi_password | |
| # Enable fallback hotspot (captive portal) in case wifi connection fails | |
| ap: | |
| ssid: "Dehumidifier Fallback Hotspot" #this will be autogenerated by ESPHome Device Builder | |
| password: "ByuGVFLSAIwf" #this will be autogenerated by ESPHome Device Builder | |
| captive_portal: | |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment