substitutions:
  name: "pc"
  uppercase_name: "PC"


esphome:
  # choose your own name
  name: WakeOnLan
  friendly_name: PC
    platform: ESP8266
  board: d1_mini

  project:
    name: "ajfriesen.pc-switch"
    version: "1.1.0"

# Enable logging if needed
logger: null

# Enable Home Assistant API
api:

dashboard_import:
  package_import_url: github://ajfriesen/pc-switch/pc-switch.yaml@main

# Put ota password here
ota:
  safe_mode: true
  password: ota_password

# Your wifi config
wifi:
  ssid: wifi_ssid
  password: wifi_password

  # Enable fallback hotspot (captive portal) in case wifi connection fails
  ap:
    ssid: "PC-Switch Fallback Hotspot"
    password: fallback-wifi

captive_portal:

switch:
  - platform: gpio
    pin: 
      number: D6
      allow_other_uses: true
    id: power_switch
    internal: true
    on_turn_on:
    - delay: 300ms
    - switch.turn_off: power_switch

  - platform: gpio
    pin: 
      number: D6
      allow_other_uses: true
    id: power_switch_force
    internal: true
    on_turn_on:
    - delay: 5000ms
    - switch.turn_off: power_switch_force

  - platform: gpio
    pin: D7
    id: reset_switch
    on_turn_on:
    - delay: 300ms
    - switch.turn_off: reset_switch

binary_sensor:
  - platform: gpio
    pin: D0
    id: pc_power_sensor
    name: Power State
    device_class: power
    icon: mdi:desktop-classic

button:
  - platform: template
    name: Power Button
    id: power_button
    icon: mdi:power-standby
    on_press:
      then:
        - switch.toggle: power_switch

  - platform: template
    name: Force Power Off
    id: force_power_off
    icon: mdi:power-plug-off
    on_press:
      then:
        - switch.toggle: power_switch_force

  - platform: template
    name: Reset Button
    id: reset_button
    icon: mdi:restart
    on_press:
      then:
        - switch.toggle: reset_switch
