per Python oder Shell herausfinden, ob gerade eine Aufnahme läuft?

  • Hallo,

    ich bin gerade dabei mir ein kleines Python Script zu bauen, welches ein paar Aufräumarbeiten auf der Platte vornimmt. Dazu würde ich gerne eine Funktion einbauen, die prüft, ob gerade eine Aufnahme läuft. Leider bekomme ich das nicht hin. Ideal wäre es direkt per Python, ansonsten wäre ich auch mit einer Abfrage über das WebIf oder notfalls per Shell glücklich.

    Habt ihr einen Tipp für mich?

    Edited once, last by lawww (November 29, 2024 at 9:03 AM).

  • Der gewünschte Tipp: OpenWebif API documentation · E2OpenPlugins/e2openplugin-OpenWebif Wiki · GitHub

    OpenWebif-API benutzen. Ob eine Aufnahme läuft, kannst du mit der Methode statusinfo abfragen.

    Diskutiere nie mit einem Idioten. Er zieht dich auf sein Niveau runter und schlägt dich mit seiner Erfahrung.

  • Mit Python:


    Wenn du ganz sicher sein willst einige Sekunden Vor-/Nachlauf einplanen.

  • Es gibt eine einfache Lösung:
    Du gibst über FireFox am PC folgenden Befehl:

    h t t p://receiverIp/web/timerlist

    Wenn keine Timeraufnahme läuft dann kommt die Meldung auf Firefox <e2timerlist> </e2timerlist>
    Wenn eine Aufnahme läuft dann kommt die Meldung mit dem Daten und Name der Aufnahme.

    Edited once, last by tarantul (November 29, 2024 at 12:33 PM).

  • Oder /api/timerlist.

    /web/... spuckt sofern die Methode unstützt wird, immer XML aus,
    /api/... spuckt immer JSON aus.

    Ein paar Methoden haben nur eine JSON-Ausgabe, die meisten aber sowohl XML als auch JSON.

    Ich finde, JSON ist einfacher zu parsen (vor allem, wenn man "jq" dafür benutzt - das Paket dafür findet man bei mir auf der Pinnwand). Für XML kann man sich auch was basteln, entweder mit Perl oder einem weiteren Python-Script.

    Diskutiere nie mit einem Idioten. Er zieht dich auf sein Niveau runter und schlägt dich mit seiner Erfahrung.

  • OT
    Wenn man nicht vor der Box und das Display nicht im Sichtfeld, im Openwebif kann man auch rechts oben sehen ob eine oder mehrere Aufnahmen aktiv.
    /OT

    Im Rahmen von Fernwartung ermittle ich im Interesse der Hilfesuchenden in alle Richtungen!

    Edited once, last by Radar (November 29, 2024 at 2:30 PM).

  • Hey cool. Danke euch!!!

    Also am liebsten wäre mir ja, es direkt in Python auszuwerten.

    @WeFraJo, was muss ich da denn als self übergeben? Anmerkung: ich bin derzeit nicht in einem Plugin, sondern führe das Programm manuell, bzw. per CronJob aus. Ohne self zu benutzen erhalte ich die Fehlermeldung "AttributeError: NonType object has no attribute 'RecordTimer'"

    Ansonsten Funktioniert die Abfrage per web oder api URL und Prüfung auf "<e2state>2</e2state>".
    Noch schöner finde ich api/statusinfo, da es hier direkt den Status "isRecording" gibt. Super!

    Nochmals Danke!

    Hintergrund, da ja bereits spekuliert wird: es geht darum, wenn man nicht vor der Box sitzt und nicht am Rechner. Ich habe ein Problem in Aufnahmen festgestellt, wenn Timeshift-Dateien gelöscht werden (nicht immer, aber ab und zu). Daher möchte ich die nicht einfach über die Timeshift Funktion löschen lassen, was eben auch öfter mal während einer Aufnahme erfolgen kann. Stattdessen möchte ich per Cronjob täglich zu einer bestimmten Zeit die Timeshiftdateien, die älter als x Tage sind löschen (bevor der Automatismus der Timeshift Funktion zuschlägt). Natürlich könnte es auch sein, dass zu diesem Zeitpunkt eine Aufnahme läuft, das möchte ich prüfen und das Scirpt ggf. für eine Zeit x schlafen legen...

    Es ist nicht ganz unsinnig, aber zu einem Teil auch ein erster Schritt auf der VU zu programmieren. Ich habe den Code auch bereits so, dass ich ihn als Plugin ausführen kann, dann allerdings noch manuell. Über den Weg als Plugin wäre der nächste Schritt, dass das Plugin automatisch alle 24 Stunden läuft.

    Edited 2 times, last by lawww (November 29, 2024 at 2:59 PM).

  • Was @WeFraJo gepostet hat, funktioniert nur als Plugin.

    Wenn du das in einem Standalone-Python-Script machen willst, bleibt nur der Weg über die OpenWebif-API. Die kannst du ja ganz einfach über ein "requests.get(...)" aufrufen.

    Diskutiere nie mit einem Idioten. Er zieht dich auf sein Niveau runter und schlägt dich mit seiner Erfahrung.

  • Prima. Dann lag ich mit meiner Interpretation richtig.

    Per standalone Script läuft es schonmal - perfect für einen Cronjob

    Und im Plugin habe ich es über die Funktion hinbekommen.

    Danke euch vielmals!

    Edited once, last by lawww (November 29, 2024 at 4:41 PM).

Participate now!

Don’t have an account yet? Register yourself now and be a part of our community!