← Hilfe & Doku

Wie binde ich ein TRMNL E-Ink-Display ein?

collabDoo liefert die Anzeige eures Haushalts unter einer geheimen Adresse in drei Formen: Webseite, Bild (PNG) und Daten (JSON). Auf dem TRMNL gibt es zwei Wege, beide über ein Private Plugin: das fertige Bild für den Vollbild-Betrieb (empfohlen, keine Pflege) und Liquid-Vorlagen, wenn collabDoo neben anderen Plugins auf einem Bildschirm stehen soll. Ein eigener Server wird nicht gebraucht.

Teil 1

Voraussetzungen in der App schaffen

Du brauchst ein TRMNL, das mit der TRMNL-Cloud (trmnl.com) verbunden ist, und ein Konto mit Zugriff auf Private Plugins (Developer-Zugang). In collabDoo richtest du die Anzeige ein und erzeugst die Adresse – als Erwachsener mit Admin-Rolle.

  1. Anzeige einschalten

    Pflege → Anzeige (Küchen-Display) → Schalter Öffentliche Anzeige-Adresse aktiv einschalten.

  2. Kalender, Ort, Fotos

    Bis zu 6 Kalender per iCal-Adresse (Adresse prüfen zeigt sofort, ob der Link stimmt; bei Apple webcal:// durch https:// ersetzen), einen Ort für das Wetter, Fotos mit Rotation. Wie das geht, steht in der Anleitung zur Anzeige.

  3. Ansicht für E-Ink wählen

    Unter Ansicht E-Ink/Bild zwischen Woche und Nur heute wählen. Das ist die Voreinstellung für Bild und Webseite; per Adresse lässt sie sich überschreiben.

  4. Anzeige-Adresse erzeugen

    Unter E-Ink / TRMNL auf Anzeige-Adresse erzeugen tippen. Die App zeigt einmalig drei Adressen mit Kopieren-Knopf und QR-Code: Webseite https://team.collabdoo.app/d/<token>, Bild https://team.collabdoo.app/d/<token>.png, Daten https://team.collabdoo.app/d/<token>.json. Für Weg 1 brauchst du die Bild-Adresse, für Weg 2 die Daten-Adresse.

Geheim wie ein Einladungslink

Wer die Adresse kennt, sieht Aufgaben mit Vornamen, Termine und das Foto. Bei beiden Wegen landet sie in der TRMNL-Cloud, weil TRMNL sie abruft. Nicht weitergeben; bei Verlust Neue Adresse erzeugen (die alte stirbt sofort) oder Adresse widerrufen. Der Klartext wird nur im Moment des Erzeugens gezeigt.

Teil 2

Weg 1: das fertige Bild als Private Plugin (Vollbild, empfohlen)

Auf dem TRMNL legst du ein eigenes Plugin an. Es holt regelmäßig die Daten-Adresse ab – das ist nur der Auslöser, damit TRMNL überhaupt neu zeichnet – und zeigt als Inhalt das fertige Bild vom collabDoo-Server. Unten steht Feld für Feld, was einzutragen ist; alles, was hier nicht vorkommt, bleibt leer oder auf dem Standard.

  1. Plugin anlegen

    Auf trmnl.com: Plugins → Private Plugin → Add new. Es öffnet sich die Seite My Plugin – Build your own.

  2. Name

    Frei wählbar, zum Beispiel „collabDoo“. Er dient nur der Unterscheidung mehrerer Plugins.

  3. Strategy

    Auf Polling stellen. Damit holt TRMNL selbstständig Daten von einer Adresse.

  4. Polling URL(s)

    Hier kommt die Daten-Adresse hinein – eine Zeile, nichts sonst. Sie steht in der App unter E-Ink / TRMNL als dritte Adresse und endet auf .json:

    https://team.collabdoo.app/d/<token>.json

    <token> ist dabei die lange Zeichenfolge aus deiner Adresse. Der Knopf Parsen holt noch keine Daten: Er setzt nur Platzhalter in der Adresse ein (die brauchen wir nicht) und zeigt unter Geparst die fertige Adresse. Dass dort dasselbe steht wie oben, ist also richtig. Ob wirklich Daten ankommen, siehst du gleich in der Vorschau des Markup-Editors und später in der Timeline.

  5. Polling Verb, Headers, Body, Form Fields

    Polling Verb bleibt auf GET. Polling Headers, Polling Body und Form Fields bleiben leer – die Adresse trägt das Geheimnis schon in sich.

  6. Remove Bleed Margin

    Einschalten. Dann läuft das Bild bis an den Rand des Displays, statt in einem weißen Rahmen zu sitzen.

  7. Speichern und Markup einfügen

    Speichern, dann oben auf Markup bearbeiten (Edit Markup). Im Reiter Full alles löschen und genau diese eine Zeile einsetzen. Danach wieder Speichern.

    <img src="https://team.collabdoo.app/d/<token>.png?w=1872&h=1404&mode=gray16&view=today&cb={{ updated | replace: ':', '' }}" style="width:100%;height:100%;object-fit:contain;">

    Auch hier <token> ersetzen. Nur diese eine Zeile – stehen zwei <img> im Markup, zeigt TRMNL zwei Bilder untereinander. Die Zeile oben ist auf den TRMNL X eingestellt; für den TRMNL OG stattdessen w=800&h=480&mode=eink eintragen. Das cb=… am Ende setzt TRMNL selbst ein (die Uhrzeit des Servers); es sorgt dafür, dass das Bild frisch geholt wird. Die übrigen Parameter steuern das Bild – alle sind optional:

    ParameterWerteWirkung
    viewweek · todayWochenkacheln oder Tagesansicht. Ohne Angabe gilt die App-Einstellung „Ansicht E-Ink/Bild“.
    w200 … 2000Breite in Pixeln – die Auflösung deines Displays.
    h200 … 2000Höhe in Pixeln. Das Layout skaliert über die Höhe (Vorlage 780 px). Höchstens 3,2 Megapixel insgesamt.
    modeeink · gray · gray16 · color1 Bit gedithert (TRMNL OG) · 4 Graustufen · 16 Graustufen (TRMNL X) · Farbe (Browser, Tablet).
    rotate0 · 90 · 180 · 270Drehung in Grad, etwa für ein hochkant montiertes Display.
  8. Aktualisierungsrate und Wiedergabeliste

    Rechts Maximale Aktualisierungsrate auf 15 Minuten stellen – die Anzeige ändert sich selten schneller. Dann das Plugin in der Wiedergabeliste aktivieren. Fertig.

  9. Kontrolle: Timeline

    Rechts unter Timeline steht, was bei jeder Aktualisierung passiert ist. Dort muss Rendered auftauchen. Steht dort dauerhaft Render skipped — no change in data, fehlt die Polling-Adresse oder das cb=… im Markup.

  10. Optional: Tag und Woche abwechseln

    Ein zweites Private Plugin nach demselben Muster anlegen, im Markup view=today durch view=week ersetzen. Die Reihenfolge in der Wiedergabeliste ist der Wechselrhythmus.

Warum nicht das Katalog-Plugin „Image Display“?

Es kann zwar ein Bild von einer Adresse zeigen, zeichnet den Bildschirm aber nur neu, wenn sich seine Daten ändern – und das ist bei ihm allein die eingetragene Adresse. Die bleibt immer gleich, also steht in der Timeline dauerhaft Render skipped — no change in data und das Display zeigt für immer das erste Bild, obwohl der Server längst ein neues liefert. Genau deshalb der Umweg über Polling.

Vorlagen zum Kopieren

Dieselben Zeilen liegen als fertige Datei unter collabdoo-image.liquid – anklicken, alles markieren, kopieren. Eine Übersicht aller Vorlagen samt Kurzanleitung gibt es unter team.collabdoo.app/trmnl/.

Gut zu wissen

Der Server hält ein Bild 5 Minuten je Adresse und Parametern im Cache und liefert es als 8-Bit-Graustufen-PNG. Falls ein Dienst lieber JPEG nimmt: dieselbe Adresse mit .jpg statt .png, gleiche Parameter.

Teil 3

Weg 2: Private Plugin mit Liquid-Vorlagen (Mashups)

Nötig, wenn collabDoo neben anderen Plugins auf einem Bildschirm stehen soll (Half oder Quadrant). TRMNL rendert dann selbst aus den Daten – mit unseren fertigen Vorlagen.

  1. Plugin anlegen und Polling einstellen

    Schritte 1 bis 6 aus Teil 2 – nur der Name ist ein anderer, zum Beispiel „collabDoo Woche“. Strategy: Polling, als Polling URL(s) wieder die Daten-Adresse:

    https://team.collabdoo.app/d/<token>.json
  2. Vorlage einfügen

    Unter Markup bearbeiten gibt es je Layout einen Reiter. Für jeden Reiter, den du nutzen willst, die passende Vorlage öffnen, alles markieren, kopieren und einfügen. Die Vorlagen liegen als Textdateien auf unserem Server (Tabelle unten, Namen sind anklickbar).

  3. Vorschau prüfen

    Erscheinen keine Einträge, liegen die Daten unter einem Wurzelknoten (passiert bei mehreren Polling-URLs). Dann in der Vorlage days durch IDX_0.days ersetzen – ebenso today, labels, household, weather, unassigned, title, updated, photo_url.

  4. Playlist oder Mashup

    Plugin der Playlist zuweisen. In einem Mashup steht collabDoo zum Beispiel als Viertel neben Wetter oder Nachrichten.

LayoutVorlageZeigt
Full (Woche)collabdoo-full.liquidTageskacheln 4×2, rechts Wetter und Foto, bei 7 Tagen achte Kachel „Zu vergeben“
Nur das Bildcollabdoo-image.liquidDas fertige Server-Bild; Polling dient nur als Auslöser fürs Rendern
Full (Tag)collabdoo-full-today.liquidTermine · Aufgaben (zweizeilig, Kreis-Checkbox) · Wetter und Foto
Half Horizontalcollabdoo-half_horizontal.liquidHeute links, nächster Tag rechts
Half Verticalcollabdoo-half_vertical.liquidHeute groß, darunter die nächsten Tage
Quadrantcollabdoo-quadrant.liquidNur heute, kompakt
Gut zu wissen

Die Full-Vorlagen laden Public Sans und Roboto Condensed von Google Fonts sowie Wettersymbole und Foto vom collabDoo-Server. TRMNL rendert in der Cloud, deshalb sind alle Adressen absolut.

Teil 4

Parameter der Bild-Adresse und Empfehlungen je Gerät

Die Parameter hängst du mit ? und & an die Bild-Adresse. Ohne view gilt die App-Einstellung „Ansicht E-Ink/Bild“.

ParameterWerteBedeutung
viewweek · todayWochenkacheln oder Tagesansicht
w, h200 … 2000Bildgröße in Pixeln; das Layout skaliert über die Höhe (Vorlage 780 px)
modeeink · gray · gray16 · color1 Bit gedithert · 4 Graustufen · 16 Graustufen · Farbe
rotate0 · 90 · 180 · 270Drehung
Empfehlungen

TRMNL X (10,3″, 16 Graustufen, 1872 × 1404): ?w=1872&h=1404&mode=gray16&view=week
TRMNL OG (7,5″, 1 Bit, 800 × 480): ?w=800&h=480&mode=eink&view=today – die Tagesansicht ist auf dem kleinen Display lesbarer als die Woche.
Browser oder Tablet: die Webseiten-Adresse https://team.collabdoo.app/d/<token> aktualisiert sich selbst, ?view=today ist möglich.

Was auf dem Bild zu sehen ist

Woche: je Tag eine Kachel mit Wochentag, „HEUTE“-Plakette, Datum und den Einträgen in zeitlicher Reihenfolge – Termine mit Zeit und Kalender, Aufgaben mit Zeit und Person („07:00 · Max“, offene als „07:00 · offen“). Rechts oben das Wetter mit Stundenleiste 06–20, rechts unten das Tagesfoto. Tag: links die Termine, in der Mitte die Aufgaben als Liste mit Kreis (leer = offen, gefüllt = erledigt), Zeit und Zuständigkeit, dann „Morgen“, wenn Platz ist. Klares Kachel-Design, für E-Ink entworfen.

Teil 5

Fehlersuche

SymptomUrsache und Lösung
„Render skipped — no change in data“ – altes Bild bleibt stehenDas Plugin bekommt keine wechselnden Daten. Beim Katalog-Plugin „Image Display“ ist das bauartbedingt so; nimm das Private Plugin aus Teil 2 mit Polling auf https://team.collabdoo.app/d/<token>.json. Hast du das schon, fehlt im Markup der Cache-Buster &cb={{ updated }}.
Vorschau oder Display bleibt weißBis zum 22.09.2026 lieferte der Server ein Bildformat und einen Sicherheits-Header, die TRMNLs Renderer verwarf. Beides ist behoben – im Plugin Aktualisierung erzwingen. Bleibt es weiß: dieselbe Adresse mit .jpg statt .png probieren.
Antwort „Bad parameters“ (400)Größe außerhalb der Grenzen: höchstens 2000 Pixel je Seite und 3,2 Megapixel insgesamt. Für den TRMNL X reichen w=1872&h=1404.
Antwort „Too many requests“ (429)Höchstens 60 Abrufe je Stunde und Anzeige-Adresse. Beim Herumprobieren im Browser und Plugin-Editor kann das kurz erreicht sein – nach ein paar Minuten geht es weiter.
Bild oder Seite liefert 404Adresse falsch, widerrufen oder Anzeige ausgeschaltet. In der App eine neue Adresse erzeugen.
Alte Darstellung im BrowserBrowser-Cache (60 Sekunden). Mit Umschalttaste neu laden oder einen Parameter ändern.
Bild zu klein oder unscharf auf dem TRMNL Xw=1872&h=1404&mode=gray16
Liquid-Vorlage zeigt nichtsWurzelknoten: days → IDX_0.days und die anderen Felder ebenso (Teil 3, Schritt 4).
Alle Aufgaben stehen auf „Zu vergeben“ oder „offen“Die Aufgaben haben keine zugeteilte Person. Zuständigkeit in der App setzen oder übernehmen lassen.
Kalender fehltDie iCal-Adresse muss mit https:// beginnen und öffentlich abrufbar sein; „Adresse prüfen“ in der App nutzen. Aktualisierung alle 15 Minuten.
Ausrufezeichen hinter der ZeitDie Aufgabe ist überfällig – die Zeit ist heute schon vorbei.
Gut zu wissen

Alle Vorlagen, Symbole und eine Kurzanleitung liegen öffentlich unter team.collabdoo.app/trmnl/.

collabDoo · All for one. Done by all.

Die Woche an der Wand – ohne Strom zu verschwenden.

Ein Bild-Plugin, eine Adresse, fertig.

iPhone & iPad ab iOS 17 · Android ab 8.0

Stefan Wirtz

Stefan Wirtz · Geschäftsführer & Gründer der Code Piraten GmbH

„collabDoo ist bei uns zu Hause entstanden – wir bauen es so, wie wir es selbst brauchen.“

Lern das ganze Team kennen →

collabDoo laden

Kostenlos, ohne Werbung. Wähle dein Gerät:

Ein Konto, alle Geräte: iPhone und Android arbeiten am selben Stand.