preloader

Elf Stream-Deck-Plugins später

blog-image

Es fing damit an, dass ich wissen wollte, ob das Auto lädt.

Nicht genau. Nicht in einer App. Einfach nur: lädt es, und kommt der Strom von der Sonne? Dafür macht man keinen Browser auf, dafür sucht man keinen Tab. Dafür schaut man kurz hin – wenn es denn irgendwo stünde.

Auf meinem Schreibtisch liegt ein Stream Deck. Und seitdem ist nach und nach eine ganze Reihe eigener Plugins daraus geworden. Elf Stück inzwischen. 😅

So sieht das im Alltag aus - fast jede Taste hier kommt aus einem eigenen Plugin

So sieht das im Alltag aus - fast jede Taste hier kommt aus einem eigenen Plugin

Oben links die drei Tag-Übersichten aus Uptime Kuma (Service, Docker, Server), daneben Strom, Heizung und Auto, in der zweiten Reihe GitHub, Woodpecker und Renovate. Dazu Auslastung, der nächste Termin, Paperless, Jellyfin und die Wallbox. Alles auf einen Blick, ohne einen einzigen Tab. 👌

Haus und Energie

evcc war das erste: Ladezustand und PV-Situation auf einer Taste, und über die Taste lässt sich auch der Lademodus umschalten. Genau das, was ich eigentlich wollte.

Danach kam Home Assistant Graph dazu – ein beliebiger Sensor auf einer Taste, samt seinem Verlauf als kleiner Graph. Temperatur im Wohnzimmer, Stromverbrauch, was man eben gerade im Blick haben will.

Dann Fritzbox fürs Gäste-WLAN (praktisch, wenn Besuch kommt) und AWTRIX, um das Panel im Flur zu steuern.

Arbeit und Entwicklung

CI zeigt den Status meiner Pipelines aus Woodpecker und GitHub Actions. Rot auf dem Schreibtisch ist deutlich schwerer zu ignorieren als eine Mail, die man wegklickt.

Renovate sammelt die offenen Renovate-Pull-Requests über alle Repos hinweg ein – und man kann sie direkt von der Taste aus mergen. Gefährlich bequem. 😁

Dazu Arbeitszeit und Grafana, das ein beliebiges Panel auf eine Taste oder den Touchstreifen rendert.

Haushalt und Medien

Paperless zeigt, wie viel im Posteingang von paperless-ngx liegt – der sanfte Hinweis, dass da noch Dokumente auf Verschlagwortung warten. Jellyfin zeigt, was gerade läuft, mit Pause und Stopp. Und Termine sagt mir, was als Nächstes ansteht.

Das umfangreichste Plugin der Reihe hat einen eigenen Beitrag bekommen: Kuma Glance für Uptime Kuma.

Was ich dabei gelernt habe

Alle Plugins sind Node.js und TypeScript auf dem offiziellen Stream-Deck-SDK, die Tastenbilder entstehen als SVG zur Laufzeit. Nach elf Stück haben sich zwei Dinge herauskristallisiert:

Ereignisse schlagen Polling. Wo ein Dienst eine offene Verbindung anbietet, nehme ich die. Dann schlägt die Taste sofort um, statt bis zum nächsten Abfrageintervall fröhlich das Falsche anzuzeigen.

Eine Taste, die lügt, ist schlimmer als eine dunkle. Das ist die wichtigere Erkenntnis. Wenn die Verbindung weg ist, muss man das sehen – sonst leuchtet da grün, während der Dienst längst umgefallen ist. Alle Plugins haben deshalb einen eigenen Zustand für „keine Verbindung", statt einfach den letzten bekannten Wert stehenzulassen.

Alle Repos sind offen, eine Übersicht gibt es auf der Projektseite.