My ESPHome eink screen

Dark Theme:

Light Theme:

Wall Mounted:

After about 70 reflashes to fine-tune the look, the screen now updates only through Home Assistant automation — during the day, when someone is home — with updates every second after a full minute.

The calendar display combines three calendars, merged via automation and sent as an MQTT message that ESPHome picks up.

Power comes from a 5V supply. Two existing wall holes with UTP cables run directly to the main power cabinet, where a DIN-mounted 220V-to-5V adapter provides the source. Two UTP wires carry the power, connected to the 5V and GND pins on the ESP chip. Small holes were drilled into the screen enclosure and picture frame backplate, so in the end only two wires needed to be hooked up.

Wife love the black theme, but for me light one is better. I can easily switch the theme in Home Assistant entity property.

Posted all the files in Github: GitHub - thehijacker/ESPHome-E-Ink-Weather-Calendar-Wall-Monitor: This project provides a complete solution for a wall-mounted e-ink display powered by ESPHome and tightly integrated with Home Assistant. It displays weather, calendar events, room temperatures, and Slovenian date/time, with smart refresh logic and support for dark/light modes.

Happy tweaking!

5 Likes

Thanks for the config. I try to use it as a base for my e-ink display.

I have one question so far: where do i implement the " ha-weather.yaml" config? In the template.yaml? I adjusted the entities to my weather provider and added the yaml to load under template with my config.yaml but somehow the forcast is not generated. Do i have to integrate it under automations maybe?
Thnx in advance

I have a folder packages in my config folder. And then in homeassistant.yaml:

packages: !include_dir_named packages

In that folder I put custom yaml files. All starting with ha-*.yaml are in that folder and are picked up by Home Assistant when I restart it. They are also checked under developer tools when I check configuration.

ha-weather.yaml takes the weather entities and extracts the forecast for today+ next 3 days. And that entities the Wall monitor picks up and displays.

thanks for the reply.
i got my config / custom yaml files in separate folder for sensor, template, mqtt each.

i managed to recreate the automation (the fist part of your yaml).
right now i struggle to split the rest in the coresponding yamls. i still have to figure out if i put it in the sensor folder and have to adapt like “template: /-platform: sensor / -name:xxx” or maybe " (sensor:) /platform: template / -name:xxx" or somethin totaly different.
getting the indentation of yaml right is not easy either.

maybe i try your approach and put all custom .yaml files in a “packages:” folder…