No description
Find a file
rene ce104f43d4 Bild auf volle TV-Breite ziehen
--aspect-ratio=16:9 ergaenzt. Der Thermalkanal liefert 4:3 (1280x960), der TV
ist 16:9 - ohne die Option blieben links und rechts schwarze Balken.

Bewusste Abwaegung: Strecken verzerrt um 33 % horizontal, behaelt aber den
ganzen Bildinhalt. Die Alternative --crop=16:9 waere unverzerrt, wuerde aber
oben und unten je 12,5 % abschneiden und damit den unteren Werkbankbereich
treffen, der bei einer Waermebildueberwachung inhaltlich zaehlt.

Ergebnis gegengeprueft ueber den Sichtkanal, der den Fernseher mitfilmt: Die
Balken sind weg, das Bild fuellt die Breite.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-08-06 14:31:20 +02:00
.gitignore Initiale Werkstattkamera-Konfiguration 2026-08-06 11:32:44 +02:00
cec-keepalive.service Initiale Werkstattkamera-Konfiguration 2026-08-06 11:32:44 +02:00
cec-keepalive.timer Initiale Werkstattkamera-Konfiguration 2026-08-06 11:32:44 +02:00
countdown.sh tvdown -c ueber Marker-Datei statt pkill, Overlay kleiner und zentriert 2026-08-06 13:52:37 +02:00
daily-shutdown Pruefanweisung korrigieren: daily-shutdown hat 8 Zeilen, nicht 7 2026-08-06 13:42:49 +02:00
README.md Pruefanweisung korrigieren: daily-shutdown hat 8 Zeilen, nicht 7 2026-08-06 13:42:49 +02:00
setup-sd-protection.sh Initiale Werkstattkamera-Konfiguration 2026-08-06 11:32:44 +02:00
SKILL.md Bild auf volle TV-Breite ziehen 2026-08-06 14:31:20 +02:00
start_stream.sh Bild auf volle TV-Breite ziehen 2026-08-06 14:31:20 +02:00
stream-watchdog.service Stream-Skripte und Watchdog vom Pi ins Repo aufnehmen 2026-08-06 13:36:00 +02:00
stream-watchdog.sh Stream-Skripte und Watchdog vom Pi ins Repo aufnehmen 2026-08-06 13:36:00 +02:00
stream-watchdog.timer Stream-Skripte und Watchdog vom Pi ins Repo aufnehmen 2026-08-06 13:36:00 +02:00
stream.service Stream-Skripte und Watchdog vom Pi ins Repo aufnehmen 2026-08-06 13:36:00 +02:00
tv-shutdown.sudoers tvdown -c ueber Marker-Datei statt pkill, Overlay kleiner und zentriert 2026-08-06 13:52:37 +02:00
tvdown tvdown -c ueber Marker-Datei statt pkill, Overlay kleiner und zentriert 2026-08-06 13:52:37 +02:00

Werkstattkamera

Raspberry Pi, der per HDMI den RTSP-Stream der Werkstatt-Kamera auf einem TV anzeigt. Dieses Repo enthält die Konfigurations- und Wartungsdateien für den Pi.

Ein Raspberry Pi (Debian 13 trixie, arm64) spielt beim Boot ohne X11 via VLC mit DRM/KMS-Videoausgabe einen RTSP-Stream ab. Ergänzt um TV-Steuerung per CEC, SD-Karten-Schutz und einen täglichen, sauberen Shutdown mit Countdown-Overlay.

Hardware & Netzwerk

  • Pi-Hostname / User: tv (UID 1000), SSH aktiv — ssh tv@192.168.178.51
  • Pi-IP: 192.168.178.51 (statisch, Gateway .1)
  • Kamera: Dahua RTSP, 192.168.178.50:554 (Channel 2, Subtype 1)
  • WiFi: SSID Netgear7490, NetworkManager + netplan (90-NM-*.yaml)
  • Video: dtoverlay=vc4-kms-v3d, VLC mit --vout=drm_vout --avcodec-hw=drm

