PVR Recording & Power Manager mit Kodi aus flatpak

  • Moin zusammen,


    ich habe das Problem, dass ich tvheadend immer in Verbindung mit Kodi und dem PVR Recording & Power Manager gesteuert habe, so dass der Rechner immer dann hochgefahren ist, wenn ich eine anstehende Aufnahme hatte.

    Das hat auch so lange funktioniert, so lange ich kodi aus den PPAs installiert habe und nicht via flatpak. Da ich nun ein Update auf noble numbat (Ubuntu 24.04) gemacht habe, steht kodi nun via PPA nicht mehr zur Verfügung, weil es wohl keinen Maintainer mehr gibt. Ich habe als aus der Not heraus kodi als flatpak installiert. Soweit funktioniert auch alles. Es gibt eine Fehlermeldungen und ich kann auch eine Verbindung zu meinem tvheadend backend herstellen (TVheadend HTSP Client), so dass ich TV auch via Kodi schauen kann.

    Der PVR Recording & Power Manager funktioniert auch soweit, ich habe das addon nach

    /home/user/.var/app/tv.kodi.Kodi/data/addons/service.pvr.manager/

    installiert (wobei ich natürlich meinen namen als user benutzt habe).


    Ich habe alle Abhängigkeiten für das Addon installiert: certifi, chardet, phython-dateutil etc.

    Ich habe die Datei remote.xml erstellt

    /home/user/.var/app/tv.kodi.Kodi/data/userdata/keymaps/remote.xml

    Ich habe mit visudo folgenden Eintrag vorgenommen:

    @includedir /etc/sudoers.d
           Cmnd_Alias PVR_CMDS = /home/user/.var/app/tv.kodi.Kodi/data/addons/service.pvr.manager/resources/lib/shutdown.sh
    user ALL=NOPASSWD: PVR_CMDS

    Wenn ich nun F12 drücke, passier leider nichts weiter, als dass der PVR Recording & Power Manager seine Meldung in Kodi anzeigt, dass der Rechner gleich heruntergefahren wird, dann passiert aber nichts.

    Gibt es irgendwo in meinem Setting einen Denkfehler, so dass ich nochwas ändern muss?

    Im Addon selbst habe ich folgende Einstellungen, die bei mir bisher immer funktioniert haben:

    Shutdown performed by OS (Linux)

    Shutdown Method Power off


    Für Hilfen wäre ich wirklich dankbar, weil es wohl in Zukunft einfacher sein wird, Kodi via flatpak zu installieren als via PPA (s.o.).


    Grüße

    Hondo

  • Alles viel zu umständlich, installiere einfach in einer virtuellen Umgebung folgendes Python-Programm:

    GitHub - languitar/autosuspend: A daemon to automatically suspend and wake up a system
    A daemon to automatically suspend and wake up a system - languitar/autosuspend
    github.com

    Installation instructions - autosuspend 7.0.2 documentation

    und erstelle einen systemd-service:

    systemd integration - autosuspend 7.0.2 documentation

  • Danke für die Antwort, ich kann mit Python nicht umgehen bzw. das Skript bearbeiten, für den Fall das irgendwas nicht stimmt.

    Es geht aus der Dokumentation nicht hervor, unter welchen Bedinungen der Server in den Standby geht, wie und wann (bzw. unter welchen Voraussetzungen) er aufwacht.

    Nimmt das Skript mit tvheadend via API kontakt auf und liest die Aufnahmedaten aus?

  • Das Problem sind die Einschränkungen selbst, die Flatpak mit sich bringt. Sofern der Linux-PC nur für Kodi (und TVHeadend) verwendet wird und keine anderen Aufgaben zu bewältigen hat, empfehle ich die Umstellung auf LibreElec. Auch da ist TVHeadend als Service mit dabei. Bestimmte Sachen lassen sich evtl. auch im Docker installieren, den bringt LibreElec ebenfalls mit.

    Sicher lässt sich Flatpak auch per Policies überreden, z.B. in die RTC zu schreiben, aber da fehlt mir leider auch die nötige Kompetenz. Das Thema Flatpak und Power Manager hatten wir z.B. schon hier: Kodi Omega falsch installiert?

    AZi (DEV): Nexus auf LibreElec | Asrock J4205 | 4 GB RAM | 128 GB Sandisk| Rii mini
    DEV: PC Ubuntu 20.04 | Matrix
    AZi: Tanix TX3 | Android/CoreElec Dualboot (EMMC), Nexus
    WoZi: Nexus auf LibreElec | Asrock J4205 | 4GB RAM | 128 GB Sandisk SSD | Atric IR | URC7960

    NAS: unRaid, 3x6TB, 2x12TB | TV-Server: Futro S550 mit Hauppauge QuadHD DVB-C
    PayPal: paypal.me/pvdbj1

  • Es geht aus der Dokumentation nicht hervor, unter welchen Bedinungen der Server in den Standby geht, wie und wann (bzw. unter welchen Voraussetzungen) er aufwacht.

    Nimmt das Skript mit tvheadend via API kontakt auf und liest die Aufnahmedaten aus?

    Doch, das ist alles in der Doku beschrieben.

    API wäre vielleicht übertrieben, TVHeadend gibt eher xml-Statusseiten heraus, die von autosuspend ausgelesen werden. Ob das mit Flatpak funktioniert, kannst Du einfach herausfinden, indem Du den Link im Browser versuchst aufzurufen:

    http://192.168.1.41:9981/status.xml

    (natürlich Deine lokale IP-Adresse einsetzen).

    Die idle-time ganz oben in der config-Datei gibt an, wie oft der Systemzustand abgefragt wird, in meinem Fall 900 Sekunden = 15 Minuten. Das Skript läuft, stellt fest, daß keine Bedingung für den Weiterbetrieb erfüllt ist, wartet nochmal bis zur nächsten Abfrage und wenn dann immer noch alles stillsteht, wird der Rechner heruntergefahren.

  • Hi Malvinas und PvD,

    erst einmal Danke für die Infos. Dass das PvR nicht unter faltpak läuft, ist schade, bisher habe ich immer gute Erfahrungen mit dem Addon für Kodi gemacht und alles lief sauber. Es liegt ja auch nicht an PvR, sondern daran, dass Kodi keine Version für 24.04 via PPA rausbringt.

    Zu Malvinas: Bei mir zeigt die status.xml folgendes an:

    <currentload>
    <systemload>0.222168,0.129883,0.096680</systemload>
    <recordings> </recordings>
    <subscriptions>0</subscriptions>
    </currentload>

    Da ich meinen Rechner nebenher auch noch normal benutze, kann ich LibreElec nicht installieren. Meine Frage an Malvinas: Wieso sollte ich das Script und die Services nur in einer virtuellen Umgebung nutzen?

    Vielleicht kann ich aus den Bedingungen, die Du in Deiner autosuspend.conf.txt angibst, vielleicht nochwas zur Erweiteung meines bzw. Roosters Skript hinzufügen.

    Ich hätte es nämlich gerne so wie bei PvR, dass ich eine Bedingung brauche, die dem Suspend-Skript deutlich anzeigt, dass da noch jemand am Rechner sitzt. Also ich habe bisher immer so gehandhabt, dass mein Recher, wenn er hochfährt, sich immer automatisch anmeldet mit einem Nutzer. Jetzt müsste das Skript eben verlässlich checken, sitzt einer am Rechner oder kann ich wieder herunterfahren.

    Ich mache es im Moment mit dem Skript von Rooster so, dass ich den Rechner nicht automatisch mit einem Benutze starten lasse, sondern nur ganz normal bis zum Login. Dann bleibt der Rechner auch in der Schleife immer wieder bei jeder Aufnahme aufzuwachen, weil ich einen Crontab-Job mit em Rooster-Skript einschalte, das eben prüft, ob bestimmte Dinge laufen oder nicht (Kodi, konsole, externe Zugriffe auf tvheadend, interne Zugriffe auf tvheadend). Da ich ja nur bis zum Login komme, laufen diese Dinge natürlich nicht, deswegen wird das Skript via crontab dann auch nach 15min aufgerufen, die nächste Aufnahmezeit in den rtc geschrieben und dann wieder aufgeweckt.

    Wenn ich mir anmelde verknüpfe ich das mit einem Skript, dass den Crontab-Job ausschaltet, so dass mein Rechner nicht mehr unkontrolliert herunterfährt.

    Was ich gerne noch hingekommen würde, wäre, dass ich den Rechner immer automatisch anmelde und der Rechner nur dann verlässlich via Skript herunterfährt, wenn ich nicht am Rechner sitze.

    Hier das von mit abgeänderte Skript von Rooster:

    Ich möchte deswegen das Autologin immer an haben, weil ich gerne auch noch via KDEConncet auf meinen Accoutn zugerife. Das geht aber eben nur, wenn ich angemeldet bin.

    Es darf eben nicht passieren, dass ich gerade am Rechner sitze, der crontab Job läuft und der Rechner heruntergefahren wird, obwohl ich lange Texte (wie hier z.B.) schreibe und der Rechner dann einfach runterfährt und alles weg ist.


    LG

    Hondo


    P.S.: Frage an PvD, welche Abfragen hast Du in Deinem Skript gehabt, die das ermöglicht haben, dass das mit Deinem Addon so funktioniert hat, wie ich es eben beschrieben habe.

  • Es gibt eine Methode xbmc.getGlobalIdleTime(), die zurückgesetzt wird, sobald der User die Tastatur, die Maus oder die FB benutzt. Läuft die Zeit z.B. auf 300 hoch, hat der User 5 Minuten nichts gemacht. Daneben werden noch Netzwerkaktivität, laufende Prozesse usw. ausgewertet.

    service.rpm/service.py at master · b-jesch/service.rpm
    Contribute to b-jesch/service.rpm development by creating an account on GitHub.
    github.com

    AZi (DEV): Nexus auf LibreElec | Asrock J4205 | 4 GB RAM | 128 GB Sandisk| Rii mini
    DEV: PC Ubuntu 20.04 | Matrix
    AZi: Tanix TX3 | Android/CoreElec Dualboot (EMMC), Nexus
    WoZi: Nexus auf LibreElec | Asrock J4205 | 4GB RAM | 128 GB Sandisk SSD | Atric IR | URC7960

    NAS: unRaid, 3x6TB, 2x12TB | TV-Server: Futro S550 mit Hauppauge QuadHD DVB-C
    PayPal: paypal.me/pvdbj1

  • Virtuelle Umgebung, nicht virtuelle Maschine. Und virtuelle Umgebung einfach nur, weil es die Installation stark erleichtert.

    Aber um ehrlich zu sein, möchte ich Dich bitten, die von mir verlinkte Dokumentation DURCHZULESEN. Darin sind nämlich alle deine Fragen beantwortet und da du die Fragen parallel auf tvheadend.org stellst, scheinst du des Englischen mächtig zu sein.

    Trotzdem in Kürze die config-Datei von autosuspend erklärt:

    im Abschnitt [check.Ping] kannst du unter hosts die IP-Adressen von Rechnern eintragen, die dann regelmäßig von autosuspend angepingt werden. Sofern die Rechner eingeschaltet sind und auf den Ping antworten, wird ein Ausschalten des Rechners verschoben.

    im Abschnitt [check.ActiveConnection] kann man Ports des Servers eintragen. Solange diese von eingehenden Anwendungen benutzt werden, wird der Server nicht ausgeschaltet.

    [check.NetworkBandwidth]: Solange Datenrate der Netzwerkkarte eine vorgegebene Geschwindigkeit überschreitet, wird Server nicht ausgeschaltet. Nützlich, wenn man wieder mal Urlaubvideos herunterlädt.

    [check.Smb]: Bei mir ausgeschaltet, aber falls der Server Dateifreigaben über SMB bereitstellt, läßt sich hiermit kontrollieren, daß der Server nicht ausgeschaltet wird, solange Zugriff darauf besteht.

    [check.RemoteUsers] und [check.LocalUsers]: Wenn jemand lokal oder remote auf dem Server eingeloggt ist (also im Normalfall eine Shell geöffnet ist), wird der Server nicht heruntergefahren.

    Naja, so setzt sich das Spiel halt mit allen [check_irgendwas] fort .... (es gibt auch speziell einen Check für Kodi, der prüft allerdings nur, ob auf dem Server selbst eine Kodi-Instanz aktiv ist. Da Kodi bei dir und mir auf einem anderen Rechner läuft, kommt das nicht infrage).

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!