From 5ffc980ccd5bc20f9f0f8fbfe0f9b4732815bc25 Mon Sep 17 00:00:00 2001 From: hermes Date: Mon, 5 Oct 2026 17:06:42 +0200 Subject: [PATCH] README: TRMNL feed is BYOS-only, no cloud account --- README.md | 25 +++++++++---------------- 1 file changed, 9 insertions(+), 16 deletions(-) diff --git a/README.md b/README.md index 0f9b5ac..a2012ed 100644 --- a/README.md +++ b/README.md @@ -40,10 +40,9 @@ docker compose up -d --build - `GET /trmnl.json` — JSON feed for TRMNL e-ink displays (see `trmnl-plugin/`) - `GET /health` — JSON: whether today's jokes exist / retries exhausted -## TRMNL e-ink feed +## TRMNL e-ink feed (BYOS — no TRMNL account) -`GET /trmnl.json` returns the day's jokes in a shape ready for a TRMNL -Private Plugin with the **polling** strategy: +`GET /trmnl.json` returns the day's jokes as JSON: ```json { @@ -56,17 +55,11 @@ Private Plugin with the **polling** strategy: } ``` +This is the data source for **trmnl-jokes-server** (BYOS): a small server that +renders the jokes into the 800x480 1-bit BMP the TRMNL firmware expects and +answers `/api/setup` + `/api/display` directly, so the device never talks to +the TRMNL cloud. See the trmnl-jokes-server repo README. + Optional access token: set `TRMNL_TOKEN` in `.env`; requests must then carry -`?token=` or the header `trmnl-token: ` (put the token directly -in TRMNL's polling URL or polling headers). Without the env var the endpoint -is open — the jokes themselves are public anyway. - -Setup on my.trmnl.com: - -1. Plugins → New private plugin. Strategy **Polling**, URL - `https://wiki-jokes.obahan.xyz/trmnl.json` (+ token if enabled). -2. Markup (Full layout): paste `trmnl-plugin/full.liquid`. -3. Assign the plugin to your device's playlist. - -The template was verified to render against the live payload with -python-liquid (5 items, day, stale flag). +`?token=` or the header `trmnl-token: `. Without the env var the +endpoint is open — the jokes themselves are public anyway.