esphome:
  name: sensori-balcone
  friendly_name: Sensori Balcone

esp32:
  board: esp32dev
  framework:
    type: arduino

# Enable logging
logger:

# Enable Home Assistant API
api:
  encryption:
    key: "xxxxxxxxxxxxxxxxxxxxxxxxx"


ota:
  - platform: esphome
    password: "xxxxxxxxxxxxxxxxxxxxxxxxx"
  
wifi: 
  power_save_mode: none
  ssid: "Balcone"
  password: "xxxxxxxxxxxxxxxxxxxxxxxxx"
  output_power: 10dB
  manual_ip:
    static_ip: 192.168.178.132
    gateway: 192.168.178.1
    subnet: 255.255.255.0

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

captive_portal:

button:
  - platform: restart
    name: "Riavvio sensori balcone"

sensor:
  - platform: dht
    model: DHT22
    pin: 18
    temperature:
      name: "Temperatura esterna"
    humidity:
      name: "Umidità esterna"
    update_interval: 30s 
  - platform: dht
    model: DHT22
    pin: 19
    temperature:
      name: "Temperatura scatola balcone"
    humidity:
      name: "Umidità scatola balcone"
    update_interval: 30s 
  

  - platform: adc
    pin: 33
    name: "Luminosità"
    id: light1
    update_interval: 35s
    unit_of_measurement: "%"
    icon: "mdi:brightness-5"
    filters:
    - calibrate_linear:
      - 0.08 -> 100
      - 1.03 -> 0

  
  - platform: wifi_signal 
    name: "Potenza segnale Wifi Balcone" 
    update_interval: 60s

switch:
  - platform: gpio
    pin: 27
    name: "LED di stato"
    icon: "mdi:led-on"
    id: online_led
  - platform: gpio
    pin: 13
    name: "Ventola Scatola"
    icon: "mdi:fan"
    id: box_fan

binary_sensor:
  - platform: gpio
    pin: 26
    name: "Sensore Pioggia"
    device_class: motion
  

  - platform: status
    name: "ESP32 Status"
    on_state:
      then:
        - lambda: |-
            if (id(online_led).state) {
              id(online_led).turn_off();
            } else {
              id(online_led).turn_on();
            }