esphome:
  name: espsensor32
  platform: ESP32
  board: esp-wrover-kit
   
logger:

api:
  password: !secret api_secret

ota:
  platform: esphome
  password: !secret ota_key

wifi:
  ssid:     !secret wireless_ssid
  password: !secret wireless_key
  domain:   !secret wireless_domain

  ap:
    ssid: "ESPsalon_Fallback"
    password: !secret ap_secret

captive_portal:

web_server:
  port: 80

time:
  - platform: sntp
    id: sntp_time
    servers: 
      - 193.190.198.10
#    timezone: "Europe/Brussels"
    on_time_sync:
      then:
        - logger.log: "NTP : Synchronized sntp clock"
        
mqtt:
  broker: domotic.home.cabestan.be
  username: espsalon
  password: !secret mqtt_espsalon

i2c:
  sda: 21
  scl: 22
  scan: true
  frequency: 300kHz
  id: bus_a

font:
  - file: "fonts/Roboto/Roboto-Black.ttf"
    id: my_font_16
    size: 16
  - file: "fonts/Roboto/Roboto-Black.ttf"
    id: my_font_14
    size: 14
  - file: "fonts/materialdesignicons-webfont.ttf"
    id: icons_14
    size: 14
    glyphs:
      - "\U000F050F" # mdi-home-thermometer
      - "\U000F058E" # mdi-water-percent
      - "\U000F015F" # mdi-cloud
      - "\U000F1252" # mdi-home-lightbulb-outline
      - "\U000F0A60" # mdi-ip-network


display:
  - platform: ssd1306_i2c
    model: "SSD1306 128x64"
    address: 0x3C
    external_vcc: False
    id: saloon_display
    rotation: 90
    # lambda: |-
      # it.print(0, 0, id(my_font_16), "Hello World!");
    pages:
      - id: page1
        lambda: |-
          it.strftime( 32,  0, id(my_font_16), TextAlign::TOP_CENTER , "%H:%M:%S" , id(sntp_time).now()   );
          it.printf(    0, 25, id(icons_14),   TextAlign::TOP_LEFT , "\U000F050F");
          it.printf(   18, 25, id(my_font_14), TextAlign::TOP_LEFT , "%.1f°"  , id(temperature).state   );
          
          it.printf(    0, 45, id(icons_14),   TextAlign::TOP_LEFT , "\U000F058E");
          it.printf(   18, 45, id(my_font_14), TextAlign::TOP_LEFT , "%.1f%%", id(humidity).state       );
          
          it.printf(    0, 65, id(icons_14),   TextAlign::TOP_LEFT , "\U000F015F");
          it.printf(   18, 65, id(my_font_14), TextAlign::TOP_LEFT , "%.0f"  , id(pressure).state       );
          
          it.printf(    0, 85, id(icons_14),   TextAlign::TOP_LEFT , "\U000F1252");
          it.printf(   18, 85, id(my_font_14), TextAlign::TOP_LEFT , "%.0f" , id(ambiantlight).state    );
          
          it.printf(    0, 105, id(icons_14),   TextAlign::TOP_LEFT , "\U000F0A60");
        # it.printf(   18, 105, id(my_font_14), TextAlign::TOP_LEFT , "%s" , id(nw_connected).state    ); 

switch:
  - platform: gpio
    name: "Esp Salon Led"
    pin: 2


binary_sensor:
  - platform: gpio
    pin: 14
    name: "PIR Sensor"
    device_class: motion

sensor:
  - platform: dht
    pin: 19
    temperature:
      id: temperature
      name: "Living Room Temperature"
    humidity:
      id: humidity
      name: "Living Room Humidity"
    update_interval: 10s
    
  - platform: bmp280_i2c
    temperature:
      name: "Living Room Temperature S2"
      oversampling: 16x
    pressure:
      id: pressure
      name: "Pressure"
    address: 0x76
    update_interval: 60s

  - platform: adc
    id: ambiantlight
    pin: 36
    name: "Living Room Brightness"
    device_class: "illuminance"
    unit_of_measurement: "lx"
    update_interval: 5s
    accuracy_decimals: 1
    
    filters:
      - multiply: 500.0
      # - sliding_window_moving_average:
          # window_size: 5
          # send_every: 5
