Jump to content

EPG Timer geht nicht mehr in Ruhezustand


x112

Recommended Posts

Hallo,

 

mit der neuen Version geht der Rechner nach Abschluss der EPG Suche nicht mehr in den Ruhezustand. Der interne Task Timer verhält sich jetzt wie der externe: d.h. er wird gleich nach dem Start auf erledigt gesetzt und läuft im Hintergrund weiter. Früher hat es glaube ich bis zum EPG Ende gewartet. Dass die Timer Arten sich jetzt gleich verhalten, war vermutlich Absicht. Aber der ignorierte Ruhezustand sollte nicht sein.

Link to comment
vor 4 Stunden schrieb x112:

mit der neuen Version geht der Rechner nach Abschluss der EPG Suche nicht mehr in den Ruhezustand. Der interne Task Timer verhält sich jetzt wie der externe: d.h. er wird gleich nach dem Start auf erledigt gesetzt

 

Bestätigt. Das ist ein Bug. Beabsichtigt war, dass interne Task Timer nur sofort auf "erledigt" gesetzt werden, wenn die Aktion nach der Aufnahme "keine" ist. Wir werden wahrscheinlich in ein paar Tagen ein Bugfix Release bringen, in dem das behoben ist.

 

vor 5 Stunden schrieb x112:

Früher hat es glaube ich bis zum EPG Ende gewartet.

 

Nein, leider nicht. Bis zur programmierten Endzeit.

 

Das stört mich generell bei den internen Task Timern:  Es gibt im DMS keinen Mechanismus, der interne Task Timer stoppt, sobald die Task ausgeführt ist. Sie laufen stur bis zu ihrer Endzeit und lösen dann die "Aktion nach der Aufnahme" (also Ruhezustand, Energie sparen etc.)  aus, egal ob die auszuführende Task schon lange vorher fertig war oder noch gar nicht fertig ist. Man muss also die Endzeit abschätzen und entsprechend großzügig vorgeben, wodurch der PC unnötig lange läuft. Die "Aktion nach der Aufnahme" sollte besser sofort  ausgeführt werden, wenn der DMS mit der internen Task (EPG Update, Datenbank-Aktualisierung oder was auch immer) durch ist.

 

Ich habe deshalb gerade probiert, diesen Missstand zu beheben. Die programmierte Endzeit bestimmt jetzt nur noch die maximale Ausführungsdauer. Wenn die Task schneller erledigt ist, erfolgt der Stopp und die "Aktion nach der Aufnahme" früher. Ein paar Tests verliefen erfolgreich. Ich werde das noch mal untersuchen und mich dann per PM bei dir melden zwecks weiterer Test.....

 

@ Alle: Gibt es zu dem Thema weitere Meinungen oder Einwände?

 

  • Like 1
Link to comment

Stimmt. Wenn die EPG Suche fertig war, hat der PC noch ein bisschen rumgetrödelt bis er schlafen ging.  Die maximale Laufzeit wäre prima. Neue Versionen teste ich gerne.

Link to comment

PM gesendet...

 

Worüber ich mir noch nicht ganz klar bin: Wenn die Ausführung einer internen oder externen Task fehlschlägt, wird die finale Aktion des Timers (Ruhezustand etc.) nicht ausgeführt. Ist das so wünschenswert oder eher nicht? Es ist schwer, alle möglichen Szenarien zu überblicken.

 

Ein einfaches Beispiel (etwas an den Haaren herbeigezogen...): Ein interner Task Timer mit Aufgabe = EPG-Aktualisierung beenden und Aktion nach Aufnahme = Ruhezustand. Die Task schlägt fehl, solange keine EPG-Aktualisierung läuft. Der Timer probiert es im Sekundenrythmus immer wieder, bis seine Endzeit erreicht ist. Wenn bis dahin keine EPG-Aktualisierung gestartet wurde, die beendet werden kann, passiert gar nichts.

 

BTW: Der Begriff "Aktion nach der Aufnahme" ist bei internen/externen Task Timern irreführend. Es wird in Zukunft "Abschließende Aktion" heißen.

 

Link to comment

Mit der Testversion funktioniert der Ruhezustand danach wieder, aber der EPG Start Timer lief immer noch komplett durch. D.h. der Ruhezustand direkt nach EPG Ende ist nicht passiert.

