esphome:
  name: $devicename
  platform: ESP32
  board: nodemcu-32s
  build_path: build/test2

substitutions:
  devicename: test2

ethernet:
  type: LAN8720
  mdc_pin: GPIO23
  mdio_pin: GPIO25
  clk_mode: GPIO0_IN
  phy_addr: 0
  power_pin: GPIO25
  manual_ip:
    static_ip: 192.168.178.56
    gateway: 192.168.178.1
    subnet: 255.255.255.0
  domain: .local

api:

i2c:
  sda: 21
  scl: 22
  scan: False

spi:
  clk_pin: GPIO21
  mosi_pin: GPIO22
  miso_pin: GPIO23

uart:
  tx_pin: GPIO22
  rx_pin: GPIO23
  baud_rate: 115200

ota:
  safe_mode: True
  port: 3286

logger:
  level: DEBUG

as3935_i2c:
  irq_pin: GPIO12


sensor:
  - platform: homeassistant
    entity_id: sensor.hello_world
    id: ha_hello_world
  - platform: ble_rssi
    mac_address: AC:37:43:77:5F:4C
    name: "BLE Google Home Mini RSSI value"
  - platform: ble_rssi
    service_uuid: '11aa'
    name: "BLE Test Service 16"
  - platform: ble_rssi
    service_uuid: '11223344'
    name: "BLE Test Service 32"
  - platform: ble_rssi
    service_uuid: '11223344-5566-7788-99aa-bbccddeeff00'
    name: "BLE Test Service 128"
  - platform: ruuvitag
    mac_address: FF:56:D3:2F:7D:E8
    humidity:
      name: "RuuviTag Humidity"
    temperature:
      name: "RuuviTag Temperature"
    pressure:
      name: "RuuviTag Pressure"
    acceleration_x:
      name: "RuuviTag Acceleration X"
    acceleration_y:
      name: "RuuviTag Acceleration Y"
    acceleration_z:
      name: "RuuviTag Acceleration Z"
    battery_voltage:
      name: "RuuviTag Battery Voltage"
    tx_power:
      name: "RuuviTag TX Power"
    movement_counter:
      name: "RuuviTag Movement Counter"
    measurement_sequence_number:
      name: "RuuviTag Measurement Sequence Number"
  - platform: as3935
    lightning_energy:
      name: "Lightning Energy"
    distance:
      name: "Distance Storm"
  - platform: xiaomi_hhccjcy01
    mac_address: 94:2B:FF:5C:91:61
    temperature:
      name: "Xiaomi HHCCJCY01 Temperature"
    moisture:
      name: "Xiaomi HHCCJCY01 Moisture"
    illuminance:
      name: "Xiaomi HHCCJCY01 Illuminance"
    conductivity:
      name: "Xiaomi HHCCJCY01 Soil Conductivity"
    battery_level:
      name: "Xiaomi HHCCJCY01 Battery Level"
  - platform: xiaomi_lywsdcgq
    mac_address: 7A:80:8E:19:36:BA
    temperature:
      name: "Xiaomi LYWSDCGQ Temperature"
    humidity:
      name: "Xiaomi LYWSDCGQ Humidity"
    battery_level:
      name: "Xiaomi LYWSDCGQ Battery Level"
  - platform: xiaomi_lywsd02
    mac_address: 3F:5B:7D:82:58:4E
    temperature:
      name: "Xiaomi LYWSD02 Temperature"
    humidity:
      name: "Xiaomi LYWSD02 Humidity"
  - platform: xiaomi_cgg1
    mac_address: 7A:80:8E:19:36:BA
    temperature:
      name: "Xiaomi CGG1 Temperature"
    humidity:
      name: "Xiaomi CGG1 Humidity"
    battery_level:
      name: "Xiaomi CGG1 Battery Level"
  - platform: xiaomi_gcls002
    mac_address: "94:2B:FF:5C:91:61"
    temperature:
      name: "GCLS02 Temperature"
    moisture:
      name: "GCLS02 Moisture"
    conductivity:
      name: "GCLS02 Soil Conductivity"
    illuminance:
      name: "GCLS02 Illuminance"
  - platform: xiaomi_hhccpot002
    mac_address: "94:2B:FF:5C:91:61"
    moisture:
      name: "HHCCPOT002 Moisture"
    conductivity:
      name: "HHCCPOT002 Soil Conductivity"
  - platform: xiaomi_lywsd03mmc
    mac_address: "A4:C1:38:4E:16:78"
    bindkey: "e9efaa6873f9f9c87a5e75a5f814801c"
    temperature:
      name: "Xiaomi LYWSD03MMC Temperature"
    humidity:
      name: "Xiaomi LYWSD03MMC Humidity"
    battery_level:
      name: "Xiaomi LYWSD03MMC Battery Level"
  - platform: xiaomi_cgd1
    mac_address: "A4:C1:38:D1:61:7D"
    bindkey: "c99d2313182473b38001086febf781bd"
    temperature:
      name: "Xiaomi CGD1 Temperature"
    humidity:
      name: "Xiaomi CGD1 Humidity"
    battery_level:
      name: "Xiaomi CGD1 Battery Level"
  - platform: xiaomi_jqjcy01ym
    mac_address: "7A:80:8E:19:36:BA"
    temperature:
      name: "JQJCY01YM Temperature"
    humidity:
      name: "JQJCY01YM Humidity"
    formaldehyde:
      name: "JQJCY01YM Formaldehyde"
    battery_level:
      name: "JQJCY01YM Battery Level"


