Tablet Immich Frame Integration¶
Android Tablet als Smart Display mit Immich Slideshow, ±3 Tage Memories, Geburtstags- und Jahrestags-Feature
Changelog¶
2026-04-11 - Bugfix: ImmichFrame 1.0.33.0 blinkt/flackert im iframe:
- Bug: ImmichFrame-iframe wechselt ständig zwischen schwarz und weiß (Blinken alle ~30 Sekunden)
- Ursache: ImmichFrame v1.0.33.0 (erschienen 10. April 2026) hat neues Feature "Auto-Refresh on Connection Error" (PR #579). Im iframe-Kontext (Android WebView) verliert das Frontend die Verbindung zum Backend → Seiten-Reload alle 30s
- Diagnose: Screenshots via ADB zeigten Schwarz-Weiß-Zyklus; ImmichFrame-Logs zeigten keine HTTP-Requests → URL wird kurz geladen, dann abgebrochen
- Fix: ImmichFrame auf v1.0.32.0 gepinnt (beide Compose-Files auf NAS angepasst):
1. compose.yml und docker-compose.yml: :latest → :v1.0.32.0
- Wichtig: NIEMALS :latest verwenden! Vor jedem Update Changelog auf "Auto-Refresh", "reload", "SignalR" prüfen
2026-04-11 - Bugfix: set_birthday_person.py - Foto-Count falsch:
- Bug: count_photos_for_person() verwendete size: 1 → Immich API gibt total: 1 zurück (zählt nur gelieferte Items, nicht Gesamtanzahl!)
- Fix: size: 1000, len(items) statt total
- Neu: MIN_PHOTOS_FOR_BIRTHDAY = 3 → bei weniger als 3 Fotos bleibt normaler Modus aktiv (verhindert Blinken durch zu wenige Fotos)
2026-03-22 - Bugfix: Personenname mit Leerzeichen nicht gequotet:
- Bug: shell_command.immichframe_set_birthday übergibt den Namen ohne Anführungszeichen → bei Namen mit Leerzeichen (z.B. "Elisabeth Müller") empfängt das Script nur sys.argv[1] = "Elisabeth" → Person nicht gefunden → normaler Modus bleibt aktiv
- Beispiel: Eli (Elisabeth Müller) hatte heute Geburtstag, ImmichFrame zeigte trotzdem normale Fotos
- Fix: "" in configuration.yaml → Name wird korrekt als ein Argument übergeben
- Betroffen: Alle Personen mit Vor- UND Nachname im Kalender
- Manuell aktiviert für Elisabeth Müller (30. Geburtstag)
2026-02-22 - Bugfix: Tablet-IP veraltet in set_birthday_person.py:
- Bug: IP im Script war noch 192.168.178.63 (alt) statt 192.168.178.105 → ADB-Refresh fehlschlug nach jedem Container-Neustart
- Folge: Nach dem täglichen Container-Neustart (~00:01 Uhr für Birthday-Reset) öffnete die HA-App den ImmichFrame-Iframe bevor der Container bereit war → Tablet zeigte dauerhaft "Looks like your immich-server is offline"
- Analyse: 34 Container-Neustarts in 19 Tagen identifiziert (normal durch Birthday-Reset-Automation)
- Fix 1: IP in set_birthday_person.py auf 192.168.178.105:5555 korrigiert
- Fix 2: 15s Sleep nach docker restart eingebaut (time.sleep(15) vor refresh_tablet())
- Tablet via ADB sofort refreshed → ImmichFrame läuft wieder
2026-02-20 - Bugfix: Geburtstags-Reset zu früh (00:01 → 23:59):
- Bug: Kalender-Events starten um Mitternacht (00:00) → Reset-Automation lief um 00:01 → Geburtstagsmodus nur 1 Minute aktiv!
- Fix: Reset-Trigger von 00:01:00 auf 23:59:00 geändert (automations.yaml)
- Jetzt: Geburtstagsmodus aktiv von 00:00 bis 23:59 (fast 24h)
- Manuell aktiviert für Maria Tonko Sr. (70. Geburtstag heute)
2026-02-19 - Geburtstags-Overlay im ImmichFrame-View:
- Neue kompakte Übersicht der nächsten 3 Geburtstage/Jahrestage direkt im Fotos-View
- Erscheint immer (zwischen dem heutigen Geburtstag-Overlay und dem Slideshow-Iframe)
- Format: "🎂 Name (Alter J.) – in X Tagen (DD.MM.)" bzw. "morgen (DD.MM.)"
- 💕 für Jahrestage, 🎂 für Geburtstage
- Dunkles transparentes Design (passt zum Foto-Hintergrund)
- Kein separater Sensor – Template direkt in der Lovelace-Karte
2026-02-19 - Finale Verifikation (nach HA-Neustart):
- Vollständiger Re-Test nach HA-Neustart bestätigt: alles funktioniert einwandfrei
- 17 Shell Commands geladen (inkl. neuem tablet_test)
- ADB Volldiagnose via tablet_test: Gerät Lenovo TB-8505XS, Android 9, Root uid=0 ✓
- Display Awake/ON, Akku 60%/25°C, Foreground: HA Companion WebView ✓
- sensor.naechster_geburtstag: "Maria Tonko Sr – morgen" (days:1, age:70) ✓
- Alle 7 Tablet-Automationen ON, ImmichFrame Port 8085 erreichbar ✓
2026-02-19 - Dashboard Redesign (Mushroom-Stil):
- Dashboard dashboard-tablet komplett überarbeitet im Thermostat-Dashboard-Stil
- 4 Views: Fotos · Home · Lichter · Rolläden
- Home-View neu:
1. mushroom-title-card: Zuhause + dynamisches Datum
1. Temperaturen: Innen & Außen (mushroom-template-card, farbcodiert)
1. Nächster Geburtstag (voll breit): sensor.naechster_geburtstag
1. Zeigt Name, Countdown in Tagen, Alter das er/sie wird
1. Farbe: pink (heute) · orange (≤3 Tage) · gelb (≤7 Tage) · grau (später)
1. Inkl. Jahrestage (Hochzeitstag, Jahrestag)
- Lichter-View neu:
1. Küche Arbeitslicht: light.kuche_arbeitsbereich_licht
1. Fernsehlicht: input_button.fernsehlicht_einschalten (Szenen-Knopf)
1. Terrasse: switch.terrasse_licht
1. Indirekte LED: switch.terrasse_indirektes_led_licht_terrasse_indirektes_led_licht
- Rolläden-View: mushroom-title-card hinzugefügt, Covers unverändert
- Neuer Template-Sensor: sensor.naechster_geburtstag
1. Berechnet nächsten Geburtstag/Jahrestag aus Liste (35 Events)
1. Attribute: name, days, age
1. Aktualisiert sich täglich automatisch
- Neues Diagnose-Script: tablet_test.sh → shell_command.tablet_test
1. Vollständige ADB-Diagnose: Gerätinfo, Root, Display, Akku, Apps, Netzwerk
1. Log: /config/tablet_test.log
2026-02-19 - System-Test (vollständig):
- Alle Shell Commands getestet → alle OK:
1. tablet_adb_connect, tablet_screen_on/off, tablet_open_dashboard ✓
1. tablet_auto_brightness_on/off, tablet_set_brightness ✓
1. immichframe_reset_birthday ✓
- Sensoren geprüft: sensor.memories_info → 92 Fotos, 12 Jahre, "Vor genau 1 Jahr" ✓
- Alle 7 Tablet-Automationen aktiv + korrekt getriggert ✓
- ImmichFrame Container läuft (Port 8085) ✓
- Reaktionszeit Commands: 1-4s (normal)
- Wiki-Cleanup: 4 obsolete Seiten entfernt (tablet_shutdown_problem, tablet_magisk_root, 2x offene_projekte)
2026-02-18 - Session 13: Tablet Cleanup nach Reset:
- Firmware-Reset durch Rooting hatte alle Apps zurückgesetzt
- Cleanup-Script erstellt: /config/scripts/tablet_cleanup.sh
- Neuer Shell Command: tablet_cleanup
- Strategie: Alle Third-Party Apps automatisch entfernt (pm list packages -3) + System-Bloatware deaktiviert
- Magisk bleibt als einzige Third-Party App erhalten
- Kiosk-Settings wiederhergestellt (Stay Awake, kein Lockscreen, Auto-Brightness)
2026-02-18 - Session 12 (Abschluss): ADB dauerhaft gefixt:
- Magisk service.d Script installiert: /data/adb/service.d/adb_wifi.sh
- ADB WiFi startet automatisch nach jedem Reboot auf Port 5555
- tablet_adb_connect erweitert: adb kill-server vor Reconnect → kein stale connection Problem
- IP 192.168.178.105 statisch in Android WiFi-Einstellungen gesetzt
- screen_on/off getestet ✓ | Presence Detection getestet ✓
- Status: Vollständig abgeschlossen
2026-02-18 - Session 12: ADB-Fix & Magisk Persistenz:
- IP statisch gesetzt: 192.168.178.105
- Neue Unterseite erstellt: Rooting-Anleitung
- configuration.yaml: IPs in brightness-Commands auf 192.168.178.105 aktualisiert
- Neuer Shell Command: tablet_magisk_setup (einmalig ausführen)
- Neues Script: /config/scripts/tablet_magisk_setup.sh
1. Erstellt /data/adb/service.d/adb_wifi.sh auf Tablet via Magisk
1. Setzt persist.adb.tcp.port=5555 → ADB WiFi überlebt Reboots
2026-02-18 - Tablet gerootet (Deep Brick Recovery + Magisk v27.0):
- Tablet war in permanentem Bootloop → Deep Brick Recovery mit SP Flash Tool v5.1916
- Firmware-Flash: TB-8505X_S100035_200313_ROW (MT6761, März 2020)
- Root erfolgreich mit Magisk v27.0 (stabile Version)
- Neue IP nach Root: 192.168.178.97
- Detaillierte Anleitung: → Rooting-Anleitung
2026-02-05 - Session 11: Jahrestage & "Vor X Jahren" Overlay:
- NEU: Jahrestags-Feature: Hochzeitstag (03.06.) und Jahrestag (11.11.)
- Script erkennt "Hochzeitstag"/"Jahrestag" Keywords → zeigt Fotos von Anatol + Maria
- Template Sensor erweitert: "💕 Hochzeitstag! X Jahre!" / "💕 Jahrestag! X Jahre!"
- NEU: "Vor X Jahren" Overlay: Zeigt "📸 Vor genau X Jahr(en)!" bei besonderen Jahren
- memories_info.json speichert Jahre-Statistik für Sensor
- Calendar Events "Hochzeitstag" und "Jahrestag" angelegt
2026-02-03 - Session 10: Geburtstag-Feature & Vollbild-Modus:
- Geburtstagsliste komplett: 33 Personen, alle mit Geburtsjahr
- Neue Personen: Elisabeth Müller, Susi (in Calendar + Immich)
- Immersive Mode: Navigation Bar automatisch versteckt (persistent)
- tablet_control.sh: setup, status, refresh_ha Kommandos hinzugefügt
- set_birthday_person.py: Auto-Refresh nur wenn Bildschirm an
2026-02-03 - Session 9: Auto-Brightness & Root-Check:
- Auto-Brightness aktiviert (war deaktiviert)
- Root-Status geprüft: Tablet ist NICHT gerootet (Bootloader gesperrt)
- Shizuku getestet als Alternative - wieder entfernt (kein Vorteil)
- Troubleshooting ergänzt: ADB WiFi nach Neustart
2026-02-03 - Session 8: Mindestanzahl Fotos & Auffüll-Logik:
- Duplikate-Problem analysiert (JPG+DNG Paare zeigten selbes Bild mehrfach)
- update_memories.py erweitert: MIN_PHOTOS = 50
- Bei weniger als 50 Memories: Zufällige Fotos von Anatol/Maria werden ergänzt
- Verwendet Immich Search API mit personIds für effiziente Suche
2026-02-03 - Session 7: Shell Commands Fix & Bild-Skalierung:
- SSH-Key statt sshpass: HA shell_command Kontext hatte kein sshpass
- SSH-Key erstellt: /config/.ssh/id_ed25519
- Alle Shell Commands funktionieren jetzt zuverlässig
- Bild-Skalierung: Ken Burns deaktiviert (schnitt Bilder ab)
- Aktuelle Einstellung: Bilder werden vollständig angezeigt
2026-02-03 - Update: Geburtstags-Kalender Migration:
- 31 Geburtstage in Google Calendar (griesauera_gmail_com) eingetragen
- Automation von calendar.geburtstage (read-only) auf calendar.griesauera_gmail_com umgestellt
- Vollständige Geburtstagsliste dokumentiert
2026-02-03 - Session 4: Memories & Geburtstags-Feature (ABGESCHLOSSEN):
- ImmichFrame Docker Container aufgesetzt (Port 8085)
- Dashboard "Fotos" View mit iframe im Panel-Modus
- Vollbild-Modus via HA Companion App
- ±3 Tage Memories: Python-Script sucht täglich Fotos von heute ±3 Tage aus allen Jahren
- Album "ImmichFrame Memories" mit aktuell 150 Fotos
- Cron-Job für tägliche Aktualisierung (00:05 Uhr)
- Geburtstags-Feature: Bei Geburtstag werden nur Fotos dieser Person angezeigt
- Dynamische Personen-Erkennung via Immich API (funktioniert auch bei Namensänderungen)
- HA Automationen: Trigger bei calendar.griesauera_gmail_com, Reset um 00:01
- Timezone-Fix für korrektes Datum
2026-02-02 - Session 2: Tablet Cleanup & HA Integration:
- 39+ Apps/Bloatware via ADB entfernt
- Shell Commands und Automationen erstellt
2026-02-02 - Session 1: ADB over WiFi Setup:
- Technologie-Wechsel zu ADB over WiFi (kostenlos!)
- Tablet-Verbindung hergestellt
2026-01-16 - Projektstart:
- Initiale Planung
Projektziel¶
Ein Android Tablet als Smart Display mit: - ImmichFrame Slideshow: Fotos aus Immich als Diashow - ±3 Tage Memories: Fotos von heute ±3 Tage aus allen vergangenen Jahren - Geburtstags-Feature: An Geburtstagen nur Fotos dieser Person - Jahrestags-Feature: An Hochzeitstag/Jahrestag Fotos vom Paar - "Vor X Jahren" Overlay: Zeigt bei besonderen Jahren (1, 5, 10, ...) ein Overlay - Zeitsteuerung: 09:00 ein, 22:00 aus - Vollständige HA-Integration
Hardware¶
- Tablet: Lenovo Tab M8 HD (2nd Gen) TB-8505F/TB-8505XS
- Android: 9 (gerootet mit Magisk v27.0)
- IP-Adresse: 192.168.178.105 (statisch)
- ADB Port: 5555
Architektur¶
Overlay-Sensoren¶
sensor.geburtstag_heute¶
Zeigt Geburtstage UND Jahrestage an:
| Typ | Anzeige | Icon |
| Geburtstag | "🎂 [Name] wird [Alter]!" | mdi:cake-variant |
| Hochzeitstag (03.06.) | "💕 Hochzeitstag! X Jahre!" | mdi:heart |
| Jahrestag (11.11.) | "💕 Jahrestag! X Jahre!" | mdi:heart |
Attribut event_type: hochzeit, jahrestag, geburtstag, oder none
sensor.naechster_geburtstag¶
Zeigt den nächsten anstehenden Geburtstag/Jahrestag: - State: "🎂 Maria Tonko Sr – morgen" / "🎂 Anatol – in 3 Tagen" / "💕 Hochzeitstag – heute!" - Attribute: name (str), days (int), age (int) - Datenquelle: 35 Events hardcoded in Template Sensor (33 Geburtstage + 2 Jahrestage) - Icon-Farbe: pink (heute) · orange (≤3 Tage) · gelb (≤7 Tage) · grau (>7 Tage)
sensor.immichframe_memories_info¶
Zeigt "Vor X Jahren" Info für Memories: - State: "📸 Vor genau X Jahr(en)!" bei besonderen Jahren (1, 5, 10, 15, 20, 25) - Datenquelle: memories_info.json (täglich vom Script aktualisiert) - Attribute: total_photos, oldest_year, years_count, special_years
Jahrestags-Feature¶
An Hochzeitstag und Jahrestag werden automatisch Fotos von Anatol + Maria angezeigt!
Calendar Events¶
| Event | Datum | Jahr |
| Hochzeitstag | 03.06. | seit 2023 |
| Jahrestag | 11.11. | seit 2015 |
Die bestehende immichframe_birthday_start Automation erkennt diese Events automatisch.
Script-Keywords¶
Das Script set_birthday_person.py akzeptiert jetzt auch:
- hochzeitstag → zeigt Anatol + Maria
- jahrestag → zeigt Anatol + Maria
- anniversary → zeigt Anatol + Maria
- couple → zeigt Anatol + Maria
# Jahrestags-Modus aktivieren
python3 set_birthday_person.py hochzeitstag
# Alle Keywords auflisten
python3 set_birthday_person.py list
ImmichFrame Docker¶
Container-Details¶
- Image: ghcr.io/immichframe/immichframe:latest
- Port: 8085 (extern) → 8080 (intern)
- Web-UI: http://192.168.178.20:8085
- Compose: /usr/anatol/dockeruser/compose/immichframe/docker-compose.yml
- Daten: /usr/anatol/dockeruser/data/immichframe/
docker-compose.yml¶
services:
immichframe:
image: ghcr.io/immichframe/immichframe:latest
container_name: immichframe
restart: unless-stopped
ports:
1. "8085:8080"
environment:
1. TZ=Europe/Vienna
volumes:
1. /usr/anatol/dockeruser/data/immichframe:/app/config
1. /etc/localtime:/etc/localtime:ro
1. /etc/timezone:/etc/timezone:ro
Bild-Skalierung¶
Einstellungen in Settings.yml - nach Änderung "docker restart immichframe" | Modus | ImageZoom | ImagePan | ImageFill | Beschreibung | | Aktuell: Ken Burns | true | true | false | Sanftes Zoomen/Schwenken (dynamischer Look) | | Vollständig | false | false | false | Bilder vollständig angezeigt (evtl. schwarze Balken) | | Bildschirm gefüllt | false | false | true | Immer vollflächig (schneidet ab, keine Balken) |
±3 Tage Memories Feature¶
Zeigt Fotos von heute ±3 Tage aus allen vergangenen Jahren - erweitert die native ImmichFrame Memories-Funktion!
Funktionsweise¶
- Python-Script läuft täglich um 00:05 via Cron
- Sucht alle Fotos mit Datum heute ±3 Tage (aus Jahren vor dem aktuellen)
- Speichert Jahre-Statistik in memories_info.json
- Aktualisiert das Album "ImmichFrame Memories"
- ImmichFrame zeigt dieses Album an
Script: update_memories.py¶
- Pfad: /usr/anatol/dockeruser/data/immichframe/update_memories.py
- Cron:
5 0 * * *(täglich 00:05) - Log: /usr/anatol/dockeruser/data/immichframe/memories.log
- Output: memories_info.json (für HA Sensor)
Album¶
- Name: ImmichFrame Memories
- ID: 9ec60a7f-9b85-4ebf-bebb-4fd98889bb90
- Aktuell: ~50 Fotos (variiert je nach Datum)
- Mindestanzahl: 50 Fotos (wenn weniger Memories, werden zufällige Anatol/Maria Fotos ergänzt)
Ausgeschlossene Personen¶
Fotos mit diesen Personen werden nicht angezeigt (ExcludedPeople in Settings.yml): | Person | UUID | | Nicole Kaisinger | ebf2a02e-4898-44c7-a6c5-af57555eccfb | | Kerstin | 64e531bf-9e14-4285-8fd1-042517b4d4db | | Nicole Simader | 2a3dd23b-0915-43e5-883b-4d2cc3f424b2 | | Nadine | 63b6fd9c-7628-4181-93d0-f639a279b48a |
Geburtstags-Feature¶
An Geburtstagen werden automatisch nur Fotos dieser Person angezeigt + Dashboard-Overlay mit Alter!
Dashboard-Overlay¶
Bei Geburtstagen erscheint ein Overlay im Tablet-Dashboard:
Alle Geburtstage mit Geburtsjahr¶
Fehlende Geburtsjahre bitte ergänzen - dann Template Sensor updaten lassen! | Name | Datum | Geburtsjahr | | Opa | 15.01. | 1940 | | Lukas | 30.01. | 2017 | | Norbert | 31.01. | 1982 | | Maria Tonko Sr | 20.02. | 1956 | | Sebastian | 02.03. | 1990 | | Andreas | 03.03. | 1967 | | Elisabeth Müller | 22.03. | 1996 | | Christian M. | 25.03. | 1991 | | Susi | 06.04. | 1973 | | Ullmann Oma | 11.04. | 1948 | | Christian T | 30.04. | 1981 | | Jonas | 06.05. | 2022 | | Onkel Thomas | 15.05. | 1962 | | Judith | 23.05. | 1958 | | Kirchberg Oma | 27.05. | 1947 | | Tante Karin | 06.06. | 1976 | | Nikita | 17.06. | 2005 | | Julia | 19.06. | 1990 | | Leo | 28.06. | 1964 | | Agnes | 07.07. | 1965 | | Julian | 10.07. | 2003 | | Heli | 12.07. | 1971 | | Wolfgang | 11.08. | 1952 | | Mauricio | 18.08. | 1999 | | Dominika | 03.09. | 1971 | | Dorian | 05.09. | 2000 | | Raphael | 08.09. | 1982 | | Maxx | 24.09. | 1989 | | Christian Mutti | 26.09. | 1967 | | Tante Elisabeth | 18.10. | 1965 | | Sarah | 24.11. | 1986 | | Anatol | 11.12. | 1992 | | Angie | 13.12. | 1997 |
Funktionsweise¶
- HA Automation triggered bei
calendar.griesauera_gmail_comEvent - Personenname wird aus Event extrahiert (Event-Summary = exakter Immich-Name)
- Script holt Personen-UUID dynamisch aus Immich API
- ImmichFrame Settings werden angepasst (nur diese Person)
- Container wird neu gestartet
- Um 23:59 wird auf normale Anzeige zurückgesetzt
Script: set_birthday_person.py¶
- Pfad: /usr/anatol/dockeruser/data/immichframe/set_birthday_person.py
- Dynamisch: Holt Personen direkt aus Immich (funktioniert auch bei Namensänderungen!)
SSH-Key Authentifizierung¶
HA shell_command Kontext hat kein sshpass - daher SSH-Key Auth! - Key-Paar: /config/.ssh/id_ed25519 (HA) → claude@192.168.178.20 (NAS) - Wrapper-Script: /config/scripts/tablet_control.sh
HA Shell Commands¶
shell_command:
# ImmichFrame Geburtstag/Jahrestag
# WICHTIG: "" mit Quotes! → sonst schlägt Übergabe bei Namen mit Leerzeichen fehl
immichframe_set_birthday: '/usr/bin/ssh -i /config/.ssh/id_ed25519 -o StrictHostKeyChecking=no -o BatchMode=yes claude@192.168.178.20 "python3 /usr/anatol/dockeruser/data/immichframe/set_birthday_person.py """'
immichframe_reset_birthday: '/usr/bin/ssh -i /config/.ssh/id_ed25519 -o StrictHostKeyChecking=no -o BatchMode=yes claude@192.168.178.20 "python3 /usr/anatol/dockeruser/data/immichframe/set_birthday_person.py reset"'
HA Automationen¶
# Bei Geburtstag/Jahrestag aktivieren
- id: 'immichframe_birthday_start'
alias: ImmichFrame Geburtstag aktivieren
trigger:
1. platform: calendar
event: start
entity_id: calendar.griesauera_gmail_com
action:
1. service: shell_command.immichframe_set_birthday
data:
person: ""
# Am Tagesende zurücksetzen (23:59 - NICHT 00:01, da Calendar-Events um Mitternacht starten!)
- id: 'immichframe_birthday_reset'
alias: ImmichFrame Geburtstag zurücksetzen
trigger:
1. platform: time
at: '23:59:00'
action:
1. service: shell_command.immichframe_reset_birthday
Calendar Events¶
33 Events in calendar.griesauera_gmail_com (31 Geburtstage + 2 Jahrestage)
Jahrestage¶
| Event | Datum | Jahr | | Hochzeitstag | 03.06. | seit 2023 | | Jahrestag | 11.11. | seit 2015 |
Personen ohne Geburtstag¶
Diese Personen sind in Immich, haben aber kein bekanntes Geburtsdatum: - Anita, Carmen, Daniela, Harald, Marielouise, Paul, Tante Wilma
Home Assistant Dashboard¶
Das Tablet zeigt das HA Dashboard dashboard-tablet mit 4 Views:
- Fotos (panel:true): ImmichFrame iframe + Geburtstags-Overlay
- Home: Temperaturen Innen/Außen + Nächster Geburtstag (sensor.naechster_geburtstag)
- Lichter: Küche Arbeitslicht, Fernsehlicht (input_button), Terrasse, Indirekte LED
- Rolläden: 5x mushroom-cover-card (rollo_s, sz_rollo, terrasse_rollo, rollo_balkon, kuche_rollo)
Vollbild-Modus¶
In der HA Companion App auf dem Tablet:
- Einstellungen → Companion App → Vollbildmodus aktivieren
- Standard-Dashboard auf dashboard-tablet setzen
Screen On/Off Automationen¶
- 22:00: Bildschirm aus (
tablet_bildschirm_aus_22_00) - 09:00: Bildschirm ein (
tablet_bildschirm_ein_09_00) - Niemand zuhause: Bildschirm aus (
tablet_bildschirm_aus_niemand_zuhause) - Jemand kommt heim: Bildschirm ein zwischen 09:00-22:00 (
tablet_bildschirm_ein_heimkommen) - Mit Fernseher ausschalten: (
tablet_mit_fernseher_ausschalten)
Auto-Brightness¶
Das Tablet nutzt seinen eigenen Lichtsensor für automatische Helligkeitsanpassung.
Aktivieren: Service shell_command.tablet_auto_brightness_on aufrufen.
Projekt-Status¶
- Erstellt: 2026-01-16
- Abgeschlossen: 2026-02-03
- Letzte Änderung: 2026-04-11
- Status: ✓ FERTIG (mit Updates)
- Projektverzeichnis:
/config/claude_projects/tablet_immich_frame/
Troubleshooting¶
ImmichFrame blinkt/flackert im iframe (Auto-Reload)¶
- Ursache: ImmichFrame v1.0.33.0+ hat "Auto-Refresh on Connection Error" Feature → im iframe-Kontext wird die Verbindung ständig verloren → Seiten-Reload alle 30 Sekunden
- Symptome: iframe wechselt schwarz (geladen) ↔ weiß (lädt) im ~30s-Zyklus. Screenshots mit ADB zeigen diesen Wechsel.
- Fix (2026-04-11): ImmichFrame auf v1.0.32.0 pinnen:
- Dauerhaft: Nur auf geprüfte Versionen updaten! Changelog immer auf "Auto-Refresh"/"reload"/"SignalR" prüfen bevor Update
- NIEMALS :latest für ImmichFrame verwenden!
ImmichFrame weißes Bild / rotes Error-Icon (HA 2026.3+)¶
- Ursache: HA 2026.3.x + Companion App 2026.3.2 blockiert externe URLs im
iframecard stillschweigend ohneallowlist_external_urlsEintrag - Symptome:
iframecard → weißes Bild;webpagecard → rotes Error-Icon. ImmichFrame selbst läuft, Port erreichbar, Chrome zeigt Fotos korrekt. - Gelöst (2026-03-25): In
/config/configuration.yamlunterhomeassistant:hinzufügen: - Wichtig:
reload_core_configreicht NICHT → HA komplett neu starten! - Card-Typ:
iframebleibt der richtige Typ (nichtwebpage!) - Sofort-Fix wenn es wieder passiert: HA neu starten, dann HA App auf Tablet refreshen.
Geburtstags-Feature aktiviert nicht (Person mit Leerzeichen im Namen)¶
- Ursache: Namen wie "Elisabeth Müller" werden ohne Quotes übergeben → Script erhält nur "Elisabeth" als Argument → Person nicht gefunden
- Gelöst (2026-03-22):
""in configuration.yaml → Name korrekt gequotet - Betroffen: Alle Personen mit Vor- UND Nachname (z.B. Elisabeth Müller, Maria Tonko Sr, ...)
- Manuell aktivieren:
python3 set_birthday_person.py "Elisabeth Müller"
ImmichFrame zeigt "server offline" Fehler¶
- Ursache: Container startet täglich ~00:01 neu (Birthday-Reset) → wenn ADB-Refresh fehlschlägt, bleibt Tablet auf Fehlermeldung hängen
- Schnellfix: ADB-Refresh manuell ausführen:
- Dauerhaft gelöst (2026-02-22): IP in set_birthday_person.py korrigiert + 15s Sleep vor Tablet-Refresh
Geburtstags-Feature läuft nur 1 Minute (war Bug bis 2026-02-20)¶
- Ursache: Kalender-Event startet um 00:00 Uhr Mitternacht → Reset-Automation lief um 00:01 → nur 1 Minute Geburtstagsmodus
- Gelöst: Reset-Zeit auf
23:59:00geändert → Geburtstagsmodus läuft den ganzen Tag
ImmichFrame zeigt falsches Datum¶
- Ursache: Timezone nicht korrekt im Container
- Lösung: /etc/localtime und /etc/timezone als Volume mounten
Geburtstags-Feature zeigt alle Fotos¶
- Ursache: Albums und ShowFavorites waren noch aktiv
- Lösung: Script deaktiviert diese Quellen im Geburtstags-Modus
Person nicht gefunden¶
- Ursache: Name im Kalender stimmt nicht mit Immich überein
- Prüfen:
python3 set_birthday_person.py list
ADB WiFi nach Tablet-Neustart nicht verfügbar¶
- GELÖST (2026-02-18): Magisk service.d Script aktiv → ADB WiFi startet automatisch nach Reboot
- Script:
/data/adb/service.d/adb_wifi.sh| Siehe Rooting-Anleitung - Diagnose:
shell_command.tablet_testausführen → Log:/config/tablet_test.log
Shell Commands funktionieren nicht¶
- Ursache: sshpass nicht im HA shell_command Kontext
- Lösung: SSH-Key Auth mit /config/.ssh/id_ed25519
- Debug: /config/tablet_debug.log prüfen
← Zurück zur Projekte-Übersicht ← Zurück zur Home Assistant Hauptübersicht