Wozu braucht man eigentlich sinnvoll den Task "EPG beenden"? Ich habe bisher immer nur "EPG starten" verwendet.

Wenn ein Task fehlschlägt, will man meistens schauen was schief ging. Ich finde es deshalb unpraktisch wenn der Rechner sich dann abschaltet.

Link to comment
vor 5 Stunden schrieb x112:

Mit der Testversion funktioniert der Ruhezustand danach wieder, aber der EPG Start Timer lief immer noch komplett durch. D.h. der Ruhezustand direkt nach EPG Ende ist nicht passiert.

 

Hier klappt es mit folgendem Ablauf:

  • Internen Task Timer mit Aufgabe = EPG-Aktualisierung starten und Aktion nach Aufnahme = Energie sparen erstellt, der in zwei Minuten startet und eine Stunde läuft.
  • EPG-Aktualisierung startet wie vorgesehen, läuft etwa 16 Minuten, da Beschränkung auf Transponder mit Favoriten konfiguriert
  • Nach den 16 Minuten erscheint der Hinweis, dass der DMS den PC ausschalten wird, mit 30-Sekunden Countdown -> Abgebrochen.

Wie war dein Ablauf? War die EPG-Aktualisierung wirklich deutlich vor dem Erreichen der Endzeit fertig? Den Fortschritt kann man auf der Statusseite des Webinterface sehen.

 

P.S. Der Ablauf müsste auch im svcdebug.log verzeichnet sein. Ich habe zusätzliches Logging eingebaut. Vielleicht kannst du das Log mal gezippt zur Verfügung stellen...

 

vor 5 Stunden schrieb x112:

Wozu braucht man eigentlich sinnvoll den Task "EPG beenden"?

 

Um auf der Aufgabenseite eine EPG-Aktualisierung manuell beenden zu können. Die Aufgaben erscheinen nicht nur bei der Timer-Programmierung.

 

Edited by Griga
P.S. ergänzt
Link to comment

Ich habe einen einmaligen Task definiert, d.h. alle Wochentage deaktiviert. Im Logfile sieht man das nach EPG Ende noch eine Weile bis zum Ruhezustand gewartet wird.

svcdebug.zip

Zum EPG vorzeitig Beenden habe ich immer den Timer deaktiviert, ist das was anderes als der Task "EPG beenden"?

Link to comment
vor 7 Stunden schrieb x112:

Ich habe einen einmaligen Task definiert, d.h. alle Wochentage deaktiviert.

 

Auch damit funktioniert es bei mir. Könnte es sein, dass es zu dem Zeitpunkt noch weitere (auch deaktivierte) interne Task Timer für "EPG-Aktualisierung starten" in deiner Timerliste gab? Der neue Code, der den Timer stoppen soll, behandelt nämlich nur den ersten mit passender Aktion und steigt dann aus der Schleife aus. Die Annahme, dass es nur einen gibt, war vielleicht etwas naiv ;)

 

vor 7 Stunden schrieb x112:

Zum EPG vorzeitig Beenden habe ich immer den Timer deaktiviert, ist das was anderes als der Task "EPG beenden"?

 

Auf jeden Fall. Der Timer wird dadurch gestoppt, die abschließende Aktion (Ruhezustand etc.) nicht ausgeführt, aber die Task läuft weiter. Es gibt im Gegensatz zu Aufnahmen keinen Mechanismus, der es einem Timer ermöglicht, eine interne oder externe Task abzubrechen, außer durch Herunterfahren/Einschläfern des PC.

Link to comment

Jetzt erfolgt die Aktion direkt nach dem EPG Lauf. Normalerweise habe ich nur einen externen Task (XEPG) und einen internen (DVB EPG). Aber zum Testen habe ich natürlich einen zweiten internen Timer angelegt.

Link to comment

Gut, das wäre damit geklärt. Danke für deine Mitwirkung!

 

Nochmal zu

vor 13 Stunden schrieb x112:

Zum EPG vorzeitig Beenden habe ich immer den Timer deaktiviert, ist das was anderes als der Task "EPG beenden"?

 

