esphome: name: display friendly_name: display on_boot: priority: 200.0 then: - component.update: eink_display - delay: 5s - logger.log: "Initial sensor data received: Refreshing display..." - script.execute: update_screen esp32: board: esp32-s3-devkitc-1 framework: type: arduino # Enable logging logger: # Enable Home Assistant API api: encryption: key: "7QLJzR30itSBn30kootHbIE6FI8jmUtAl7/fcytRxis=" ota: platform: esphome password: "81ceca8aa7f29a76601df5539733d32f" wifi: ssid: !secret wifi_ssid password: !secret wifi_password # Enable fallback hotspot (captive portal) in case wifi connection fails ap: ssid: "Display Fallback Hotspot" password: "WgV5TWXpXcpT" captive_portal: script: - id: update_screen then: - component.update: eink_display font: - file: "gfonts://Roboto" id: roboto_64 size: 64 spi: clk_pin: GPIO7 mosi_pin: GPIO9 mqtt: broker: hafeeder.local port: 1883 username: "mqtt" password: "1234" text_sensor: - platform: mqtt_subscribe name: "Data from topic" id: mytext topic: birdfeeder qos: 2 on_value: then: - script.execute: update_screen display: - platform: waveshare_epaper model: 7.50in-bV3 id: eink_display cs_pin: GPIO2 dc_pin: GPIO4 busy_pin: GPIO6 reset_pin: GPIO1 update_interval: never lambda: |- it.printf(400, 240, id(roboto_64), TextAlign::TOP_CENTER, id(mytext).state.c_str());