Hallo zusammen,
ich habe für meinen digitalen Bilderrahmen ein Modul geschrieben, mit dem sich immich-kiosk (https://github.com/damongolding/immich-kiosk) (eine Diashow für Immich (https://immich.app/)) 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
Installationupdate add https://raw.githubusercontent.com/binford6000/fhem-immichkiosk/main/controls_immichkiosk.txt
update
shutdown restartSchnellstartdefine 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 onOhne 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 IntegrationLä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.
Quellcodegithub.com/binford6000/fhem-immichkiosk (https://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