20240410
This commit is contained in:
199
esphome/cfg_experimental/wekker.yaml
Normal file
199
esphome/cfg_experimental/wekker.yaml
Normal file
@@ -0,0 +1,199 @@
|
||||
substitutions:
|
||||
device_name: "wekker"
|
||||
friendly_name: "wekker"
|
||||
comment: "esp32, lcd wt32-sc01"
|
||||
location: "slaaplamer"
|
||||
api_password: !secret wekker_api
|
||||
ota_password: !secret ota_password
|
||||
wifi_ssid: !secret wifi_ssid
|
||||
wifi_password: !secret wifi_password
|
||||
ip: !secret wekker_ip
|
||||
gateway: !secret ip_gateway
|
||||
subnet: !secret ip_subnet
|
||||
id_prefix: wekker
|
||||
pin_lcd_bl: GPIO23
|
||||
pin_clk: GPIO14
|
||||
pin_mosi: GPIO13
|
||||
pin_miso: GPIO12
|
||||
pin_cs: GPIO15
|
||||
pin_dc: GPIO21
|
||||
pin_lcdrst: GPIO22
|
||||
pin_sda: GPIO18
|
||||
pin_scl: GPIO19
|
||||
pin_rotsw: GPIO33
|
||||
pin_rotA: GPIO32
|
||||
pin_rotB: GPIO27
|
||||
|
||||
#datasheet: https://files.seeedstudio.com/products/102991455/WT32-SC01-datasheet.pdf
|
||||
|
||||
packages:
|
||||
board: !include boards/esp32_wrover.yaml
|
||||
i2c: !include interfaces/i2c_a.yaml
|
||||
spi: !include interfaces/spi.yaml
|
||||
connection: !include common/wifi.yaml
|
||||
device_base: !include common/common.yaml
|
||||
time: !include templates/time.yaml
|
||||
logger: !include templates/logger.yaml
|
||||
backlight: !include templates/backlight.yaml
|
||||
color: !include templates/color.yaml
|
||||
touch: !include templates/touchscreen_ft63x6.yaml
|
||||
|
||||
sensor:
|
||||
- platform: rotary_encoder
|
||||
name: "Rotary Encoder"
|
||||
id: rotary
|
||||
pin_a: ${pin_rotA}
|
||||
pin_b: ${pin_rotB}
|
||||
on_anticlockwise:
|
||||
- if:
|
||||
condition:
|
||||
display.is_displaying_page: menu
|
||||
then:
|
||||
- display_menu.down: menu_disp
|
||||
else:
|
||||
- number.increment:
|
||||
id: num_bright
|
||||
cycle: false
|
||||
on_clockwise:
|
||||
- if:
|
||||
condition:
|
||||
display.is_displaying_page: menu
|
||||
then:
|
||||
- display_menu.up: menu_disp
|
||||
else:
|
||||
- number.decrement:
|
||||
id: num_bright
|
||||
cycle: false
|
||||
|
||||
image:
|
||||
- file: "include/4dir.jpg"
|
||||
id: multidir
|
||||
resize: 150x150
|
||||
|
||||
number:
|
||||
- platform: template
|
||||
id: num_bright
|
||||
optimistic: true
|
||||
min_value: 0.05
|
||||
max_value: 1
|
||||
step: 0.05
|
||||
on_value:
|
||||
then:
|
||||
# lambda: |-
|
||||
# ESP_LOGI("number", "new brightness value: %f", x);
|
||||
- light.control:
|
||||
id: backlight
|
||||
brightness: !lambda "return x;"
|
||||
transition_length: 0.1s
|
||||
|
||||
binary_sensor:
|
||||
- platform: gpio
|
||||
pin:
|
||||
number: ${pin_rotsw}
|
||||
inverted: true
|
||||
name: "rotary select"
|
||||
id: rotary_button
|
||||
filters:
|
||||
- delayed_on: 10ms
|
||||
- delayed_off: 30ms
|
||||
on_press:
|
||||
- if:
|
||||
condition:
|
||||
display.is_displaying_page: menu
|
||||
then:
|
||||
- if:
|
||||
condition:
|
||||
display_menu.is_active: menu_disp
|
||||
then:
|
||||
- display_menu.enter: menu_disp
|
||||
else:
|
||||
- display_menu.show: menu_disp
|
||||
on_double_click:
|
||||
then:
|
||||
- display.page.show: flipclock
|
||||
- platform: touchscreen
|
||||
name: menu
|
||||
x_min: 380
|
||||
x_max: 480
|
||||
y_min: 280
|
||||
y_max: 320
|
||||
page_id: flipclock
|
||||
on_click:
|
||||
then:
|
||||
- display.page.show: menu
|
||||
- display_menu.show:
|
||||
|
||||
|
||||
font:
|
||||
- file: 'fonts/Solari.ttf'
|
||||
id: flipper
|
||||
size: 160
|
||||
glyphs: ['-',' ', '°', '0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'C',':']
|
||||
- file:
|
||||
type: gfonts
|
||||
family: Roboto
|
||||
size: 40
|
||||
id: menu_font
|
||||
# - file:
|
||||
# type: gfonts
|
||||
# family: Roboto
|
||||
# size: 30
|
||||
# id: dir_font
|
||||
# glyphs: ['U','p', 'D', 'o', 'w', 'n', 'L', 'e', 'f', 't', 'R', 'i', 'g', 'h']
|
||||
|
||||
|
||||
display:
|
||||
- platform: ili9xxx
|
||||
id: ${id_prefix}_display
|
||||
model: ST7796
|
||||
cs_pin: ${pin_cs}
|
||||
dc_pin: ${pin_dc}
|
||||
reset_pin: ${pin_lcdrst}
|
||||
rotation: 270
|
||||
pages:
|
||||
- id: flipclock
|
||||
lambda: |-
|
||||
it.strftime(0, 80, id(flipper), TextAlign::TOP_LEFT, "%H:%M", id(homeassistant_time).now());
|
||||
// it.filled_rectangle(360, 250, 470, 310, id(green));
|
||||
// it.printf(365,255, id(menu_font), id(black), TextAlign::TOP_LEFT, "Menu");
|
||||
// it.image(210,370, id(multidir));
|
||||
- id: menu
|
||||
lambda: |-
|
||||
const auto display_width = it.get_width();
|
||||
const auto display_height = it.get_height();
|
||||
//it.filled_rectangle(360, 250, 470, 310, id(green));
|
||||
//it.printf(365,255, id(menu_font), id(black), TextAlign::TOP_LEFT, "Exit");
|
||||
|
||||
|
||||
// Arguments: it.menu(x, y, menu, width, height);
|
||||
it.menu(0, 60, id(menu_disp), display_width/2, 150);
|
||||
|
||||
|
||||
#https://www.esphome.io/components/display_menu/graphical_display_menu.html?highlight=graphical_display_menu
|
||||
graphical_display_menu:
|
||||
id: menu_disp
|
||||
font: menu_font
|
||||
display: ${id_prefix}_display
|
||||
on_redraw:
|
||||
then:
|
||||
component.update: ${id_prefix}_display
|
||||
on_leave:
|
||||
then:
|
||||
- display.page.show: flipclock
|
||||
- lambda: 'ESP_LOGI("display_menu", "switch leave: %s, %s", it->get_text().c_str(), it->get_value_text().c_str());'
|
||||
active: false
|
||||
mode: rotary
|
||||
items:
|
||||
- type: number
|
||||
text: Brightness
|
||||
number: num_bright
|
||||
- type: Label
|
||||
text: Alarm
|
||||
- type: back
|
||||
text: Back
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user