Files
hassos_config/esphome/cfg_experimental/guition_esp32_og.yaml
2026-03-26 12:10:21 +01:00

237 lines
5.9 KiB
YAML
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
packages:
home: !include widgets/home/home.yaml
lights_config: !include widgets/light/lights_config.yaml
devices: !include widgets/devices.yaml
settings: !include widgets/settings.yaml
menu_controls_main: !include widgets/menu_controls_main.yaml
loading_page: !include widgets/loading_page.yaml
image: !include widgets/image.yaml
font: !include widgets/fonts.yaml
color: !include widgets/colors.yaml
http_request:
verify_ssl: false
external_components:
- source: github://pr#9972
components: [mapping]
refresh: 1h
esphome:
name: display
friendly_name: display
includes:
- <sstream>
- <algorithm>
platformio_options:
board_build.flash_mode: dio
esp32:
board: esp32-s3-devkitc-1
variant: esp32s3
flash_size: 16MB
framework:
type: esp-idf
sdkconfig_options:
CONFIG_ESP32S3_DEFAULT_CPU_FREQ_240: "y"
CONFIG_SPIRAM_TRY_ALLOCATE_WIFI_LWIP: y
# CONFIG_ESP32S3_DATA_CACHE_64KB: "y"
# CONFIG_ESP32S3_DATA_CACHE_LINE_64B: "y"
# CONFIG_SPIRAM_FETCH_INSTRUCTIONS: y
# CONFIG_SPIRAM_RODATA: y
# CONFIG_FREERTOS_USE_TRACE_FACILITY: "y"
# CONFIG_FREERTOS_USE_STATS_FORMATTING_FUNCTIONS: "y"
psram:
mode: octal
speed: 80MHz
logger:
level: debug
api:
encryption:
key: !secret display_api
ota:
- platform: esphome
password: !secret ota_password
wifi:
networks:
- ssid: !secret wifi_ssid
password: !secret wifi_password
lvgl:
color_depth: 16
byte_order: big_endian
displays: my_display
touchscreens:
- touchscreen_id: my_touchscreen
long_press_time: 5000ms
long_press_repeat_time: 400ms
page_wrap: false
light:
# Backlight
- platform: monochromatic
output: backlight_output
name: Backlight
id: display_backlight
restore_mode: ALWAYS_ON
on_turn_on:
- if:
condition: lvgl.is_paused
then:
- logger.log: "LVGL resuming by backlight on"
- lvgl.resume:
- lvgl.widget.redraw:
on_turn_off:
- if:
condition:
lambda: 'return id(display_timeout_number).state >= 0;'
then:
- logger.log: "Backlight off, pausing LVGL"
- lvgl.pause:
output:
# Backlight LED
- platform: ledc
pin: GPIO38
id: backlight_output
frequency: 100Hz
i2c:
- id: bus_a
sda: GPIO19
scl:
number: GPIO45
ignore_strapping_warning: true
frequency: 100kHz
touchscreen:
platform: gt911
id: my_touchscreen
transform:
mirror_x: false
mirror_y: false
display: my_display
on_release:
- if:
condition: lvgl.is_paused
then:
- logger.log: "LVGL resuming"
- lvgl.resume:
- lvgl.widget.redraw:
- light.turn_on: display_backlight
# 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
# );
spi:
- id: lcd_spi
clk_pin: GPIO48
mosi_pin: GPIO47
display:
- platform: st7701s
id: my_display
update_interval: never
auto_clear_enabled: false
data_rate: 2MHz
spi_mode: MODE3
color_order: RGB
invert_colors: false
dimensions:
width: 480
height: 480
transform:
mirror_x: false
mirror_y: false
cs_pin: 39
# reset not defined
de_pin: 18
hsync_pin: 16
vsync_pin: 17
pclk_pin: 21
init_sequence:
- 1
- [0xFF, 0x77, 0x01, 0x00, 0x00, 0x10] # CMD2_BKSEL_BK0
- [0xCD, 0x00] # disable MDT flag
pclk_frequency: 12MHz
pclk_inverted: false
data_pins:
red:
- 11 # R1
- 12 # R2
- 13 # R3
- 14 # R4
- 0 # R5
green:
- 8 # G0
- 20 # G1
- 3 # G2
- 46 # G3
- 9 # G4
- 10 # G5
blue:
- 4 # B1
- 5 # B2
- 6 # B3
- 7 # B4
- 15 # B5
# interval:
# - interval: 60s
# then:
# - lambda: |-
# // Общая информация о памяти
# ESP_LOGI("memory", "Free heap: %d bytes", esp_get_free_heap_size());
# ESP_LOGI("memory", "Free internal heap: %d bytes", esp_get_free_internal_heap_size());
# ESP_LOGI("memory", "Min free heap: %d bytes", esp_get_minimum_free_heap_size());
# // Детальная статистика кучи
# multi_heap_info_t info;
# heap_caps_get_info(&info, MALLOC_CAP_INTERNAL);
# ESP_LOGI("memory", "SRAM total: %d, free: %d, largest_free: %d",
# info.total_free_bytes + info.total_allocated_bytes,
# info.total_free_bytes,
# info.largest_free_block);
# // Статистика по PSRAM
# heap_caps_get_info(&info, MALLOC_CAP_SPIRAM);
# ESP_LOGI("memory", "PSRAM total: %d, free: %d, largest_free: %d",
# info.total_free_bytes + info.total_allocated_bytes,
# info.total_free_bytes,
# info.largest_free_block);
# - lambda: |-
# ESP_LOGI("stack", "Main task free: %d bytes",
# uxTaskGetStackHighWaterMark(xTaskGetHandle("loopTask")));
# ESP_LOGI("stack", "System event free: %d bytes",
# uxTaskGetStackHighWaterMark(xTaskGetHandle("sys_evt")));
# ESP_LOGI("stack", "Timer task free: %d bytes",
# uxTaskGetStackHighWaterMark(xTaskGetHandle("esp_timer")));
# - lambda: |-
# char* buf = (char*)malloc(1024);
# if (buf) {
# vTaskList(buf);
# ESP_LOGI("stack", "\nTask Name\tState\tPrio\tStack\tNum\n%s", buf);
# free(buf);
# }