reTerminal E1004

Overview

The reTerminal E1004 is a 13.3" 6-colour (Spectra 6) e-paper display mounted in the kuchyň (kitchen). It is the household's central family dashboard: a colour calendar/agenda on the left, and a stacked column of live information on the right (weather, home & outdoor climate, upcoming family celebrations, waste-collection schedule, solar/car batteries, and a weekly temperature chart).

It is the colour companion to the E1001 (mono weather display in the living room) and shares the same icon language, footer style, and refresh philosophy.

Property Value
Model Seeed reTerminal E1004 (13.3" Spectra 6 colour e-paper)
Resolution 1200 × 1600, portrait
Colours Black, white, red, green, blue, yellow (6-colour palette)
Panel model (ESPHome) Seeed-reTerminal-E1004
MCU ESP32-S3 with 8 MB PSRAM (octal, 80 MHz)
Power Permanently powered (deep sleep disabled)
Location Kuchyň (kitchen)
Firmware ESPHome
Flashing Wireless (OTA)

Data flow

drawing-1-1787169129.png

What it displays

Header

Left column – Agenda

Right column (top to bottom)

  1. Blíží se – next 3 upcoming family celebrations (birthdays with age, and name-days). Red = birthday, green = name-day. Twins Daniel & Dominik are combined onto one birthday line.
  2. Svoz odpadu – next collection date per waste type: BIO (leaf), Papír (newspaper), Plast (bottle), Směsný (bin) — each with a coloured icon.
  3. Baterie – FVE (home solar) % with a house icon, Tesla % with a car icon.
  4. Doma / Venku – indoor and outdoor temperature + humidity, with thermometer and droplet icons.
  5. Počasí – 6-day forecast with colour weather icons (red sun, blue rain, clouds) and high/low temps.
  6. Týden – a 6-day high-temperature bar chart, bars colour-coded (red ≥ 28°, blue ≤ 18°, black otherwise).

Home Assistant sensors that power it

These are custom template sensors built in configuration.yaml:

Sensor Purpose
sensor.svatek_dnes Today's Czech name-day, from an embedded 366-day table
sensor.rodina_oslavy Family birthdays + name-days; state = today's celebrations, upcoming attribute = next celebrations (JSON)
sensor.svoz_odpadu Scans both calendars for BIO/PAPÍR/PLAST/SMĚSNÝ keywords; attributes bio,papir,plast,smesny hold the next date per type
sensor.forecast_day_0..5_* Per-day condition / temp / templow
sensor.forecast_week Weekly highs as a pipe-separated string (`Po:26
sensor.e1004_event_1..10 Per-event agenda data (title, day label, time, colour)
Ecowitt climate sensors Indoor/outdoor temperature & humidity
sensor.solax_battery_capacity_2 FVE battery %
sensor.tesla_model_y_battery Tesla battery %

Refresh behaviour

flowchart TD
    A["Calendar event changes"] -->|instant, debounced 8s| R["request_redraw script"]
    B["5-minute interval"] --> D["Display refresh"]
    C["Manual button in HA"] --> D
    R --> D
    D --> S["Redraw e-paper"]

Key lessons learned (build history)


Configuration reference

Sanitised. The real config contains an API encryption key, an OTA password, and WiFi credentials. These secrets are NOT included here — see the password manager. Full config stored at [link to your config location].

# ── reTerminal E1004 (excerpt, secrets removed) ──
esphome:
  name: reterminal-e1004

esp32:
  board: esp32-s3-devkitc-1
  framework:
    type: esp-idf

psram:
  mode: octal
  speed: 80MHz

spi:
  clk_pin: GPIO7
  mosi_pin: GPIO9

# Secrets removed – see password manager:
#   api / ota / wifi

display:
  - platform: epaper_spi
    model: Seeed-reTerminal-E1004
    update_interval: never       # driven by interval + triggers instead
    rotation: 0
    # lambda: two-column layout (agenda left, info column right)

interval:
  - interval: 5min
    then:
      - component.update: epaper_display

button:
  - platform: template
    name: "E1004 Refresh Display"
    on_press:
      then:
        - component.update: epaper_display

Revision #3
Created 2026-08-19 19:16:51 UTC by Pavel Ševčík
Updated 2026-08-19 19:52:23 UTC by Pavel Ševčík