substitutions: devicename: ff-akwarium-plug-01 low_devicename: ff-akwarium-plug-01 friendly_devicename: FF Akwarium Light 01 esphome: name: $devicename friendly_name: $friendly_devicename bk72xx: board: generic-bk7231t-qfn32-tuya #framework: # version: dev # Enable logging logger: web_server: port: 80 # Enable Home Assistant API api: encryption: key: "ejeMnlF5M60w/yuYwAWn/kIBz701xLwVkUGf9iN8uLA=" ota: password: "2c27af3ab81f992e23745c20ab5dfc02" wifi: ssid: !secret iot_ssid password: !secret iot_password domain: .int.mmax.cloud sensor: - platform: wifi_signal name: "WiFi Signal Sensor" update_interval: 60s - platform: uptime name: Uptime Sensor id: uptime_sensor update_interval: 60s on_raw_value: then: - text_sensor.template.publish: id: uptime_human state: !lambda |- int seconds = round(id(uptime_sensor).raw_state); int days = seconds / (24 * 3600); seconds = seconds % (24 * 3600); int hours = seconds / 3600; seconds = seconds % 3600; int minutes = seconds / 60; seconds = seconds % 60; return ( (days ? to_string(days) + "d " : "") + (hours ? to_string(hours) + "h " : "") + (minutes ? to_string(minutes) + "m " : "") + (to_string(seconds) + "s") ).c_str(); text_sensor: - platform: template name: Uptime Human Readable id: uptime_human icon: mdi:clock-start - platform: wifi_info ip_address: name: IP Address entity_category: diagnostic binary_sensor: - platform: status name: Status entity_category: diagnostic - platform: gpio pin: number: P7 mode: input: true pullup: true inverted: true name: "Power Button" on_press: - switch.toggle: relay - select.next: id: mode cycle: true switch: - platform: gpio # RED id: led_1 pin: number: P6 inverted: false - platform: gpio # BLUE id: led_2 pin: number: P26 inverted: false - platform: gpio pin: P8 id: relay internal: true # Turn off red LED to show blue when turned on on_turn_on: - switch.turn_on: led_2 - switch.turn_off: led_1 # Turns on the red LED once the plug is turned off on_turn_off: - switch.turn_off: led_2 - switch.turn_on: led_1 button: - platform: restart id: restart_button name: Restart entity_category: diagnostic globals: - id: current_light type: select restore_value: True initial_value: "0" select: - platform: template name: "Light Mode" id: mode options: - "Off" - "Day" - Daybreak - Night optimistic: true on_value: then: - if: condition: - lambda: |- return(id(mode).state) == "Off"; then: - switch.turn_off: relay - if: condition: - lambda: |- return(id(mode).state) == "Day"; then: - switch.turn_off: relay - delay: 20s - switch.turn_on: relay - if: condition: - lambda: |- return(id(mode).state) == "Daybreak"; then: - switch.turn_off: relay - delay: 20s - switch.turn_on: relay - delay: 200ms - switch.turn_off: relay - delay: 200ms - switch.turn_on: relay - if: condition: - lambda: |- return(id(mode).state) == "Night"; then: - switch.turn_off: relay - delay: 20s - switch.turn_on: relay - delay: 200ms - switch.turn_off: relay - delay: 200ms - switch.turn_on: relay - switch.turn_off: relay - delay: 200ms - switch.turn_on: relay light: - platform: template name: None restore_mode: RESTORE_AND_OFF effects: - lambda: name: Day - lambda: name: Daybreak - lambda: name: Night