Ich versuche hier, ein HowTo für Anfänger/Einsteiger zu schreiben, die mit der Installation von Skripten und Programmen über die Shell eher wenig am Hut haben und denen Kommandos und Befehle unter Linux ein Buch mit sieben Siegeln sind. Das ganze ist aber keine Raketenwissenschaft und sollte mit dieser Anleitung Schritt für Schritt umsetzbar sein. Ich gehe davon aus, daß jeder weiß, wie ein Addon unter Kodi installiert wird und wie man sich z.B. per puTTY oder ssh auf einem LibreElec-System einloggt.
Voraussetzungen:
- LibreElec
- Docker Addon (zu installieren unter Einstellungen → Addons → aus Repository installieren → LibreELEC Add-Ons → Dienste → Docker)
- PVR Recording & Power Manager aus dem saXBMC-Reposititory (siehe Signatur)
0. Entfernen alter easyepg-Docker
Anfängern empfehle ich eine Installation auf einem sauberen System. Dazu ist es erforderlich, alte Dockercontainer mit easyepg von dlueth oder mod24 zu entfernen. Damit vermeidet man etwaige Seiteneffekte und unnötige Rückfragen, wenn etwas nicht funktioniert. Wer noch kein Docker-Image mit easyepg installiert hat, kann diesen Schritt überspringen.
Anmerkung: Seit dem 21.06.2019 werden Container des Dockers easyepg.minimal durch das Init-Skript automatisch gestoppt und deinstalliert (siehe auch hier). Wer also nach dem 21.06 den Docker easyepg.minimal (dlueth) installiert hat, kann die folgenden Schritte überspringen und direkt mit Punkt 1 weitermachen.
Wir schauen zunächst nach, welche Docker installiert sind und deinstallieren ggf. alte easyepg-Container. Dazu loggen wir uns in LibreElec per ssh ein und lassen uns alle Container inklusive der nicht gestarteten Container anzeigen: docker ps -a. Es wird eine Tabelle aller Container angezeigt. Wenn in der Tabelle nichts steht, könnt ihr mit dem nächsten Schritt weitermachen (Schritt 1).
Wie man sieht, habe ich 3 Container installiert. Diese sind easyepg.cron, easyepg.run und easyepg.admin (letzte Spalte der Tabelle: Names). Laufende Container müssen gestoppt werden, bevor sie deinstalliert werden können. Wir schauen nach, welcher Container aktiv ist: docker ps
Hier ist easyepg.cron (letzte Spalte: Names) aktiv und muss gestoppt werden: docker stop easyepg.cron. Bei anderen Dockern muss bei docker stop ... natürlich der entsprechende Dockername angegeben werden. Das wiederholen wir für jeden aktiven Container.
Wir können jetzt alle Docker entfernen:
Zum Schluss löschen wir noch das heruntergeladene Dockerimage sowie die exponierten Dockerverzeichnisse. Das sind die Verzeichnisse, auf die LibreElec direkten Zugriff hat und in denen der Docker z.B. die XMLs ablegt.
Zum Löschen des Dockerimages benötigen wir die Image-ID. Die bekommen wir per docker images auf der Shell angezeigt:
Das Image entfernen wir mit Angabe der angezeigten Image-ID: docker rmi 91fe189b56b4 und gleich hinterher das exponierte Verzeichnis. Dieses ist bei mir /storage/easyepg. Im Zweifelsfall muss hier jeder selbst nachschauen, ob dieses Verzeichnis (easyepg) existiert oder anders benannt ist: ls -al /storage
rm -rf /storage/easyepg. Auch hier ist der Verzeichnisname ggf. anzupassen.
Wir sollten jetzt eine saubere Basis für die weiteren Schritte haben und können mit der eigentlichen Installation beginnen.
1. Download des Images und Installation der Container von dlueth
Für Libreelec mit aktiven TVHeadend-Server auf dem gleichen System empfehle ich das Dockerimage von dlueth, da mit diesem die nötigen Tools zum Einspielen des erzeugten EPGs direkt in TVHeadend gleich mitgeliefert werden und so ein funktionierendes System besonders einfach einzurichten ist. Außerdem werden mit dem Download (und starten) des Skripts alle Container gleich mit eingerichtet.
Wir melden uns per puTTY oder SSH am LibreElec-System an, laden das Skript und starten es automatisch: sh -c "$(curl -s https://raw.githubusercontent.com/dlueth/easyepg.minimal/master/init)". Nach dem Download und Start des Skriptes werden ein paar Einstellungen abgefragt. Hier ist besonders der Pfad zum xmltv.sock (zum Einspielen des EPG in TVHeadend) sowie die Angaben zur Zeitplanung (cron) wichtig.
Wird zum Installationszeitpunkt der Pfad zum xmltv.sock - aus welchen Gründen auch immer - nicht gefunden, gibt es noch die Möglichkeit, dass TVHeadend selbst die (später) erzeugte XML-Datei über einen internen Socket abholen kann. Wir gehen davon aus, dass das Installationsscript den localen xmltv.sock gefunden hat - hier steht die Eingabe default auf 'Y' und auch der Pfad zum Socket richtig ermittelt wurde. Steht dagegen bei 'use local xmltv.sock' ein großes 'N' und der ermittelte Pfad zum Socket ist leer, muss TVHeadend die XML-Daten abholen (siehe 2.)
Da ich das EPG gern um 12:03 aktualisieren möchte (LibreElec startet um 12:00 Uhr selbstständig per "PVR Recording & Power Manager" und schaltet sich nach 10 min wieder aus), setze ich gleich bei der Installation die richtigen Zeiten 3 12 * * * (Minute, Stunde, jeden Tag, jeden Monat, jeden Wochentag). Der vorgeschlagene Pfad zur xmltv.sock sollte in der Regel der richtige Pfad sein, wenn der TVHeadend-Server aktiv ist. Das kann man überprüfen, indem man in das vorgeschlagene Verzeichnis wechselt und sich den Inhalt per ls ausgeben lässt:
In TVHeadend selbst muss das EPG-Modul für externes XMLTV natürlich ebenfalls aktiviert werden, sonst kann TVHeadend die später erzeugte XML nicht einlesen. Speichern nicht vergessen!
Damit ist die Installation zunächst abgeschlossen, es geht weiter mit der Einrichtung im nächsten Thread!
2. xmltv.sock nicht gefunden - was nun?
Wird bei der Installation unter 'use local xmltv.sock' ein 'N' angeboten und bleibt der Pfad zum sockt selbst leer, nutzt es auch nichts, hier manuell den (durchaus richtigen) Pfad zur xmltv.sock anzugeben und die Nutzung des Sockets zu erzwingen. Hier muss man einen anderen Weg gehen:
Zunächst setzt man einfach die Installation fort - man belässt also die Einstellung für die Nutzung der lokalen xmltv.sock auf 'N' - und lässt stattdessen TVHeadend die Daten abholen. Dazu gibt es in LibreElec ein spezielles Grabbermodul - tv_grab_file:
Dazu geht man im TVHeadend-Webinterface auf Konfiguration -> Kanal/EPG -> EPG Grabber Module und aktiviert den "internal:XMLTV:tv_grab_file is a simple grabber that can be configured through the addon settings from Kodi" (im oberen Bild ein Eintrag tiefer). Der 'external:XMLTV' muss deaktiviert sein.
Im Setup von Kodi (Einstellungen -> Addons -> Benutzeraddons -> Dienste -> TVHeadend Server 4.2 -> XMLTV wird der 'XMLTV Source Type' auf File und darunter die 'XMLTV Location' auf den Pfad zur EPG-XML-Datei gestellt. In der Standardkonfiguration sollte der unter /storage/easypeg/xml/datei.xml zu finden sein, wobei für 'datei.xml' natürlich der richtige Name anzugeben ist. Dazu sollte natürlich die EPG-Liste in easyepg selbst konfiguriert und easyepg einmal gelaufen sein.