time:
- platform: homeassistant
  on_time:
    - at: '16:00:00'
      then:
        - logger.log: It's 16:00

esp32_touch:
  setup_mode: True

binary_sensor:
  - platform: homeassistant
    entity_id: binary_sensor.hello_world
    id: ha_hello_world_binary
  - platform: ble_presence
    mac_address: AC:37:43:77:5F:4C
    name: "ESP32 BLE Tracker Google Home Mini"
  - platform: ble_presence
    service_uuid: '11aa'
    name: "BLE Test Service 16 Presence"
  - platform: ble_presence
    service_uuid: '11223344'
    name: "BLE Test Service 32 Presence"
  - platform: ble_presence
    service_uuid: '11223344-5566-7788-99aa-bbccddeeff00'
    name: "BLE Test Service 128 Presence"
  - platform: esp32_touch
    name: "ESP32 Touch Pad GPIO27"
    pin: GPIO27
    threshold: 1000
  - platform: as3935
    name: "Storm Alert"
  - platform: xiaomi_mue4094rt
    name: "MUE4094RT Motion"
    mac_address: "7A:80:8E:19:36:BA"
    timeout: "5s"
  - platform: xiaomi_mjyd02yla
    name: "MJYD02YL-A Motion"
    mac_address: "50:EC:50:CD:32:02"
    bindkey: "48403ebe2d385db8d0c187f81e62cb64"
    idle_time:
      name: "MJYD02YL-A Idle Time"
    light:
      name: "MJYD02YL-A Light Status"
    battery_level:
      name: "MJYD02YL-A Battery Level"
  - platform: xiaomi_wx08zm
    name: "WX08ZM Activation State"
    mac_address: "74:a3:4a:b5:07:34"
    tablet:
      name: "WX08ZM Tablet Resource"
    battery_level:
      name: "WX08ZM Battery Level"


esp32_ble_tracker:
  on_ble_advertise:
    - mac_address: AC:37:43:77:5F:4C
      then:
        - lambda: !lambda |-
            ESP_LOGD("main", "The device address is %s", x.address_str().c_str());
    - then:
        - lambda: !lambda |-
            ESP_LOGD("main", "The device address is %s", x.address_str().c_str());
  on_ble_service_data_advertise:
    - service_uuid: ABCD
      then:
        - lambda: !lambda |-
            ESP_LOGD("main", "Length of service data is %i", x.size());
  on_ble_manufacturer_data_advertise:
    - manufacturer_id: ABCD
      then:
        - lambda: !lambda |-
            ESP_LOGD("main", "Length of manufacturer data is %i", x.size());


#esp32_ble_beacon:
#  type: iBeacon
#  uuid: 'c29ce823-e67a-4e71-bff2-abaa32e77a98'

status_led:
  pin: GPIO2

text_sensor:
  - platform: version
    name: "ESPHome Version"
    icon: mdi:icon
    id: version_sensor
    on_value:
      - if:
          condition:
            - api.connected:
          then:
          - lambda: !lambda |-
              ESP_LOGD("main", "The state is %s=%s", x.c_str(), id(version_sensor).state.c_str());
      - script.execute: my_script
      - homeassistant.service:
          service: notify.html5
          data:
            title: New Humidity
          data_template:
            message: The humidity is {{ my_variable }}%.
          variables:
            my_variable: |-
              return id(version_sensor).state;
            my_variable_str: |-
              return "Hello World";
      - homeassistant.service:
          service: light.turn_on
          data:
            entity_id: light.my_light
      - homeassistant.tag_scanned:
          tag: 1234-abcd
      - homeassistant.tag_scanned: 1234-abcd
  - platform: template
    name: "Template Text Sensor"
    lambda: |-
      return {"Hello World"};
  - platform: homeassistant
    entity_id: sensor.hello_world2
    id: ha_hello_world2
  - platform: ble_scanner
    name: Scanner

script:
  - id: my_script
    mode: single
    then:
      - lambda: 'ESP_LOGD("main", "Hello World!");'
  - id: my_script_queued
    mode: queued
    max_runs: 2
    then:
      - lambda: 'ESP_LOGD("main", "Hello World!");'
  - id: my_script_parallel
    mode: parallel
    max_runs: 2
    then:
      - lambda: 'ESP_LOGD("main", "Hello World!");'
  - id: my_script_restart
    mode: restart
    then:
      - lambda: 'ESP_LOGD("main", "Hello World!");'

stepper:
  - platform: uln2003
    id: my_stepper
    pin_a: GPIO23
    pin_b: GPIO27
    pin_c: GPIO25
    pin_d: GPIO26
    sleep_when_done: no
    step_mode: HALF_STEP
    max_speed: 250 steps/s

    # Optional:
    acceleration: inf
    deceleration: inf

interval:
  interval: 5s
  then:
    - logger.log: "Interval Run"

display: