infrapuzzle/esphome
Moritz Graf 26a68a8962 Adding esphome display 2026-07-07 21:01:46 +02:00
..
.env.template Adding esphome display 2026-07-07 21:01:46 +02:00
.gitignore Adding esphome display 2026-07-07 21:01:46 +02:00
AGENTS.md Adding esphome display 2026-07-07 21:01:46 +02:00
README.md Adding esphome display 2026-07-07 21:01:46 +02:00
esdisplay_kitchen.yaml Adding esphome display 2026-07-07 21:01:46 +02:00
flash.py Adding esphome display 2026-07-07 21:01:46 +02:00
prometheus_client.h Adding esphome display 2026-07-07 21:01:46 +02:00
send_message.sh Adding esphome display 2026-07-07 21:01:46 +02:00

README.md

ESPHome Use-Cases & e-Paper Display

This directory contains ESPHome configuration files for various IoT and monitoring devices, using environment variables to keep credentials local and gitignored.

Get Started

1. Configure Credentials

Copy .env.template to .env and fill in your Wi-Fi credentials:

cp .env.template .env

Inside .env, configure:

  • WIFI_SSID: Your local Wi-Fi Name.
  • WIFI_PASSWORD: Your local Wi-Fi Password.

2. Run the Flashing Wizard

Use the interactive Python script to flash your microcontroller:

uv run flash.py

This wizard will prompt you to:

  1. Select which .yaml configuration file to use.
  2. Select the command to run (such as Run, Compile, Upload, Logs, Validate, or Clean).

Note: uv run handles the required dependencies (questionary and python-dotenv) automatically inside an isolated ephemeral environment, so there is no need to manually manage virtualenvs or pip installs.


Home Assistant Integration

The configurations in this directory connect directly to Home Assistant using the ESPHome Native API.

Dynamic Sensor Subscriptions

Instead of pushing raw screens from Home Assistant, we pull the required entities dynamically into ESPHome's internal variables.

  1. Outdoor Temperature (sensor.regensburg_regensburg_temperatur): Pulled automatically via the homeassistant platform sensor.
  2. Kitchen Temperature (sensor.home_kuche_wandthermostat_temperature): Pulled automatically from the kitchen wall thermostat.
  3. Kitchen Message (input_text.epaper_message): A Home Assistant input_text helper. When the state changes, Home Assistant pushes the new text to the display.

Sending Messages from Command Line

You can push text warnings or messages directly to the display from the terminal using the helper script:

./send_message.sh "Your custom display message here"

This script reads the long-lived API token from the k8s/home-assistant secrets folder to authenticate against the Home Assistant API automatically.