Beiträge von K-Meleon

    Vielen Dank an die beiden Entwickler für die ganze Arbeit! Weil ich eine SSD für mein kodi benutze und festgestellt habe, dass mit den Skripten relativ viele Operationen auf den lokalen Pfaden (der SSD) stattfinden, habe ich mir mal die Arbeit gemacht, sämtliche "generierten" Files - soweit es Sinn macht - in einen konfigurierbaren Pfad zu speichern (z.B. /tmp). Ganz sauber ist das noch nicht und bisher habe ich nur den Horizon-Pfad angepasst. Das Ergebnis könnt Ihr unter

    https://github.com/SvenLuebke/easyepg

    anschauen. Durch die Nutzung von LibreELEC musste ich für den imdbmapper auf PHP 8.1 updaten. Mit der letzten imdb.class.php gab es damit eine Warnung, die dann immer innerhalb des EPGs aufgetaucht ist. Außerdem fand ich die Art der Ausführung der verschiedenen IMDB-Tasks nicht optimal (z.B. konnte man die Ausführung nicht einfach mit Ctrl-C unterbrechen). Ich nutze nun Perl Threads dafür. Mit der neuen Version des worker1.pl benötigt man keine unterschiedlichen Dateien mehr für 4C oder 8C und auch nicht zwei Versionen von worker1.pl. Der Wert für die Anzahl der Threads ist in einer Variable gespeichert, den man einfach verändern kann. Auschecken könnt Ihr es unter

    https://github.com/SvenLuebke/imdbmapper/tree/4C

    Derzeit erwarten sämtliche Skripte die Environment-Variablen, die ich in einem start-Skript über

    export PATH_TMP=/tmp
    export PATH_TMP_EPG=$PATH_TMP/epg
    export PATH_TMP_IMDB=$PATH_TMP/imdb

    setze. Dadurch wird nur noch eine Datei lokal (auf der SSD) verändert.


    Vielleicht haben die Entwickler ja Zeit und Lust ein paar dieser Änderungen in ihren Code zu übernehmen. Zumindest der imdbmapper ist meiner Meinung nach in der neuen Version sehr viel einfacher wartbar. Ich hoffe, ich habe nichts Wesentliches übersehen!

    Das muss ich leider inzwischen bestätigen: Ich habe angefangen, ein paar benötigte Pakete in LibreELEC einzufügen. Mit Perl ging das noch ganz einfach, aber bei den benötigten Third-Party Perl-Modules, die sozusagen Cross-compiled werden müssen, gab es mächtige Probleme und dann bin ich wieder davon abgekommen (leider!!). Das Nachinstallieren bei LibreELEC erfolgt im Prinzip über eine einzige Datei, das geht ratz-fatz. Aber ich kann Dich schon verstehen!

    Falls jemand Interesse hat: Das Addon, mit dem ich easyEPG und DeBaschdis Skripte nun direkt unter LibreELEC laufen lassen kann, hab ich doch noch abgeschlossen. Damit ist (u.a.) Perl und socat direkt unter LibreELEC verfügbar. Die Files hab ich bisher noch nicht auf github gepushed. Testen konnte ich es nur auf x86-64. Auf dem Pi wird es vermutl. nicht laufen...

    Falls jemand Interesse hat: Ich hab ein Addon erstellt, mit dem ich easyEPG und DeBaschdis Skripte nun direkt unter LibreELEC laufen lassen kann. Irgendwie bin ich (für diesen Fall) mit Docker nicht "warm" geworden. Die Skripte mussten allerdings ein wenig modifiziert werden. Dabei fielen mir ein paar Dinge auf, die einfacher gemacht werden konnten.

    Vielleicht hat @DeBaschdi ja mal Zeit, um sich meine Änderungen anzuschauen. Ich hoffe, ich hab nicht zu viel weggeschmissen. Laufen tut das Skript bei mir noch (aber das heißt ja nicht viel). Hier das Repo, das bisher nur für vier Threads angepasst wurde: imdbmapper .

    Keiner eine Idee, woran das liegt?
    Ich führe jetzt wöchtlich manuell docker start easyepg.run aus
    ...nervt halt...

    Ich kenne Dein Setup nicht genau (läuft es 24/7 ?), aber Du kannst unter LibreELEC auch crontab nutzen. Das hab ich gerade mal mit der aktuellsten Version vom git ausprobiert. Wenn Du "crontab -e" eintippst, folgenden Inhalt hinzufügst:

    03 00 * * * docker start easyepg.run >> /tmp/dockerOutput.txt 2>&1

    (mit Ctrl-O und anschließendem Ctrl-W speichern)

    und dann systemctl restart cron ausführst, dann wird der Container direkt im System um 03:00 Uhr nachts jeden Tag gestartet. Wenn Du schauen möchtest, ob es Fehler bei der Einrichtung gab, dann
    systemctl status cron ausführen. Ich musste bei mir noch die initiale Einrichtung durchführen (Pfade waren nicht da und auch nicht die crond.conf:
    mkdir -p /storage/.cache/cron/crontabs/

    touch /storage/.cache/services/crond.conf

    Ich hatte das gleiche Problem unter Linux! Das aktuellste Addon hatte ich installiert aber trotzdem gab es die Fehlermeldungen zu den abhängigen Modulen...

    Inzwischen habe ich den Fehler selbst lösen können. Es lag daran, dass ein paar alte Addons auf meinem System installiert waren (ich habe kodi 2018 installiert und seitdem immer wieder upgedatet). Diese habe ich anhand des Verzeichnis Dateistempels radikal gelöscht und dann die wirklich fehlenden Abhängigkeiten über den Punkt "Versions" im jeweiligen Addon neu installieren lassen. Das hat wunderbar geklappt. Der Fehler von Joyn ist nun weg und es läuft! Hurra!


    Viele Grüße
    K-Meleon

    Hi! Sorry, ich habe Deine Antwort leider nicht mitbekommen und eben erst gelesen.

    Du versuchst das auch unter LibreElec und da ist TVHeadend direkt auf dem System installiert (läuft also nicht via Docker)?

    Ja, korrekt!

    sondern wird im Modus "run" vom Host aus per Cronjob nachts gestartet - dann hast Du auch weniger laufende Auslastung des Systems. Klar, der Docker-Service läuft natürlich trotzdem permanent, aber eben nicht der easyepg-Container. Dadurch, dass Du den Container i.d.R. deutlich nach einem Neustart des Systems startest sollte der Socket dann eigentlich immer da sein.

    OK, dann ist meine Erwartung vielleicht anders/falsch, da ich LibreELEC eigentlich nur (meist manuell) starte, wenn ich TV gucke oder etwas im TV aufnehmen möchte.

    easyepg habe ich ja "erst mal" nur testen wollen. Der erste Schritt war für mich dabei, dass ich nach dem Starten des Systems über "run" die epg-Daten via easyepg zusammen sammele. Das hat mit der Standard-Installation leider schon nicht geklappt, da immer gleich das Verzeichnis (anstatt des sockets) erzeugt wurde. Nach meinen letzten Analysen bestand das Problem aber schon vor dem Starten über "run": Das Verzeichnis wurde immer schon erzeugt, ohne dass easyepg überhaupt gestartet wurde. Das hat Docker scheinbar erledigt.

    Wie hast Du denn meinen Container installiert/konfiguriert? Wie im Readme auf GitHub beschrieben mit dem Shell-Script oder von Hand?

    easyepg hab ich komplett über Dein Script installieren lassen. Dabei war ich mir allerdings nie klar, ob ich bei Nutzung von "Variant A: via Cronjob in the container" immer noch den cron-Eintrag manuell erzeugen muss...das hab ich bisher nicht angefasst (über Variante B). Was der cron-Container macht, ist mir nicht klar...vermutlich verstehe ich zu wenig von Docker...oder kann es mir nicht mehr vorstellen.

    Ich selber habe für mich entschieden easyepg im Docker zu bauen und auch zu nutzen, da es sehr viele Dinge braucht die installiert werden müssen. Mein PVR ist in unserem Haushalt als "kritisches" System zu sehen und sollte das mal defekt sein will ich nicht erst 2 Tage Zeug installieren. Mit Docker kann ich die Konfiguration regelmäßig wegsichern und wenn ich ein neues System brauche muss im Grunde nur Docker drauf und ich bin mehr oder weniger wieder einsatzbereit.

    Das muss ich leider inzwischen bestätigen: Ich habe angefangen, ein paar benötigte Pakete in LibreELEC einzufügen. Mit Perl ging das noch ganz einfach, aber bei den benötigten Third-Party Perl-Modules, die sozusagen Cross-compiled werden müssen, gab es mächtige Probleme und dann bin ich wieder davon abgekommen (leider!!). Das Nachinstallieren bei LibreELEC erfolgt im Prinzip über eine einzige Datei, das geht ratz-fatz. Aber ich kann Dich schon verstehen!

    Danke Dir fürs Anschauen! Das klingt logisch. Aber eine Lösung für dieses Problem scheint es dann nicht so einfach zu geben (wenn man den socket nutzen möchte). Ich habe auch mal versucht das Docker Addon im Python-Skript zu verzögern, aber das Problem scheint schon auf systemd /OS - Ebene zu bestehen. Zumindest hat ein "sleep" nicht geholfen. Andere Lösungen kann man bestimmt irgendwie zusammenbasteln, aber eine schöne und einfache Lösung gibt es nicht.

    Vielleicht prüf ich mal, ob ich sämtliche Abhängigkeiten (perl, dialog, git, php etc.) als Addon hinzubauen kann. Das Docker-Addon scheint auf meinem System auch ca. 10% CPU-Last zusätzlich zu ziehen...vielleicht habe ich aber auch nur zu einem schlechten Moment auf die Last geschaut.

    Ich habe das Gefühl, dass es sich um ein Timing-Problem handelt, nämlich genau dann, wenn das Docker-Addon vor tvheadend gestartet wird. Dann ist die socket-Datei noch nicht erzeugt und die Skripte von easyepg legen - warum auch immer - dieses Directory an. Ich hab eben auch noch mal probiert den Docker-Container erst später zu starten. Sobald man die xmltv.sock direkt vorm Starten von "docker start easyepg.run" löscht, dann wird sofort der nicht gewünschte Ordner erstellt.

    Man müsste eigentlich im easyepg prüfen, ob tvheaded schon gestartet ist und erst dann die Skripte (bzw. vermutlich socat) ausführen.

    Gleiches Problem hab ich bei mir auch...eine Lösung dazu habe ich noch nicht gefunden. easyepg hab ich bereits frisch installiert, aber das hat nicht geholfen. Aber es scheint doch dadurch zu kommen: Zumindest wenn man das Docker Add-on deaktiviert wird auch nicht mehr das Verzeichnis erstellt. Sobald ich ihn wieder enable, ist die socket-Datei wieder verhunzt.

    In den perl-Skripten habe ich etwas von touch /xmltv.sock gefunden...das könnte gefährlich sein, aber normalerweise müsste er dann eine Datei erstellen und kein Verzeichnis. Mal schaun...

    Hallo Kodinerds!

    Ich habe inzwischen schon ein paar Mal über google gesucht, bin allerdings immer noch nicht fündig geworden.

    In enigma2 basierten Satelliten-Receivern gab/gibt es ein Script, welches die aktuelle TV-Sendung in der IMDB nachschlägt. Man guckt also TV, drückt eine Taste und daraufhin werden diese zusätzlichen Infos angezeigt. Kennt jemand von Euch vielleicht solch ein Addon?


    Über hilfreiche Hinweise würde ich mich freuen!

    Vielen Dank, viele Grüße und schöne Feiertage!
    K-Meleon