esphome:
  name: test5
  build_path: build/test5
  project:
    name: esphome.test5_project
    version: "1.0.0"

esp32:
  board: nodemcu-32s
  framework:
    type: esp-idf
    advanced:
      ignore_efuse_mac_crc: true

wifi:
  networks:
    - ssid: "MySSID"
      password: "password1"
      manual_ip:
        static_ip: 192.168.1.23
        gateway: 192.168.1.1
        subnet: 255.255.255.0

api:

ota:

logger:

uart:
  - id: uart1
    tx_pin: 1
    rx_pin: 3
    baud_rate: 9600
  - id: uart2
    tx_pin: 17
    rx_pin: 16
    baud_rate: 19200

i2c:

modbus:
  uart_id: uart1
  flow_control_pin: 5
  id: mod_bus1

modbus_controller:
  - id: modbus_controller_test
    address: 0x2
    modbus_id: mod_bus1

binary_sensor:
  - platform: gpio
    pin: GPIO0
    id: io0_button
    icon: mdi:gesture-tap-button

  - platform: modbus_controller
    modbus_controller_id: modbus_controller_test
    id: modbus_binsensortest
    register_type: read
    address: 0x3200
    bitmask: 0x80 #(bit 8)
    lambda: !lambda "{ return x ;}"

tlc5947:
  data_pin: GPIO12
  clock_pin: GPIO14
  lat_pin: GPIO15

output:
  - platform: gpio
    pin: GPIO2
    id: built_in_led

  - platform: tlc5947
    id: output_red
    channel: 0
    max_power: 0.8

  - platform: mcp47a1
    id: output_mcp47a1

  - platform: modbus_controller
    modbus_controller_id: modbus_controller_test
    id: modbus_output_test
    lambda: |-
      return x * 1.0 ;
    address: 0x9001
    value_type: U_WORD

demo:

esp32_ble:

esp32_ble_server:
  manufacturer: "ESPHome"
  model: "Test5"

esp32_improv:
  authorizer: io0_button
  authorized_duration: 1min
  status_indicator: built_in_led

number:
  - platform: template
    name: My template number
    id: template_number_id
    optimistic: true
    on_value:
      - logger.log:
          format: "Number changed to %f"
          args: ["x"]
    set_action:
      - logger.log:
          format: "Template Number set to %f"
          args: ["x"]
    max_value: 100
    min_value: 0
    step: 5
    unit_of_measurement: "%"
    mode: slider

  - id: modbus_numbertest
    platform: modbus_controller
    modbus_controller_id: modbus_controller_test
    name: "ModbusNumber"
    address: 0x9002
    value_type: U_WORD
    lambda: "return  x * 1.0; "
    write_lambda: |-
      return x * 1.0 ;
    multiply: 1.0

select:
  - platform: template
    name: My template select
    id: template_select_id
    optimistic: true
    initial_option: two
    restore_value: true
    on_value:
      - logger.log:
          format: "Select changed to %s"
          args: ["x.c_str()"]
    set_action:
      - logger.log:
          format: "Template Select set to %s"
          args: ["x.c_str()"]
      - select.set:
          id: template_select_id
          option: two
    options:
      - one
      - two
      - three

sensor:
  - platform: selec_meter
    total_active_energy:
      name: "SelecEM2M Total Active Energy"
    import_active_energy:
      name: "SelecEM2M Import Active Energy"
    export_active_energy:
      name: "SelecEM2M Export Active Energy"
    total_reactive_energy:
      name: "SelecEM2M Total Reactive Energy"
    import_reactive_energy:
      name: "SelecEM2M Import Reactive Energy"
    export_reactive_energy:
      name: "SelecEM2M Export Reactive Energy"
    apparent_energy:
      name: "SelecEM2M Apparent Energy"
    active_power:
      name: "SelecEM2M Active Power"
    reactive_power:
      name: "SelecEM2M Reactive Power"
    apparent_power:
      name: "SelecEM2M Apparent Power"
    voltage:
      name: "SelecEM2M Voltage"
    current:
      name: "SelecEM2M Current"
    power_factor:
      name: "SelecEM2M Power Factor"
    frequency:
      name: "SelecEM2M Frequency"
    maximum_demand_active_power:
      name: "SelecEM2M Maximum Demand Active Power"
      disabled_by_default: true
    maximum_demand_reactive_power:
      name: "SelecEM2M Maximum Demand Reactive Power"
      disabled_by_default: true
    maximum_demand_apparent_power:
      name: "SelecEM2M Maximum Demand Apparent Power"
      disabled_by_default: true

  - id: modbus_sensortest
    platform: modbus_controller
    modbus_controller_id: modbus_controller_test
    address: 0x331A
    register_type: read
    value_type: U_WORD

  - platform: t6615
    uart_id: uart2
    co2:
      name: CO2 Sensor

  - platform: bmp3xx
    temperature:
      name: "BMP Temperature"
      oversampling: 16x
    pressure:
      name: "BMP Pressure"
    address: 0x77
    iir_filter: 2X

script:
  - id: automation_test
    then:
      - repeat:
          count: 5
          then:
            - logger.log: "looping!"

switch:
  - platform: modbus_controller
    modbus_controller_id: modbus_controller_test
    id: modbus_switch_test
    register_type: coil
    address: 2
    bitmask: 1

ektf2232:
  interrupt_pin: GPIO36
  rts_pin: GPIO5
  rotation: 90
  on_touch:
    - logger.log:
        format: Touch at (%d, %d)
        args: ["touch.x", "touch.y"]