Neues Modul ImmichKiosk – immich-kiosk aus FHEM steuern

Begonnen von binford6000, 12 November 2026, 16:50:32

Vorheriges Thema - Nächstes Thema

binford6000

Hallo zusammen,

ich habe für meinen digitalen Bilderrahmen ein Modul geschrieben, mit dem sich immich-kiosk (eine Diashow für Immich) aus FHEM steuern lässt. Es ist aus einer Sammlung von dummy, notify, at und Perl-Funktionen entstanden und ersetzt diese komplett. Läuft immich-kiosk auf einem Tablet im Fully Kiosk Browser, kann das Modul auch die Steuerung des Tablets über die Fully REST-API übernehmen.

Was es kann
  • Albumliste wird nonblocking über die Immich-API gelesen und steht als set-Liste zur Verfügung
  • Albumwechsel per URL-Parameter – kein SSH, keine Scripts auf dem Kiosk-Host, die config.yaml bleibt unangetastet
  • Virtuelle Alben: mehrere Alben zu einem Eintrag zusammenfassen oder Kiosk-Schlüsselwörter wie favorites nutzen
  • Automatische Album-Rotation; die Anzeigedauer pro Album wird aus Bildanzahl und Kiosk-Layout berechnet (per EXIF, z.B. bei splitview: zwei Hochformat-Bilder = eine Slide)
  • Rotation läuft nach einem FHEM-Neustart mit dem aktuellen Album weiter
  • Readings für Bildanzahl, Slides und Gesamtdauer des Albums sowie für Fortschritt, Restlaufzeit und nächsten Wechsel der Rotation
  • Optional: Fully Kiosk Browser – Start-URL wird gesetzt und geladen, Bild vor/zurück und Favorit setzen/entfernen per JavaScript-Injection
  • API-Key und Passwörter liegen im KeyValueStore, nicht in der fhem.cfg
  • Verständliche Fehlermeldungen im Reading lastError (z.B. fehlender oder ungültiger API-Key, fehlende Berechtigung, falsches Fully-Passwort)

Voraussetzungen
  • Immich mit API-Key (Berechtigungen "album.read" und "asset.read")
  • immich-kiosk, erreichbar vom Anzeigegerät
  • optional: Fully Kiosk Browser mit aktivierter Remote Administration

Installation
update add https://raw.githubusercontent.com/binford6000/fhem-immichkiosk/main/controls_immichkiosk.txt
update
shutdown restart

Schnellstart
define kiosk ImmichKiosk http://immich.lan:2283 http://kiosk.lan:3000
set kiosk apiKey <immich-api-key>
attr kiosk layout splitview
set kiosk album <name>
set kiosk rotation on

Ohne weitere Konfiguration steht die fertige Kiosk-URL des gewählten Albums im Reading url und kann per notify an ein beliebiges Anzeigegerät weitergegeben werden.

Optional: Fully Kiosk Browser Integration
Läuft immich-kiosk auf einem Tablet im Fully Kiosk Browser, übernimmt das Modul auch die Steuerung des Tablets über die Fully REST-API.

In Fully:
  • Remote Administration aktivieren und ein Passwort setzen (Remote Admin / REST-API ist eine PLUS-Funktion)
  • Die REST-API ist standardmäßig unter Port 2323 erreichbar
  • JavaScript-Injection gibt es ab Fully-Version 1.60

In FHEM:
attr kiosk fullyUrl http://<tablet-ip>:2323
set kiosk fullyPassword <passwort>

Danach gilt:
  • Bei jedem Albumwechsel (manuell oder durch die Rotation) wird die Kiosk-URL als Start-URL in Fully gespeichert und geladen – das Album bleibt also auch nach einem Neustart des Tablets erhalten
  • Zusätzliche set-Befehle: nextImage, prevImage, addToFavorites, removeFromFavorites; sie klicken die jeweiligen Bedienelemente von immich-kiosk per JavaScript-Injection
  • Den Favoriten setzt immich-kiosk mit seinem eigenen API-Key in Immich – der Key aus dem Modul braucht dafür keine Schreibrechte
  • Das Fully-Passwort liegt wie der API-Key im KeyValueStore

Die vollständige Doku (deutsch und englisch) gibt es per help ImmichKiosk.

Quellcode
github.com/binford6000/fhem-immichkiosk

⚠️ Hinweis: Das Modul wurde und wird mit KI-Unterstützung entwickelt. Es läuft und ist in meinem eigenen Setup getestet – Nutzung trotzdem auf eigene Gefahr.

Es ist mein erstes FHEM-Modul. Feedback, Fehlerberichte und Verbesserungsvorschläge sind sehr willkommen – gern hier im Thread oder als Issue auf GitHub.

Viele Grüße
Sebastian