Inspiriert durch das TVH-Modul von @KaiS habe ich vor einiger Zeit damit begonnen, für TVH ein Frontend zu basteln.
Mit Hilfe aus dem Netz ist nun daraus ein Tool für sporadische TV-Aufnahmen geworden, dass vielleicht der Eine oder Andere von Euch gebrauchen kann.
Für Serienaufnahmen ist das Tool derzeit nicht gedacht. Im Footer werden in TVH erstellte Serienaufnahmen aber angezeigt. DVR-Profile können bei Aufnahmen im Dialog ausgewählt werden.
Scripte in TVH_EPG.zip:
-
Scripte für EPG und Aufnahme: epg_render.ips.php und hook_aufnahme.ips.php
-
Eigenständige Hilfsscripte, um benötigte Daten für die Installation einmalig aus der API auszulesen: Channels_abfragen.ips.php und DVR-Profile_abfragen.ips.php
-
Eigenständiges Ergänzungs-Script um Geräte wie TV, AV-Receiver, NAS, WOL usw. mit Vor- und Nachlauf bei anstehenden Aufnahmen zu triggern: tvh_aufnahme_status.ips.php, wird für EPG und Aufnahme nicht benötigt.
Voraussetzungen
• Symcon 9.0 (frühere Versionen ungetestet)
• PHP 8.0 oder höher (wird beim Start automatisch geprüft)
• PHP allow_url_fopen muss aktiv sein (wird beim Start automatisch geprüft)
• TVH auf Synology Containermanager Docker (andere Plattformen ungetestet)
• Tvheadend ist im lokalen Netzwerk erreichbar, Port 9981
• Sender-Logos als PNG-Dateien im user-Ordner angelegt und benannt mit Sendernamen
(Dateiname = exakte Übereinstimmung mit Sendername aus Channels, z.B. „Das Erste HD.png“)
Limitationen
Durch die Limitierung des Output-Buffer bis 1024KB ist die Anzahl der Sender und/oder des EPG-Inhalts begrenzt. Erfolgreich getestet mit 20 Sendern und $HOURS_AHEAD = 36.
INSTALLATION – SCHRITT FÜR SCHRITT
SCHRITT 1 – Logos ablegen
Download von Logos z.B. unter: TV-Senderlogos (Picons) zum herunterladen - smooth ones Erfolgreich getestet mit vodafone-dvb-c-picons-srp-256x256-light-transparent-v1.4.zip Ordner unter /user anlegen z.B. TVH/logos Logos in diesen Ordner kopieren: /user/TVH/logos Dateinamen der Logos anpassen, wenn Sendernamen aus $CHANNELS bekannt sind (nach Schritt 5)
SCHRITT 2 – Webhook „EPG“ anlegen
In Symcon:
→ Kerninstanzen → WebHook Control → hinzufügen → Hook-Name: EPG
→ Script: ID dieses Scripts (epg_render.ips.php)SCHRITT 3 – Webhook „Aufnahme“ anlegen
In Symcon:
→ Kerninstanzen → WebHook Control → hinzufügen
→ Hook-Name: Aufnahme
→ Script: ID vom Script hook_aufnahme.ips.phpSCHRITT 4 – Aufnahme-Profil UUID ermitteln (für hook_aufnahme.ips.php)
Script „DVR-Profile_abfragen.ips.php“ ausführen
oder
im Browser aufrufen: http://TVH-IP:9981/api/dvr/config/grid
Die UUID des Standard-Profils kopieren und in Script.
hook_aufnahme.ips.php bei $configUuid eintragen.
Wird in TVH kein Profil gefunden, verwendet der Hook diesen Standardwert als Fallback.SCHRITT 5 – Sender-UUIDs ermitteln
Script „Channels_abfragen.ips.php“ ausführen, Ausgabe 1:1 kopieren und Senderliste in Konfiguration $CHANNELS unten einfügen, gegebenenfalls auf die gewünschten Senderanzahl kürzen (siehe Limitationen).
oder
im Browser aufrufen: http://TVH-IP:9981/api/channel/grid?limit=999
Jeden gewünschten Sender mit UUID, Name und Nr. in $CHANNELS unten eintragen.SCHRITT 6 – Konfiguration anpassen
Den KONFIGURATION-Bereich unten ausfüllen.
Alle anderen Bereiche unverändert lassen.SCHRITT 7 – Visualisierung
Für Kachelvisualisierung:
String-Variable anlegen, Darstellung Webinhalt, Anzeigetyp Webseite.
In Wert eintragen: http://Symcon-Server:3777/hook/EPG.
String-Variable in Visualisierung verlinkenFür Webfront:
Im Editor externe Seite hinzufügen.
In Url eintragen: http://Symcon-Server:3777/hook/EPGSCHRITT 8 – Timer-Event anlegen
Zyklischen Timer mit Ziel epg_render.ips.php anlegen.
Getestet mit Intervall 15min.
Hinweis: Die Aufnahmefunktionen und die Time-Now-Line sind JS und aktualisieren ohne Scriptausführung.
Die Installationsanleitung findet Ihr auch noch einmmal im Script epg_render.ips.php. Das Ergebnis der Installation sollte dann so aussehen:
Im EPG-Grid kann horizontal und vertikal gescrollt werden, um weitere Sender und die nächsten Tage anzuzeigen.
Der Aufruf von Beschreibung und Aufnahme erfolgt per Click auf die Sendung, ebenso das Stoppen von Aufnahmen. Vorzeitig, also vor Aufnahmeende, manuell gestoppte Aufnahmen werden in TVH als fehlgeschlagene Aufnahme abgelegt. Die DVR-Profile werden im Dialog nach Click auf Aufnahme abgefragt.
Vielleicht hat ja jemand Lust, daraus ein Modul zu bauen oder findet einen Weg, die Limitationen zu umgehen. @paresy eine Idee?
Mangels Windows- und anderen Umgebungen konnte ich nicht testen , ob das Ganze auf anderen Plattformen auch funktioniert. Ich nutze nur Mac und Synology. Daher wäre ich für ein kurzes Feedback dazu dankbar, falls ein User die Scripte auf anderen Plattformen testet, um anderen Usern mit Hinweis auf das Testergebnis (z.B. läuft nicht unter Windows) gegebenenfalls unnötigen Testaufwand zu ersparen.
Viel Spaß!
Andreas
TVH_EPG.zip (22,7 KB)


