[gelöst][yaVDR 0.5] Frage zum nächtlichen Abgleich des EPG mittel xmltv2vdr

  • Hallo zusammen,


    ich habe hier mal wieder ein Timingproblem... :O


    Installiert ist xmltv2vdr in Kombination mit epgdata.com, der Abgleich der EPG-Daten soll nachts erfolgen, daher habe ich xmltv2vdr.options.wakeup = 1 in der setup.conf
    gesetzt und 3:09 als Aufwachzeit definiert. Im syslog habe nun folgendes:

    Code
    Mar  1 22:51:50 htpc vdr-addon-acpiwakeup: Setting ACPI alarm time to: 2013-03-02 02:01:00


    Die Stundendifferenz rührt sicherlich vom UTC der RTC und die 8 Minuten kommen allem Anschein nach vom xmltv2vdr.
    Ein erstes Lebenszeichen im syslog:

    Code
    Mar  2 03:01:39 htpc kernel: imklog 5.8.6, log source = /proc/kmsg started.


    Und dann kommt der böse Shutdown (nach 5 Min., da das Frontend nicht aktiv ist - soll ja auch nicht.

    Code
    Mar  2 03:06:52 htpc vdr: [2071] dbus2vdr: new message, object /Shutdown, interface de.tvdr.vdr.shutdown, member ConfirmShutdown


    Die daraus resultierende Frage: Wo kann ich diesen Shutdown-Timeout einstellen, wenn das überhaupt so ohne weiteres möglich ist bzw. kann man xmltv2vdr
    dazu bringen, weniger als 8 Min. vor der Zeit zu booten?


    Cheers,
    Ole

    Einmal editiert, zuletzt von OleS ()

  • xmltv2vdr setzt die Aufwachzeit 3 Minuten vor der Zeit (Hardcoded), das acpi Shutdownscript gibt per default 5 Minuten dazu, das könnte man ändern.


    Aber mit fixes Zeiten ruzufummeln ist der falsche Weg. Hier muss einfach noch die Abfrage für "Active" der Plugins rein, weil die scheint (das würde ich jetzt als erstes prüfen) zu fehlen.
    Weil xmltv2vdr braucht solange wie es braucht (ist nicht wiklich vorhersagbar), und danach werden die Suchtimer wieder aktiviert und epgsearch braucht dann auch noch etwas für den Lauf. Also darf der vdr erst runterfahren wenn alle Plugins bei der Abfrage von Active "NULL" zurückgeben.


    cu

  • Dann verhält sich das Plugin aber merkwürdig - der VDR sollte ja sehen, dass er wegen einem ACPI-Wakeup Event geweckt wurde und dann MinEventTimeout warten, bis er den Shutdown einleitet (was steht da im syslog - "assuming manual start" oder "assuming start for acpi-wakeup"?):
    https://github.com/yavdr/yavdr…ddevice-02-script.py#L364

    Und dann kommt der böse Shutdown (nach 5 Min., da das Frontend nicht aktiv ist - soll ja auch nicht.

    Code
    dbus2vdr: new message, object /Shutdown, interface de.tvdr.vdr.shutdown, member ConfirmShutdown


    Das ist nicht der böse Shutdown, sondern schlicht eine Frage an den VDR ob er, ein Plugin oder ein Shutdown-Hook etwas gegen das Herunterfahren hat.
    Wenn das Plugin nicht signalisiert, dass es noch beschäftigt ist, kann ich nichts dafür - evtl. sollte man da - wenn es ein externes Skript gibt - das als Kriterium für einen Shutdown-Hook einbauen.

    yaVDR-Dokumentation (Ceterum censeo enchiridia esse lectitanda.)

  • Ok, gefunden:


    Das wären 3 Minuten vor der Zeit, hinzu kommt:

    Code
    MarginStart = 2


    Das wären dann insgesamt 5 Min. und woher kommen die fehlenden 3 Min.? *grübel*


    Cheers,
    Ole

  • Wenn das Plugin nicht signalisiert, dass es noch beschäftigt ist


    Das tut es ja, deswegen hatte ich jetzt vermutet das diese Abfrage nicht klappt.


    cu

  • Dann verhält sich das Plugin aber merkwürdig - der VDR sollte ja sehen, dass er wegen einem ACPI-Wakeup Event geweckt wurde und dann MinEventTimeout warten, bis er den Shutdown einleitet (was steht da im syslog - "assuming manual start" oder "assuming start for acpi-wakeup"?):


    Code
    Mar  2 03:01:40 htpc vdr: [1232] scheduled wakeup time in 4 minutes, assuming automatic start of VDR
    Mar  2 03:01:52 htpc vdr-frontend[2127]: assuming start for acpi-wakeup
  • Das tut es ja, deswegen hatte ich jetzt vermutet das diese Abfrage nicht klappt.


    Also mein Test für ein aktives Plugin, das den Shutdown verhindert ist klassicherweise Streamdev - da liefert dbus2vdr immer den korrekten Antwort-Code 905:

    Code
    $ vdr-dbus-send /Shutdown shutdown.ConfirmShutdown boolean:true
    method return sender=:1.2 -> dest=:1.6 reply_serial=2
       int32 905
       string "some plugin is active"
       int32 0
       string ""


    yaVDR-Dokumentation (Ceterum censeo enchiridia esse lectitanda.)

  • Wenn ich das richtig verstanden habe, ist das Plugin zum Zeitpunkt des Shutdown doch noch gar nicht aktiv, da es erst um 3:09 startet, oder?


    Cheers,
    Ole

  • Code
    Mar  2 03:01:52 htpc vdr-frontend[2127]: assuming start for acpi-wakeup


    Dann müsste er hier einen Timeout entsprechend dem Brückentimer setzen: https://github.com/yavdr/yavdr…ddevice-02-script.py#L367 - und erst wenn das abgelaufen ist, sollte er nachfragen, ob der VDR herunterfahren will.


    Auf welchem Wert steht der Brückentimer denn? Bzw. wenn du es für den Fall abweichend setzen willst, kannst du da einfach in Millisekunden angeben, wie lange er warten soll.

    yaVDR-Dokumentation (Ceterum censeo enchiridia esse lectitanda.)

  • Also bei mir gehts


    Und beim automatischen Start (bei mir um 8 Uhr) ist mir noch nie nen Fehler aufgefallen.


    Tja, dann scheint das System generell zu passen, also Bug suchen.


    Edit: Ach hat sich ja schon gefunden :)


    cu

  • Auf welchem Wert steht der Brückentimer denn?


    Code
    MinEventTimeout = 30


    Cheers,
    Ole

  • Edit: Ach hat sich ja schon gefunden


    irgendwie komme ich da nicht ganz mit... ?(


    OleS: könntest du mal ein komplettes syslog posten? Mit den Schnipseln tu ich mir etwas hart...

    yaVDR-Dokumentation (Ceterum censeo enchiridia esse lectitanda.)


  • irgendwie komme ich da nicht ganz mit... ?(


    Die Lösung ist doch das der Runterfahrenversuch kommt bevor das xmltv2vdr Plugin überhaupt anfängt.


    Jetzt interessiert mich aber mal warum der VDR bei mir überhaupt solange wartet....
    Weil offenbar wartet der plain VDR nach dem automatischen Start lange genug bevor er beschliest wieder runterzufahren weil nix zu tun ist.


    Weil bei mir von heute morgen


    Edit:

    Code
    Mar  2 01:20:58 dirk-vdr vdr: [2118] next plugin wakeup at Sat Mar  2 07:57:00 2013


    (Wakeup wird 5 Minuten vorher gesetzt, also angegangen ist er um 07:52:00)


    Code
    Mar  2 07:53:07 dirk-vdr vdr: [2116] VDR version 1.6.0-3 started
    Mar  2 08:00:00 dirk-vdr vdr: [2847] xmltv2vdr importer thread started (pid=2116, tid=2847)


    Warum wartet der VDR fast 7 Minuten?


    Vermutlich nimm er die Wakeupzeit (aus der setup.conf) + SHUTDOWNWAIT (aus der vdr.c). Also hier 07:57 + 5 Minuten, also wäre der Runterfahrversuch 08:02 gewesen.


    cu

  • Die Lösung ist doch das der Runterfahrenversuch kommt bevor das xmltv2vdr Plugin überhaupt anfängt.


    Als Lösung würde ich das nicht sehen, eher als Kernproblematik. :D (Bitte nicht hauen...!)
    Kann ich denn iwo definieren, wie lange der VDR bei deaktivertem Frontend bis zum ersten Shutdown-Versuch wartet?


    Cheers,
    Ole

  • Ich könnte ja in /etc/vdr/vdr-addon-acpiwakeup.conf

    Code
    # How many minutes should the machine wake up before the timer starts:
    ACPI_START_AHEAD=5


    abändern, aber eigentlich sehe ich Lösung eher beim Shutdown.


    Cheers,
    Ole

  • OleS: Ein Syslog von dem ganzen bräuchte ich schon...


    Wie erzeugt das Plugin eigentlich den Aufwachzeitpunkt? Wenn das über NextWakeupTime in der setup.conf landet könnte er es fälschlicherweise als Aufwachen für einen Timer interpretieren - dann müsste man das Timeout hier hochsetzen:
    https://github.com/yavdr/yavdr…ddevice-02-script.py#L363

    yaVDR-Dokumentation (Ceterum censeo enchiridia esse lectitanda.)

  • xmltv2vdr setzt die Aufwachzeit 3 Minuten vor der Zeit


    Das ist doch eigentlich unsinnig, wenn ACPI-Wakeup auch schon 5 Min. per default draufrechnet, es sei denn andere Wakeup-Mechanismen verhalten
    sich anders und man möchte hierzu kompatibel sein.


    Cheers,
    Ole

  • OleS: Ein Syslog von dem ganzen bräuchte ich schon...


    Und hier ist er, zumindest vom Wakeup bis zum Shutdown.


    xmltv2vdr verhält sich auch korrekt:

    Code
    Mar  1 19:21:54 htpc vdr: [1225] xmltv2vdr: 'epgdata2xmltv' nextrun on Sat Mar  2 03:09:00 2013
    Mar  1 22:51:50 htpc vdr: [1225] next plugin wakeup at Sat Mar  2 03:06:00 2013


    Minus die 5 Min. vom ACPI sind wir dann bei 03:01:00 2013 und der erste Syslogeintrag datiert auf Mar 2 03:01:39


    Cheers,
    Ole

    2 Mal editiert, zuletzt von OleS ()

  • Wie erzeugt das Plugin eigentlich den Aufwachzeitpunkt? Wenn das über NextWakeupTime in der setup.conf landet könnte er es fälschlicherweise als Aufwachen für einen Timer interpretieren - dann müsste man das Timeout hier hochsetzen:
    https://github.com/yavdr/yavdr…ddevice-02-script.py#L363


    Schau noch mal in Posting 13 unten (ich hatte da noch mal was editiert), ich denke das (Wakeupzeit (aus der setup.conf) + SHUTDOWNWAIT (aus der vdr.c)) wäre der korrekte Zeitpunkt (der immer passt) für den Runterfahrversuch.


    Wie erzeugt das Plugin eigentlich den Aufwachzeitpunkt? Wenn das über NextWakeupTime in der setup.conf landet könnte er es fälschlicherweise als Aufwachen für einen Timer interpretieren


    Ja, das landet in der setup.conf, der VDR macht ja keinen Unterschied zwischen den verschiedenen Timern. Ihm ist es also wohl egal ob Aufnahmetimer oder Plugin.


    cu

  • OleS: könntest du mal das als /etc/yavdr/templates_custom/etc/init/vdr-frontend.conf/30_softhddevice-02-script.py ausprobieren: https://dl.dropbox.com/u/960809/30_softhddevice-02-script.py
    (und mit einem "sudo process-template /etc/init/vdr-frontend.conf" übernehmen)


    Hier noch der Diff:

    yaVDR-Dokumentation (Ceterum censeo enchiridia esse lectitanda.)

    Einmal editiert, zuletzt von seahawk1986 ()

Jetzt mitmachen!

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