esphome: name: thermostat # esp32: # board: esp32-s3-devkitc-1 # variant: esp32s3 # framework: # type: esp-idf # sdkconfig_options: # CONFIG_ESP32S3_DEFAULT_CPU_FREQ_240: y # CONFIG_ESP32S3_DATA_CACHE_64KB: y # CONFIG_SPIRAM_FETCH_INSTRUCTIONS: y # CONFIG_SPIRAM_RODATA: y esp32: board: esp32-s3-devkitc-1 variant: esp32s3 flash_size: 8MB framework: type: esp-idf version: latest sdkconfig_options: CONFIG_IDF_TARGET: "esp32s3" CONFIG_ESP_DEFAULT_CPU_FREQ_MHZ_240: y CONFIG_ESPTOOLPY_FLASHMODE_QIO: y CONFIG_ESPTOOLPY_FLASHFREQ_80M: y CONFIG_ESPTOOLPY_FLASHSIZE_8MB: y CONFIG_IDF_EXPERIMENTAL_FEATURES: y CONFIG_SPIRAM_FETCH_INSTRUCTIONS: y CONFIG_SPIRAM: y CONFIG_SPIRAM_MODE_OCT: y CONFIG_SPIRAM_RODATA: y CONFIG_SPIRAM_SPEED_80M: y CONFIG_FREERTOS_HZ: "1000" CONFIG_ESP32S3_DATA_CACHE_LINE_64B: y COMPILER_OPTIMIZATION_SIZE: y psram: mode: octal speed: 80MHz # Enable logging logger: ch422g: # address: 0x24 # Enable Home Assistant API api: password: "" ota: - platform: esphome password: "" wifi: # ssid: "Cochrun" # password: "GreasyChicken784" ssid: "TFC" password: "Disciple77" # Enable fallback hotspot (captive portal) in case wifi connection fails ap: ssid: "Thermostat Fallback Hotspot" password: "RUfAhbEfZmOU" captive_portal: i2c: - id: bus_a sda: GPIO08 scl: GPIO09 scan: True # - id: bus_b # sda: # pin: # ch422g: # number: 6 # scl: # pin: # ch422g: # number: 5 # scan: True # uart: # tx_pin: GPIO27 # rx_pin: GPIO26 # baud_rate: 115200 sensor: - platform: aht10 variant: AHT20 temperature: name: "Temperature" id: temperature humidity: name: "Humidity" id: humidity # address: 0x76 # dfrobot_sen0395: # binary_sensor: # # Information coming from uart bus # - platform: dfrobot_sen0395 # id: mmwave_uart # name: Mmwave UART # # on_...: # # - dfrobot_sen0395.settings: # # factory_reset: true # # detection_segments: # # # Define between one and four segments # # - [0cm, 3m] # # - [5.1m, 6.6m] # # output_latency: # # delay_after_detect: 0s # # delay_after_disappear: 0s # # sensitivity: 7 # # Information coming from dedicated gpio (IO2) # - platform: gpio # name: Mmwave GPIO # device_class: motion # pin: # number: GPIO25 # mode: INPUT_PULLDOWN switch: # # Switch to turn on/off detection # - platform: dfrobot_sen0395 # type: sensor_active # name: Mmwave Active # - platform: dfrobot_sen0395 # type: presence_via_uart # name: Mmwave UART active # restore_mode: always_on # - platform: dfrobot_sen0395 # type: turn_on_led # name: Mmwave Led # restore_mode: always_on # icon: "mdi:led-on" # - platform: dfrobot_sen0395 # type: start_after_boot # name: Mmwave Start # restore_mode: always_on # on_turn_on: # then: # - number.set: # id: sensitivity # value: !lambda |- # return id(mmwave_uart).state + 1; - platform: gpio pin: 16 id: heater restore_mode: RESTORE_DEFAULT_OFF - platform: gpio pin: 44 id: ac restore_mode: RESTORE_DEFAULT_OFF - platform: gpio pin: 15 id: fan restore_mode: RESTORE_DEFAULT_OFF # button: # - platform: template # id: inner_button # on_press: # - dfrobot_sen0395.settings: # sensitivity: !lambda |- # return id(sensitivity).state - 1; # - platform: template # id: inner_distance # on_press: # - dfrobot_sen0395.settings: # detection_segments: # - [0cm, 3.3m] # - platform: template # id: distance # name: Mmwave distance # optimistic: true # min_value: 0.0 # max_value: 9.0 # step: 0.1 # mode: slider # set_action: # - button.press: # id: inner_distance climate: - platform: thermostat name: "Thermostat" sensor: temperature humidity_sensor: humidity min_cooling_off_time: 10s min_cooling_run_time: 10s min_heating_off_time: 10s min_heating_run_time: 10s min_idle_time: 30s cool_action: - switch.turn_off: heater - switch.turn_on: ac - switch.turn_on: fan heat_action: - switch.turn_off: ac - switch.turn_on: heater - switch.turn_on: fan idle_action: - switch.turn_off: ac - switch.turn_off: heater - switch.turn_off: fan default_preset: Home preset: - name: Home default_target_temperature_low: 67 °F default_target_temperature_high: 76 °F # Example minimal configuration entry display: - platform: rpi_dpi_rgb id: my_display auto_clear_enabled: false update_interval: never color_order: RGB pclk_frequency: 14MHz dimensions: width: 800 height: 480 de_pin: number: 5 hsync_pin: number: 46 ignore_strapping_warning: true vsync_pin: number: 3 ignore_strapping_warning: true pclk_pin: 7 pclk_inverted: false hsync_back_porch: 10 #30 hsync_front_porch: 20 #210 hsync_pulse_width: 10 #30 vsync_back_porch: 10 #4 vsync_front_porch: 10 #4 vsync_pulse_width: 10 #4 data_pins: red: - 1 #r3 - 2 #r4 - 42 #r5 - 41 #r6 - 40 #r7 blue: - 14 #b3 - 38 #b4 - 18 #b5 - 17 #b6 - 10 #b7 green: - 39 #g2 - 0 #g3 - 45 #g4 - 48 #g5 - 47 #g6 - 21 #g7 font: - file: "gfonts://Roboto" id: chu_nano size: 18 touchscreen: - platform: gt911 id: my_touchscreen interrupt_pin: 4 reset_pin: ch422g: number: 1 on_touch: - lambda: |- ESP_LOGI("cal", "x=%d, y=%d, x_raw=%d, y_raw=%0d", touch.x, touch.y, touch.x_raw, touch.y_raw ); color: - id: bg hex: 282A36 lvgl: buffer_size: 25% default_font: chu_nano pages: - id: page bg_color: 0x282A36 widgets: - obj: align: top_mid width: 800 widgets: - slider: # Clock container pad_top: 30px align: top_mid width: 600 id: heat_id value: 76 min_value: 50 max_value: 100 - label: pad_top: 40px align: center text: "Hello World" text_color: 0xE2E4E5 - slider: # Clock container pad_top: 60px align: top_mid width: 600 id: cool_id value: 68 min_value: 50 max_value: 100 - label: pad_top: 70px align: center text: "Hello World" text_color: 0xE2E4E5 - label: align: center text: "Hello World" text_color: 0xE2E4E5 # time: # - platform: homeassistant # id: time_comp # interval: # - interval: 30s # then: # if: # condition: # time.has_time: # then: # - script.execute: time_update # script: # - id: time_update # then: # - lvgl.indicator.update: # id: minute_hand # value: !lambda |- # return id(time_comp).now().minute; # - lvgl.indicator.update: # id: hour_hand # value: !lambda |- # auto now = id(time_comp).now(); # return std::fmod(now.hour, 12) * 60 + now.minute;