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).

  • malvinas2

    In meinem TV Server ist eine DVB-S2 Sat Karte verbaut. Über meinen TV Server schaue ich mit einem meiner Kodi Clients Live-TV. Darum soll mein TV Server jeden abend um ca. 18 Uhr starten und frühestens um ca. 22 Uhr herunterfahren. In dieser Zeit will ich halt immer sofort auf Live TV oder auf meine Filme zugreifen können. Außerhalb dieser "Hauptnutzungszeit" würde mein TV Server bei Bedarf von einem der Kodi Clients über WakeOnLAN geweckt werden und ich müßte dann halt solange warten (ca. 1 - 2 Minuten) bis der TV Server hochgefahren ist.

    Kann das dieses Script von Languitar? Dann wäre es sicherlich eine interessante Alternative für mich.

  • olli14

    Das ist unter https://autosuspend.readthedocs.io/en/v7.0.2/faq.…tive-at-daytime beschrieben.

    Du benötigst eine Kalenderdatei im ics-Format, siehe Anhang. In Zeile 11 (DTSTART) und 12 (DTEND) änderst du nur die Uhrzeit, bei mir steht sie auf 06:58 Uhr morgens und 08:00 Uhr. Also der Rechner wird um zwei vor sieben geweckt, erledigt eine Reihe von Standardaufgaben (über Cron-Jobs) und legt sich um 08:00 Uhr wieder schlafen. Tagsübe wird er bei Bedarf aus dem Suspend-Mode geweckt.

  • malvinas2

    Noch eine Frage zu diesem Autosuspend Programm. Wenn der Rechner sich nicht schlafen legen würde (oder sich fälschlicherweise schlafen legt), weil ich eine falsche Konfiguration vorgenommen habe (SMB Überwachung aktiviert, oder eine Port Überwachung oder sonstiges), wie würde ich dann herausbekommen, was das Schalfen legen verhindert oder das Schlafen legen verursacht hat? Schreibt Autosuspend z.B. in die Syslog Informationen rein, an denen man erkennen kann, was das Schlafen legen verhindert oder Schlafen legen verursacht?

    Mein aktuelles "veraltetes" (aber funktionierendes) Autosuspend schreibt Informationen in die Syslog. Wenn ich die Informationen aus der Syslog vergleiche mit dem "Quellcode" von meinem "alten" Autosuspend Script dann verstehe ich die Zusammenhänge und kann entsprechend herausfinden wo mein Denkfehler ist.

    Aber das neue Autosuspend Programm unterstützt ja z.B. die Option "Überwachung des Datenverkehrs". Das hört sich schon "reizvoll" an.

  • Ich habe kürzlich versucht autosuspend anhand der Vorgaben "manuelle Installation" (siehe #2) zu installieren. Das klappte schon mal nicht. Da kamen Fehlermeldungen. Mal schauen ob ich herausbekomme warum das nicht geht. Dann steht in der Installationsanleitung noch geschrieben:

    Afterwards, copy the systemd unit files found in /opt/autosuspend/lib/systemd/system/ to /etc/systemd and adapt the contained paths to the installation location.

    Was ist genau gemeint mit "...adapt the contained paths to the installation location..."?

  • Ich war der Meinung daß meine INstallation von Autosuspend nicht funktioniert hat. Während der Installatio habe ich Fehlermeldungen bekommen. Aber laut meiner Syslog läuft da "irgendwie" Autosuspend.

    Im Anhang habe ich mal einen Auszug meiner Syslog von nur ein paar Minuten drangehängt. Ist das normal, daß die Syslog alle paar Sekunden "vollgemüllt" wird?

    Da Autosuspend ja "irgenwie" läuft, wollte ich es mal testen. Ich habe eine Autosuspend.conf erstellt und eine Autosuspend.ics. Der PC fährt jedoch nicht runter weil User "oliver" aktiv ist. Da ich Linux Mint nutze und mein PC daher kein echter Server ist, möchte ich diese Userabfrage deaktivieren. Ich dachte, daß hätte ich in meiner Autosuspend.conf entsprechend richtig konfiguriert. Aber scheinbar nicht. Kann mir da jemand helfen?

    Da Autosuspend sicherlich nicht richtig installiert ist, ist meine Frage, wie ich Autosuspend bei Bedarf wieder löschen kann?

Jetzt mitmachen!

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