Um eine durch einen internen Task Timer gestartete EPG-Aktualisierung wirklich komplett ohne Folgen zu beenden, muss man erst den Timer deaktivieren und dann zusätzlich die Aktualisierung auf der Aufgaben-Seite beenden. Macht man es umgekehrt, wird die abschließende Aktion (Ruhezustand etc.) ausgelöst. Datenbank-bezogene Aufgaben lassen sich gar nicht abbrechen, außer durch Herunterfahren/Einschläfern des PC oder Stoppen des DMS. So ganz befriedigend ist das noch nicht. Ändern werde ich es allerdings vor dem bevorstehenden Bugfix Release nicht mehr, da es ein größerer Eingriff wäre.

 

Link to comment

Ich habe mit der Testversion einen Timer für eine EPG-Aktualisierung eingestellt mit einem Start um 13:15 und einem Stop um 15:30. Als Folgeaufgabe war ein Heruntergefahren konfiguriert. Die Aktualisierung war um 13:23 beendet und dann hat sich der Rechner brav heruntergefahren.

 

Es funktioniert also, wie gewünscht. Sehr schön.

 

Da hätte ich gleich eine Folgefrage: wie kann ich konfigurieren, dass der Rechner nicht heruntergefahren sondern neu gestartet wird? Das wird in den möglichen Folge-Aktionen nicht angeboten, genausowenig wie die von mir zusätzlich erzeugte Task.

 

Link to comment

Welchen Sinn würde ein Neustart haben? Das erschließt sich mir gerade nicht was da "besser" wäre als wenn der Rechner einfach weiter läuft.

Link to comment

Da hast Du recht, im Allgemeinen wäre das in der Tat sinnvoller und da ist vielleicht meine Konfiguration etwas speziell: Ich nutze Eventghost mit dem MCE-Plugin und einer Harmony Touch, und diese Kombination hat sich seit dem Wechsel nach Windows 8/10 als zunehmend instabil erwiesen, wenn der Rechner nicht regelmäßig neu gestartet wurde. Seit ich jeden Morgen nach der EPG-Aktualisierung einen Neustart mache, geht es einigermaßen, obwohl es dennoch immer mal wieder passiert, dass Ereignisse verschluckt werden. Den Neustart habe ich als eigenständige Task in der Windows-Aufgabenplanung eingestellt und muss dabei das geplante Ende des EPG-Updates abwarten. Der Rechner wechselt dann über das Powermanagement von Windows nach kurzer Zeit in den Energiesparmodus.

 

Es wäre also eleganter und würde etwas Strom sparen, wenn ich den neuen Mechanismus auch für einen Neustart nutzen könnte, es sind aber nur ein Wechsel in den Energiespar- oder Ruhemodus und ein Aushalten implementiert. Die Erweiterung auf einen Neustart lässt sich wohl nicht kurzfristig realisieren, es gibt aber auch keinen echten Leidensdruck bei mir.

Link to comment
Am 22.1.2019 um 12:56 schrieb Griga:

 

Man muss also die Endzeit abschätzen und entsprechend großzügig vorgeben, wodurch der PC unnötig lange läuft. Die "Aktion nach der Aufnahme" sollte besser sofort  ausgeführt werden, wenn der DMS mit der internen Task (EPG Update, Datenbank-Aktualisierung oder was auch immer) durch ist.

 

Ist das neu? Mein EPG Timer hatte die gleiche Start- und Endezeit und hat immer einwandfrei funktioniert. Seit der 2.1.4.0 wird zwar der Rechner zur definierten Zeit gestartet aber das EPG wird nicht aktualisiert. Ich ändere jetzt mal die Endezeit und hoffe, dass es dann wieder klappt.

Link to comment

Die Endzeit eines internen Task Timers bestimmt jetzt die maximale Ausführungszeit der Task. Das gilt jedoch nur, wenn der PC zur Endzeit runterfährt/einschläft. Anders kann ein interner Task Timer die ausgeführte Aufgabe nicht abbrechen.

 

Das heißt in deinem Fall, der PC ist aufgewacht und gleich wieder eingeschlafen. Der Ablauf müsste im svcdebug.log ersichtlich sein.

 

Link to comment

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Unfortunately, your content contains terms that we do not allow. Please edit your content to remove the highlighted words below.
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...