collabDoo auf dem TRMNL
Termine und Aufgaben deines Haushalts als Plugin auf dem TRMNL‑E‑Ink‑Display, neben deinen anderen Plugins.
Ausführliche Anleitung mit allen Feldern: www.collabdoo.com/doku-trmnl.html. Diese Seite hier ist die Kurzfassung samt den Vorlagen zum Kopieren.
Voraussetzungen
- Ein TRMNL, das mit der TRMNL‑Cloud (trmnl.com) verbunden ist, und ein Konto mit Zugang zu Private Plugins.
- In der collabDoo‑App: Pflege → Anzeige ist eingeschaltet, Kalender und Ort sind eingetragen, und du hast eine Anzeige‑Adresse erzeugt. Die App zeigt drei Adressen: Webseite, Bild (
https://team.collabdoo.app/d/<token>.png) und Daten (https://team.collabdoo.app/d/<token>.json).
Die Adresse ist ein Geheimnis wie ein Einladungslink. Wer sie kennt, sieht Aufgaben mit Vornamen und alle Termine. Bei Verlust in der App widerrufen oder neu erzeugen.
Einrichtung in fünf Schritten
- Auf trmnl.com Plugins → Private Plugin → Add new. Name z. B. „collabDoo“.
- Strategy: Polling. Als Polling‑URL die Daten‑Adresse aus der App eintragen (endet auf
.json). Verb GET, keine Header nötig. - Speichern und Edit Markup öffnen. Für jedes Layout die passende Vorlage von unten einfügen (Full, Half Horizontal, Half Vertical, Quadrant).
- In der Vorschau prüfen. Erscheinen keine Einträge, liegen die Daten evtl. unter einem Wurzelknoten. Dann in der Vorlage
daysdurchIDX_0.daysersetzen (und ebensotoday,labels,household,weather,unassigned,title,updated). - Das Plugin einer Playlist zuweisen, allein oder als Mashup mit anderen Plugins.
Aktualisierung: TRMNL holt die Daten in seinem Rhythmus. Der collabDoo‑Server liefert immer den aktuellen Stand; die Zeiten stehen in der Zeitzone und Sprache des Haushalts.
Vorlagen
| Layout | Zeigt | Vorlage |
|---|---|---|
| Full (800×480) | Tageskacheln 4 × 2 (Wochentag, Datum, Einträge chronologisch mit Zeit · Vorname), rechts Wetter und Foto; bei 7 Tagen achte Kachel „Zu vergeben“ | collabdoo-full.liquid |
| Nur das Bild (Full) | Das fertige Server-Bild als Private Plugin mit Polling — nötig, wenn „Image Display“ mit „Render skipped — no change in data“ stehen bleibt | collabdoo-image.liquid |
| Full, Tagesansicht (800×480) | Drei Spalten: Termine des Tages · Aufgaben („Heute“, „Zu vergeben“, „Morgen“) · Wetter mit Stundenleiste und Foto | collabdoo-full-today.liquid |
| Half Horizontal (800×240) | Heute links, nächster Tag mit Einträgen rechts | collabdoo-half_horizontal.liquid |
| Half Vertical (400×480) | Heute groß, darunter die nächsten Tage kompakt | collabdoo-half_vertical.liquid |
| Quadrant (400×240) | Nur heute, so viele Zeilen wie Platz ist | collabdoo-quadrant.liquid |
Nur das fertige Bild (ohne Liquid)
Wenn du keine Vorlage pflegen willst, nimm collabdoo-image.liquid: ein Private Plugin mit Polling auf die Daten‑Adresse, im Markup nur das Bild. Der Server rendert die Anzeige selbst in Displaygröße.
Warum Polling, obwohl nur ein Bild gezeigt wird? TRMNL rendert einen Bildschirm nur neu, wenn sich die Daten des Plugins ändern. Das Katalog‑Plugin „Image Display“ hat als Daten nur die eingetragene Adresse – die ändert sich nie, im Verlauf steht dauerhaft „Render skipped — no change in data“ und das Display zeigt für immer das erste Bild. Die Daten‑Adresse ändert sich bei jedem Abruf und löst das Rendern aus; der Cache‑Buster &cb=… im Markup holt das Bild frisch.
Für andere Auflösungen w und h anpassen (200 bis 2000); TRMNL X: w=1872&h=1404&mode=gray16 (16 Graustufen). Mit &view=today liefert der Server statt der Woche die Tagesansicht (Termine · Aufgaben · Wetter und Foto); ohne Parameter gilt die Einstellung „Ansicht E‑Ink/Bild“ aus der App.
Datenfelder
Die Daten‑Adresse liefert alles fertig formatiert. Die wichtigsten Felder für eigene Vorlagen:
| Feld | Inhalt |
|---|---|
title, updated | „Montag, 21. September“ und Uhrzeit des Stands |
labels | Beschriftungen in der Haushaltssprache: today, tomorrow, all_day, nothing_planned, unassigned, updated, tasks, events, more („+{n} weitere“) |
days[] | je Tag label (weekday, weekday_short, weekday_long, day, day_month, month_short), is_today, lines[] (kind event|task, time, title, who, done, overdue, color), line_count, dazu roh events[] und tasks[] |
today | der heutige Tag aus days |
unassigned[] | offene Aufgaben ohne Person: title, time, day_label |
weather | label (temp, location, condition, today); current.glyph/temp, hourly[] (hour, glyph, temp), daily[] (weekday_short, glyph, temp). Symbole: /trmnl/wx-<glyph>.svg |
photo_url | absolute Adresse des Tagesfotos (oder null) — bleibt auch gesetzt, wenn ein Gruß vorliegt |
note | Gruß an alle der letzten 24 Stunden als Post-it {text, sender_name, effect, icon_svg} (oder null). Die Vorlagen legen den Zettel über das Foto (randlos, mit hartem Schatten). effect = hearts | confetti | stars | thumbs | highfive | sun; icon_svg = fertiges monochromes <svg> des Symbols (Pfade, keine Emojis — ungeescaped einsetzen: {{ note.icon_svg }}, Farbe über color) |
household.name, png_url | Haushaltsname, Adresse des fertigen Bildes |
English summary
Show your household's events and tasks as a TRMNL plugin next to your other plugins. In the collabDoo app (Care → Display) create the display address; the app shows a data address ending in .json. On trmnl.com add a Private Plugin with strategy Polling, paste that data address as the polling URL, then paste the template for each layout from the table above into the markup editor. If nothing shows, your data may sit under a root node: replace days with IDX_0.days (same for today, labels, household, weather, unassigned, title, updated). Alternatively, use the image address in a single <img> tag for the Full layout (add &view=today for a day view instead of the week). The address is a secret: revoke or recreate it in the app if it leaks. All times and labels come pre‑formatted in the household's language and time zone.