Verständnisfrage zu config.misc.prev_wakeup_time

  • Das SerienRecorder Plugin kann die Box aufwecken, dazu registriere ich eine wakeupfnc die dann einen Unixtimestamp mit der nächsten Aufweckzeit zurück liefert. Gleichzeitig merke ich mir diesen Timestamp in einem eigenen Configwert.

    Jetzt möchte ich herausfinden ob die Box durch den SerienRecorder gebootet wurde oder nicht - dazu vergleiche ich in der autostart Funktion den enigma2 Configwert config.misc.prev_wakeup_time mit meinem gespeicherten Wert der wakeupfnc.

    Wenn beide Werte gleich sind, dann gehe ich davon aus, dass der SerienRecorder die Box gestartet hat.


    Leider hat config.misc.prev_wakeup_time aber auch bei einem manuellen Start der Box den Wert den die wakeupfnc liefert - das kann ich mir nicht erklären. Eigentlich hätte ich erwartet, dass dort der Timestamp des letzten Bootvorgangs gespeichert wird.

    Habe ich irgendwas übersehen?
    Kann mir jemand mit einem Codesnippet auf die Sprünge helfen, wie ich das realisieren kann?!

  • Ich hatte da beim StartupToIdle einiges zu prüfen.

    Dabei nutze ich folgende Funktionen:

    from Tools.DreamboxHardware import getFPWakeuptime, getFPWasTimerWakeup


    Im Elektro wird das so genutzt:

    Code
    automatic_wakeup = self.session.nav.wasTimerWakeup() # woken by any timer
    elektro_wakeup = automatic_wakeup and config.plugins.elektro.deepstandby_wakeup_time.value == config.misc.prev_wakeup_time.value
    record_wakeup = automatic_wakeup and config.misc.prev_wakeup_time.value and config.misc.prev_wakeup_time_type.value == 0

    Da wird die eigene wakeup-Time auch zwischengespeichert (config.plugins.elektro.deepstandby_wakeup_time.value) und im obigen Code wieder gegengeprüft.



    Vielleicht hilft dir das ja.

    Gruß Sven (aka Dreamy)


    DM920 mit unstable OE2.5 DP
    One mit unstable OE2.6 DP

  • Hmmm, genauso mache ich das auch, nur das bei mir die vergleichbare Prüfung (wie in Zeile 2 oberer Codeblock) auch dann true ist, wenn die Box manuell gestartet wurde. Seltsam, irgendwas muss bei mir anders sein, ich muss das nochmal vergleichen.

  • Prüfst du auch zusätzlich das automatic_wakeup oder machst du nur den Vergleich der beiden Werte ?


    Ansonsten kannst du ja mal prüfen, was diese beiden Funktionen liefern:

    from Tools.DreamboxHardware import getFPWakeuptime, getFPWasTimerWakeup

    Gruß Sven (aka Dreamy)


    DM920 mit unstable OE2.5 DP
    One mit unstable OE2.6 DP

    Einmal editiert, zuletzt von Sven H ()