Zurück zur Übersicht

OpenPaper bekommt einen Telegram-Bot

Ich habe eine Telegram-Integration für OpenPaper gebaut. Hier ein Blick darauf, wie Nachrichten zu Displayinhalten werden und was passiert, wenn der Rahmen schläft.

Ich habe eine Telegram-Integration für OpenPaper gebaut. Man schickt dem Bot ein Foto oder eine Textnachricht, und daraus wird der nächste Inhalt auf dem Rahmen. Fotos mit Bildunterschrift gehen auch. Das Ganze ist jetzt als Beta online.

Statt der App kannst du einfach Bilder per Telegram ladenHandy mit Telegram neben einem OpenPaper 13; beide zeigen dasselbe Hundefoto.Statt der App kannst du einfach Bilder per Telegram laden

Technisch hängt die Nachricht an einem „Paper“. So nennen wir bei paperlesspaper den Inhalt, den man einem Rahmen zuweist. Die neueste Nachricht ersetzt den bisherigen Inhalt dieses Papers. Mehrere Rahmen können dasselbe Paper anzeigen und bekommen dann alle dasselbe Bild. Für unterschiedliche Inhalte nimmt man separate Papers. Über /papers lassen sich die verbundenen Papers im Chat auflisten.

Im Chat meldet der Bot den Stand der Übertragung.OpenPaper 13 und Handy auf einer Kommode zeigen dasselbe per Telegram gesendete Küstenfoto.Im Chat meldet der Bot den Stand der Übertragung.

Die Integration baut auf unserer Open-Integration-Schnittstelle auf. Dazu gehören ein JSON-Manifest, eine Einstellungsseite und eine HTML-Seite für die Darstellung. Aus dieser Darstellung erzeugt das System ein Bild für das E-Ink-Display. Das Layout lässt sich also mit gewöhnlichem HTML, CSS und JavaScript umsetzen. Wer sich den Aufbau anschauen möchte: Das Manifest der Telegram-Integration ist öffentlich, die Schnittstelle ist in unseren Developer Docs beschrieben.

Ein etwas kniffligerer Teil ist die Rückmeldung. Eine Nachricht kann beim Bot schon angekommen sein, während der Rahmen noch schläft. Deshalb gibt es getrennte Meldungen für den Empfang, den bereitgestellten Inhalt und die bestätigte Synchronisierung durch den Rahmen. Die Integration fordert dafür die Rechte paper:content:write und paper:delivery:read an: Inhalte aktualisieren und den Übertragungsstatus lesen. Für Statusrückmeldungen ist im Manifest ein Callback hinterlegt. Mit /status kann man den Stand auch selbst abfragen.

Das weckt einen schlafenden Rahmen nicht automatisch auf. Ist er offline oder im Schlafmodus, kommt das Update bei seiner nächsten Verbindung. „Nachricht gesendet“ heißt also noch nicht „Bild auf dem Display“.

Auch reine Textnachrichten lassen sich anzeigen.Telegram-Nachricht „Bin um 18 Uhr zu Hause.“ auf einem Handy und einem OpenPaper 13 in einer Küche.Auch reine Textnachrichten lassen sich anzeigen.

Die Telegram-Integration auf unserer Webseite enthält die Beschreibung und den Link zur Installation.

Zum Verbinden fügt man Telegram in der App als Integration hinzu, speichert das Paper und öffnet die Einstellungen noch einmal. Dort führt „Mit Telegram verbinden“ über einen persönlichen Link zu @paperlesspaper_frame_bot. Bot starten, Foto schicken, fertig. Wir betreiben dafür einen gemeinsamen Bot; für die Nutzung muss man keinen eigenen Bot oder Server einrichten. Die Verbindung lässt sich in den Einstellungen wieder aufheben.

Unser Projekt ist komplett Open Source: Software, Firmware, Hardware und die Konstruktionsdateien für den Rahmen. Die Repos liegen auf GitHub. Wer selbst etwas bauen oder verändern möchte, findet dort den Code und die Dateien dazu. Für eigene Integrationen gibt es außerdem die dokumentierte Open-Integration-Schnittstelle.

Die Telegram-Integration ist noch Beta. Wenn etwas hakt oder ihr Fragen zur Umsetzung habt, schreibt gern.

Einrichtung und Details