Ok, I’m using GPIO23, GPIO22 and GPIO26 as binary sensors, GPIO36 and GPIO35 as analog read pins, and GPIO33, GPIO32, GPIO13, GPIO12, GPIO21 and GPIO19 as output pins.
Here is my complete esphome yaml config:
esphome:
name: main_tableau_elec
esp32:
board: esp32dev # esp-wrover-kit
wifi:
ssid: !secret wifi_id
password: !secret wifi_pwd
web_server:
port: 80
# Enable logging
logger:
level: DEBUG
# Enable Home Assistant API
api:
password: !secret ota_pwd
ota:
password: !secret ota_pwd
# Define the binary sensors from outdoor numeric pad
binary_sensor:
- platform: gpio
name: "Valid code A"
pin: GPIO23
- platform: gpio
name: "Valid code B"
pin: GPIO22
on_press:
- switch.turn_on: garage_door_bare_switch
- delay: 0.5s
- switch.turn_off: garage_door_bare_switch
- platform: gpio
name: "Garage door status"
pin: GPIO26
device_class: door
filters:
- invert:
# Reading the analog CT clamps
sensor:
- platform: adc
pin: GPIO36
id: gpio36
update_interval: 60s
internal: true
- platform: ct_clamp
sensor: gpio36
name: "Water Heater Power Sensor"
icon: mdi:gauge
unit_of_measurement: 'W'
update_interval: 60s
sample_duration: 200ms
filters:
- throttle: 60s
- platform: adc
pin: GPIO35
id: gpio35
update_interval: 60s
internal: true
- platform: ct_clamp
sensor: gpio35
name: "Electric Car Power Sensor"
icon: mdi:gauge
unit_of_measurement: 'W'
update_interval: 60s
sample_duration: 200ms
filters:
- throttle: 60s
- platform: wifi_signal
name: "Main Tableau Elec WiFi signal"
icon: "mdi:wifi"
update_interval: 60s
# Define output pins
output:
- platform: gpio
pin: GPIO33
id: output_pin_1 # garage door
- platform: gpio
pin: GPIO32
id: output_pin_2 # floor heater
- platform: gpio
pin: GPIO13
id: output_pin_3 # water heater
- platform: gpio
pin: GPIO12
id: output_pin_4 # parking lights
- platform: gpio
pin: GPIO21
id: output_pin_5 # electric car
- platform: gpio
pin: GPIO19
id: output_pin_6 # (reserve 1)
# - platform: gpio
# pin: GPIO18
# id: output_pin_6 # (reserve 2)
# - platform: gpio
# pin: GPIO5
# id: output_pin_6 # (reserve 3)
# Define the lights based on the output pins
light:
- platform: binary
name: "Parking Garage light"
output: output_pin_4
# Define the switches based on the output pins
switch:
- platform: output
id: garage_door_bare_switch
output: output_pin_1
- platform: template
name: "Garage Door Switch"
icon: "mdi:garage"
optimistic: true
lambda: 'return id(garage_door_bare_switch).state;'
turn_on_action:
- switch.turn_on: garage_door_bare_switch
- delay: 0.5s
- switch.turn_off: garage_door_bare_switch
turn_off_action:
- switch.turn_on: garage_door_bare_switch
- delay: 0.5s
- switch.turn_off: garage_door_bare_switch
- platform: output
id: floor_heater_bare_switch
output: output_pin_2
- platform: template
name: "Floor Heater Switch"
icon: "mdi:radiator"
optimistic: true
lambda: 'return id(floor_heater_bare_switch).state;'
turn_on_action:
- switch.turn_on: floor_heater_bare_switch
turn_off_action:
- switch.turn_off: floor_heater_bare_switch
- platform: output
id: water_heater_bare_switch
output: output_pin_3
- platform: template
name: "Water Heater Switch"
icon: "mdi:water-boiler"
optimistic: true
lambda: 'return id(water_heater_bare_switch).state;'
turn_on_action:
- switch.turn_on: water_heater_bare_switch
turn_off_action:
- switch.turn_off: water_heater_bare_switch
- platform: output
id: electric_car_bare_switch
output: output_pin_5
- platform: template
name: "Electric Car Switch"
icon: "mdi:car-electric"
optimistic: true
lambda: 'return id(electric_car_bare_switch).state;'
turn_on_action:
- switch.turn_on: electric_car_bare_switch
turn_off_action:
- switch.turn_off: electric_car_bare_switch
- platform: output
id: reserve_bare_switch
output: output_pin_6
- platform: template
name: "Reserve Switch"
icon: "mdi:crosshairs-question"
optimistic: true
lambda: 'return id(reserve_bare_switch).state;'
turn_on_action:
- switch.turn_on: reserve_bare_switch
turn_off_action:
- switch.turn_off: reserve_bare_switch