Hinweis zu Zugangsdaten: Die RTSP-URL inkl. Passwort steht sowohl in SKILL.md als auch in start_stream.sh. Vor einem Roll-out auf weitere Geräte ggf. in eine (git-ignorierte) Config auslagern. Das WLAN-Passwort liegt nicht im Repo — es steht nur auf dem Pi in der netplan-Datei.

Dateien

Datei Zweck
SKILL.md Vollständige Doku (Hardware, Services, Diagnose, bekannte Probleme). Dient zugleich als Claude-Code-Skill.
setup-sd-protection.sh Einmal-Setup auf dem Pi: journald→RAM, tmpfs für /tmp, noatime, Swap aus, täglicher Shutdown.
daily-shutdown Cron-Job (/etc/cron.d/): Countdown starten MoDo 15:48, Fr 11:48.
countdown.sh Schreibt sekundengenauen 10-Min-Countdown in /tmp/countdown.txt (VLC-Overlay), dann shutdown (MoDo 15:58, Fr 11:58).
cec-keepalive.service / .timer Hält den TV per CEC wach (alle 5 Min „Active Source").
start_stream.sh VLC-Start mit DRM-Ausgabe, CEC-Einschaltung, Reconnect-Schleife (/home/tv/).
stream.service Systemd-Unit für den Stream, Ausgabe auf /dev/tty1.
stream-watchdog.sh / .service / .timer Prüft alle 2 Min die TCP-Verbindung zur Kamera, startet stream.service sonst neu.
tvdown Läuft auf m13, nicht auf dem Pi. Fährt den Pi per SSH mit Countdown-Overlay herunter.
tv-shutdown.sudoers Nach /etc/sudoers.d/tv-shutdown: erlaubt User tv den Shutdown ohne Passwort.

Installation auf dem Pi

# SD-Schutz & täglicher Shutdown (einmalig, als root)
sudo bash setup-sd-protection.sh

# Countdown-Shutdown per Cron
sudo cp daily-shutdown /etc/cron.d/daily-shutdown
sudo chmod 644 /etc/cron.d/daily-shutdown
sudo cp countdown.sh /home/tv/countdown.sh

# CEC-Keepalive
sudo cp cec-keepalive.service cec-keepalive.timer /etc/systemd/system/
sudo systemctl daemon-reload
sudo systemctl enable --now cec-keepalive.timer

# Stream + Watchdog
sudo cp start_stream.sh stream-watchdog.sh /home/tv/
sudo chmod 755 /home/tv/start_stream.sh /home/tv/stream-watchdog.sh
sudo cp stream.service stream-watchdog.service stream-watchdog.timer /etc/systemd/system/
sudo systemctl daemon-reload
sudo systemctl enable --now stream.service stream-watchdog.timer

Nach dem Kopieren von daily-shutdown prüfen: wc -l /etc/cron.d/daily-shutdown muss 8 ergeben. Steht dort 1, sind die Zeilenumbrüche verlorengegangen und der Freitags-Shutdown läuft nicht (siehe SKILL.md).

Manuelles Herunterfahren per tvdown

Am Pi hängt keine Tastatur. Von m13 aus:

tvdown          # 10 s Countdown auf dem TV, dann sauberer Shutdown
tvdown 30       # 30 s Countdown
tvdown -c       # Countdown abbrechen, Pi bleibt an

Einrichtung auf m13 (einmalig):

ln -sf "$PWD/tvdown" ~/.local/bin/tvdown

Einrichtung auf dem Pi (einmalig):

# SSH-Key von m13 hinterlegen
ssh-copy-id tv@192.168.178.51

# Shutdown ohne Passwort erlauben
sudo cp tv-shutdown.sudoers /etc/sudoers.d/tv-shutdown
sudo chown root:root /etc/sudoers.d/tv-shutdown
sudo chmod 440 /etc/sudoers.d/tv-shutdown
sudo visudo -cf /etc/sudoers.d/tv-shutdown    # muss "parsed OK" melden

Diagnose (auf dem Pi via SSH)

systemctl status stream.service
journalctl -u stream.service -f
systemctl list-timers cec-keepalive.timer
nmcli device wifi list
ping 192.168.178.50

Details und bekannte Probleme siehe SKILL.md.