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

    This site uses cookies. By continuing to browse this site, you are agreeing to our Cookie Policy.

    • 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?

      The post was edited 1 time, last by lawww ().

    • 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:

      Python Source Code: TimersCheck

      1. import time
      2. import NavigationInstance
      3. def check_timers(self):
      4. now = int(time.time())
      5. recording = False
      6. for timer in (NavigationInstance.instance.RecordTimer.timer_list):
      7. if not timer.justplay and not timer.justremind and timer.begin < now and timer.end > now:
      8. recording = True
      9. break

      Wenn du ganz sicher sein willst einige Sekunden Vor-/Nachlauf einplanen.
      Skin: Nemesis FHD (mit vielen eigenen Skinparts), MyEPG, EMC, OScam 1.20 rev.11682, ORF-Karte, MCC MovieCutCenter
    • 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.

      The post was edited 1 time, last by tarantul ().

    • 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

      The post was edited 1 time, last by Radar ().

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

      The post was edited 2 times, last by lawww ().

    • 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!

      The post was edited 1 time, last by lawww ().