Jump to content

Nach Aufnahme nur noch Abwesenheitsmodus (kein Standby)


thor.a

Recommended Posts

Hallo,

 

seit kurzem geht mein Laptop (Windows 7 x64) nach einer Aufnahme mit dem DVBViewer RecordingService nicht mehr in den Standby (S3-Zustand), sondern nur noch in den Abwesenheitsmodus. Möglicherweise hat das mit dem Update der letzten Update des RecordingService zu tun. Das Windows System wurde in der Zwischenzeit bzgl. seiner Energieeigenschaften nicht geändert.

 

DVBViewer RecordingService: 1.23.1.0

 

Eine Folge des erstmaligen Eintretens in den Abwesenheitsmodus ist weiterhin, dass kein normaler Standby (S3) mehr durch das Zuklappen des Laptops möglich ist. Er geht danach nur noch in den Abwesenheitsmodus. Die einzige Abhilfe ist, den DVBViewer RecordingService kurz zu stoppen und wieder zu starten. Dann klappt auch S3 (z.B. durch Zuklappen) wieder einwandfrei. Offenbar blockiert der RecordingService den S3-Zustand permanent, wenn man ihn nicht stoppt.

 

Ich würde mich sehr freuen, wenn dieser Fehler behoben werden könnte. In den Vorgängerversionen hatte der Standby (S3) zwar fast immer, aber auch nie zu 100% funktioniert, d.h. manchmal blieb das System ohne Grund im Abwesenheitsmodus, anstatt in den Standby zu gehen. Mich stört es sehr, wenn Geräte einfach weiterlaufen, ohne benutzt zu werden. Das Abschalten nach einer Aufnahme sollte einwandfrei funktionieren.

 

Thorsten

 

PS Ich möchte nicht EventGhost einsetzen, sondern würde mich freuen, wenn der RecordingService einfach in dieser Hinsicht fehlerfrei funktieren würde.

130211_support.zip

Link to comment

Wenn man sich das svcdebug.log anschaut (ab 11.02.13 13:15:00.361) sieht das eigentlich ok aus. Er geht in den suspend modus und wird dann irgendwann wieder geweckt durch den nutzer...

Link to comment

Hallo Lars,

 

falls mein Rechner korrekt in den Standbymodus gehen würde, würde ich ja überhaupt keinen Anlass haben, hier zu posten. Leider ist dem nicht so; es liegt definitiv ein Problem mit dem Abwesenheitsmodus/Standbymodus vor, welches durch den Recording Service (RS) beeinflusst wird. Ich würde mich freuen, wenn Du mir helfen könntest, das Problem in den Griff zu bekommen, da der RS nach Aufnahmen den normalen S3 nicht erreicht sondern den Rechner weiterlaufen läßt.

 

Hier wieder ein Beispiel einer Testaufnahme heute Nacht:

 

...

14.02.13 04:26:48.697 TUPnPAnnounce stop

14.02.13 04:26:48.728 ReleaseStandbyblock DoShutdown

14.02.13 04:26:48.728 SetThreadExecutionState 0x80000000

14.02.13 04:26:48.728 DoShutdown sdStandby

14.02.13 04:26:48.728 DoShutdown Exit

14.02.13 09:49:35.067 Powermessage Coming from Away...

...

 

Als ich den Rechner heute morgen aufgeklappt hatte, lief er aber immer noch. Laut Ereignisprotokoll kann ich um 04:26 kein Kernel-Power-Ereignis sehen; weder Abwesenheitsmodus noch S3-Modus. Der RS hat es nicht geschafft, den Rechner herunterzufahren.

 

Vielleicht könnten wir uns ja langsam irgendwie an das Problem herantasten. Hier eine reproduzierbare Vorgehensweise:

 

- jetztige Uhrzeit: 10:19 Uhr

- Programmierung einer Aufnahme via EPG ohne Vorlaufzeit auf 10:50

- Versuch, mit Hilfe der Sleep-Taste in den S3-Zustand zu gehen:

 

--> Ergebnis: Abwesenheitszustand anstatt S3

 

- Nachtrag: um 10:39 drücke ich wieder die Sleep-Taste, und jetzt geht er doch in S3.

 

 

Frage: Warum blockiert der RS zunächst den S3, und einige Zeit später geht es doch? Das gleiche passiert auch, wenn man einen Timer anlegt und kurze Zeit sofort wieder löscht. Auch hierbei ist zunächst S3 blockiert, und kurze Zeit später geht es doch wieder. Gibt es ein bestimmtes Updateintervall zwischen RS und dem Betriebssystem, welches der Energieverwaltung nur alle paar Minuten signalisiert, dass wieder S3 ok wäre?

Kann ich denn noch irgendetwas anderes ausprobieren, damit Du den Fehler identifizieren kannst?

 

 

Danke für Deine Hilfe,

 

Thorsten

Edited by thor.a
Link to comment
  • 7 months later...

Das Problem, dass der Rechner manchmal in den Abwesenheitsmodus statt in den Standby wechselt, besteht weiterhin (DVBViewer 5.2.7.0; Recording Service 1.26.0.0.).

 

Der o.g. Fehler ist bei mir (seit diversen Programmversionen) folgendermaßen reproduzierbar: (Windows 7 x64 Home)

 

- die Aufnahme wird direkt im DVBViewer programmiert (also nicht im Webinterface vom RecordingService), z.B. die bald beginnende Sendung, während man bereits TV schaut

- DVBViewer weiter laufen lassen, bis die Aufnahme beginnt

- während der laufenden Aufnahme wird der DVBViewer beendet

- Zuklappen vom Laptop (Aufnahme läuft noch weiter; Rechner schaltet sich nicht aus)

- Problem 1: nach Ende der Aufnahme schaltet der Rechner nicht in den Standby, sondern nur in den Abwesenheitsmodus

 

Mit diesem Problem(-chen) könnte ich sogar leben. Leider gibt es einen Folgefehler, sobald der o.g. Fehler einmal aufgetreten ist:

 

- Problem 2: Nachdem der Rechner in den Abwesenheitsmodus eingetreten ist, wird die nächste, über das Webinterface programmierte Aufnahme nicht mehr aufgenommen, bis der Recording Service manuell neu gestartet wird. Nach dem Neustart des Dienstes werden alle Folgeaufnahmen, die über das Webinterface einprogrammiert wurden, wieder korrekt aufgenommen (mit anschließendem korrekten Standby).

 

- Problem 3: Ohne einen manuellen Neustart vom Recording Service ist meistens der normale Standby-Modus des Rechners nicht mehr möglich. Ein Zuklappen des Rechners bewirkt nur den Abwesenheitsmodus. Nach dem Neustart des Recording Service funktioniert der Standby wieder ohne Probleme.

 

Angehängt noch der Auszug aus der svcdebug.log:

 

- 22.59 endet die im DVBViewer programmierte Aufnahme (Kraftwerk auf ARTE)

- Recording Service versucht ein Standby ...

14.09.13 23:00:07.235 TRecordingEngine DoShutdown sdStandby
14.09.13 23:00:07.236 TRecordingEngine DoShutdown Exit
... und scheitert: Rechner verbleibt im Abwesenheitsmodus, anstatt in den Standby zu gehen
- Aufnahme um 11:30 soll beginnen - aber klappt nicht
15.09.13 11:26:00.000 ThdProc Timer fired
15.09.13 11:26:00.000 Killtimer close thread
15.09.13 11:26:00.000 Killtimer thread closed
- Ich bemerke den Fehler um 11:57 und starte den Service manuell neu...
15.09.13 11:57:53.160 TRecordingEngine Powermessage Coming from Away...
15.09.13 11:58:04.823 SetStandbyblock webserver
15.09.13 11:58:04.823 SetThreadExecutionState 0x80000041
15.09.13 11:58:04.823 TRecordingEngine AddReference webserver: 1
15.09.13 11:58:28.703 TRecordingEngine StopService start stopping service#
... und die Aufnahme beginnt sofort zu laufen

 

Ich weiß, dass der RS Beta ist, aber ich würde mich trotzdem sehr freuen, wenn dieser Fehler behoben werden könnte.

 

Thorsten

 

 

 

 

auszug_svc_debug.log

Edited by thor.a
Link to comment

Das Problem könnte sein, dass der DVBViewer bei der Installtion eigenmächtigerweise den Away-Mode aktiviert. Also einfach mal in den Energie-Einstellungen den Abwesenheitsmodus wieder deaktivieren.

Link to comment
  • 4 months later...

Hallo, ich habe seit einigen Wochen genau das hier beschriebene Problem.

Was war damals die Lösung??

Viele Grüße

 

PS: EvenGhost würde ich auch gerne benutzen, dieser stürzt dann aber immer ab... Funktioniert er bei Dir???

Link to comment
  • 8 months later...

Hallo,

 

ich habe auch ein Problem mit dem Standby-Modus meines PC.

 

Meine Konfiguration:

Ich habe aktuell den RecordingService V1.30.0 auf meinem Server installiert. Den DVBViewer habe ich auf einem HTPC.

Eigentlich läuft alles gut. Der Server fährt auch nach einer Aufnahme in den Standby.

 

Es gab jedoch noch einen Punkt der mir nicht gefiel:

Es gibt bei mir Aufnahmen (alles über den RecordingService) die z.B. täglich bis um 22:30 laufen. Danach fahre ich den Server in den Standby.

Wenn ich nun aber ausnahmsweise mit dem HTPC streame (über XMBC) schaltete der Server mit dem RecordingService gnadenlos in den Standby (ist ja auch so programmiert).

 

So habe ich das Problem gelöst:

Der Recording fährt ab sofort nach der Aufnahme nicht mehr in den Standby. Damit geht der Server über den Recording Service nicht mehr in den Standby.

Damit der Server trotzdem vollautomatisch in den Standby geht, habe ich mir mit AutoIt ein Script geschrieben, das ab 22:15 bis 1:15 alle 30 min gestartet wird.

Das Script prüft (mit PING) ob der HTPC oder ein anderer Client an ist. Wenn ein Client an ist, wird nichts gemacht. Ansonsten wird in den Standby gefahren.

 

Nun gibt es zwei Fälle:

Fall A: Der RecordingService führt keine Aufnahme durch

Beispiel:

Ich schaue mit XBMC von 21:00 bis 22:40 einen Film an. Um 22:15 wird geprüft, ob der HTPC an ist. Das der HTPC an ist, wird das Script ohne Aktion beendet.

Der HTPC wird nun um 22:40 ausgeschaltet. Um 22:45 prüft das AutoIt-Script ob noch ein Client an ist.

Da alle aus sind fährt das Script den Server in den Standby. Soweit so gut. Mein Server schaltet sich also vollautomatisch aus.

 

 

Fall B: Der Recording Service führt eine Aufnahme durch

Das Beispiel soll wie bei Fall A) sein. Der RS ist jedoch so programmiert, dass eine Aufnahme bis 23:00 läuft. Um 22:45 prüft das AutoIt-Script ob noch ein Client an ist. Da alle Clients aus sind wird der Standby-Befehl abgesetzt. Der Standbybefehl wird jetzt allerdings vom RS abgefangen wird. Eigentlich genial - aber jetzt gibt es ein Problem.

 

Der Server läuft die ganze Nacht durch!

 

Kurios: Das AutoIt-Script wird auch um 23:15, 23:45, 00:15, 00:45 und 01:15 gestartet. Jedesmal wird ein Standby-Befehl abgesetzt der nicht ausgeführt oder vom RS abgefangen wird.

Testweise habe ich auch in der "23:00"-Aufnahme einen "Standby nach Aufnahme" im RS gesetzt. Doch auch dieser wird nicht mehr ausgeführt.

 

Ich bin am verzweifeln. Durch Recherchen habe ich einen Verdacht, den ich nun hier im Forum weiter diskutieren möchte.

 

Verdacht und Fehlerdiagnose:

Es liegt wohl an dem Abwesenheitsmodus. Dieser soll ja ermöglichen, dass eine Aufnahme trotz einem Standby-Befehl ausgeführt wird. Das passiert ja auch in meinem Fall.

Um 22:45 wird ein Standby-Befehl gesendet und bis 23:00 läuft die Aufnahme. Also geht der Rechner in den Abwesenheitsmodus. Die Aufnahme läuft weiter. Um 23:15 kommt der nächste Standby-Befehl. Dieser wird aber nicht ausgeführt!

Es scheint so, dass wenn sich der PC im Abwesendheitsmodus befindet alle weiteren Standby-Befehle ins Nirwana. Dies könnte damit auch die Ursache der im Forum weiter oben beschriebenen Probleme sein.

 

Die Frage ist nun: Wie kann ich einen Standby erzwingen wenn sich der PC bereits im Abwesenheitsmodus befindet?

 

Unklar ist auch warum ein programmierter Standby im RS (Standby nach Aufnahme) ins Leere läuft. Dieser müsste doch in jedem Fall in einen korrekten Standby gehen!

 

Auch dürfte der RS den Standby nur solange blockieren, wie die Aufnahme läuft. Es scheint aber so, dass (vielleicht ist das ein Bug im RS) dieser alle weiteren Standby-Befehle blockiert (bzw. "nur" in den Abwesenheitsmodus schickt).

Edited by Polarfox
Link to comment
Die Frage ist nun: Wie kann ich einen Standby erzwingen wenn sich der PC bereits im Abwesenheitsmodus befindet?

 

Ich fürchte, gar nicht. Wir haben das schon mal untersucht. Es ist tatsächlich so, dass Windows im Abwesenheitsmodus nicht in Standby herunterfahren will. Das liegt nicht am RS. Der Aufruf von SetSuspendState, der StandBy ("Energie sparen") auslösen soll, kehrt sofort ohne Fehlercode zurück. Windows signalisiert damit, dass bereits (eine Art) Standby aktiv ist, und meint, es wäre alles in bester Ordnung. Wie es aussieht, kann allein eine Benutzer-Interaktion den Abwesenheitsmodus beenden, wenn er erst mal aktiv ist <edit> (oder der Idle Timeout, siehe Tjods Post unten) </edit>. Es ist keine Möglichkeit bekannt, das programmgesteuert auszuführen.

 

Was jedoch im Abwesenheitsmodus funktioniert, ist ein Herunterfahren in den Ruhemodus. Den kann allerdings kein Programm aufhalten, d.h. er wird auch eine Aufnahme im RS gnadenlos abbrechen.

 

Zu erwägen wäre eventuell, die Konstruktion mit dem Skript aufzugeben und diesem Vorschlag zu folgen, der mir für einen Mischbetrieb des RS als Server und Aufnehmer :) passend erscheint.

Edited by Griga
Ergänzung
Link to comment

ok, erst mal vielen Dank für die schnelle Antwort und die Infos ... und den neuen Ansatz alles über die Windows Energiespareinstellung nach x Minuten zu regeln.

 

Wird eine Aufnahmeaktion (Aufnahme über den RS) von Windows tatsächlich als "Aktion" erkannt, so dass vorerst kein Standby (von Windows aus) ausgeführt wird?

 

Wäre eigentlich ganz einfach. :thumbsup: Erst nach der eingestellten Zeit würde dann ein Standby ausgeführt werden.

Link to comment
Wird eine Aufnahmeaktion (Aufnahme über den RS) von Windows tatsächlich als "Aktion" erkannt, so dass vorerst kein Standby (von Windows aus) ausgeführt wird?

 

Der RS setzt für seinen Prozess je nach aktuellem Bedarf durch Aufnahmen oder verbundene Clients zwei Flags, die Windows berücksichtigt:

 

ES_SYSTEM_REQUIRED: Laufendes System erforderlich. Hindert Windows daran, aufgrund des Idle Timeout (= ausbleibende Benutzer-Interaktion über einen in den Energie-Einstellungen konfigurierten Zeitraum) herunterzufahren, in welchen Zustand auch immer.

 

ES_AWAYMODE_REQUIRED: Abwesenheitsmodus erforderlich. Veranlasst Windows, "Energie sparen" durch den Benutzer oder andere Programme in den Abwesenheitsmodus umzubiegen.

 

Das funktioniert im allgemeinen. zuverlässig, wie du anhand des Abwesenheitsmodus bereits erfahren hast :) Beachte dabei, dass auch ein Browser, der dir das Web Interface des RS anzeigt, als "verbundener Client" zählt. Teilweise lässt sich das Verhalten in den RS Optionen konfigurieren - schaue dich da mal um (Service, Web/UPnP, DVB Server, RTSP Server).

Link to comment

ok, verstehe.

 

Und warum funktioniert dann die eingestellte Aktion "Standby nach Aufnahme" (bei der Aufnahme bis 23:00 in meinem Beispielfall oben) im RS nicht wenn der PC bereits im Abwesendheitsmodus ist? Die läuft ja wohl dann auch irgendwie ins Leere.

 

Ist ja in meinem Beispielfall so. Das müsste doch funktionieren!?

Edited by Polarfox
Link to comment

Also dann geht das einfach nicht. Man könnte ja sonst auch keinen Standby mehr "abfangen". Dazu wird der Abwesenheitsmodus ja benutzt. Die Aufnahme soll ja beendet werden.

 

Mit der Standardwindowslösung (Zeit für Energiesparmodus direkt in den Energieoptionen nach x Minuten einstellen) hatte ich schon meine Schwierigkeiten. Oft laufen Aufgaben (Kopieren, RAID-Wartung, Virenscan..) die von Windows als "Leerlauf" angesehen werden. Die Folge ist dann, dass der PC trotz "Arbeit" in den Standby gefahren wird.

 

Also habe ich mir 2 andere Konzepte überlegt:

 

 

Konzept1: In das AutoIt-Script eine Abfrage einbauen, ob RS gerade aufnimmt.

Das oben genannte Problem entsteht ja dadurch, dass der RS aufnimmt und mein Script einen Standby-Befehl gibt. Die Folge ist der Abwesenheitsmodus in der das Script durch weitere Standby-Befehle ins Leere läuft. Dies macht ja bei einer (längeren) Aufnahme auch Sinn, da diese auch abgeschlossen werden soll!

Das Script sollte also nur einen Standby-Befehl wenn keine Aufnahme läuft und keine demnächst ansteht.

In diesen zwei Fällen setzt meines Wissens der RS das Systemflag ES_SYSTEM_REQUIRED und das System geht dann bei Standby in den Abwesenheitsmodus. Habe ich das richtig erklärt bzw. verstanden?

Kann mir jemand sagen, wie ich abfragen könnte, ob eine Aufnahme im RS läuft oder demnächst ansteht? Oder wie kann ich das Systemflag ES_SYSTEM_REQUIRED abfragen?

Diese Abfrage könnte ich dann in das Script einbauen und der Standby-Befehl wird nur dann abgesetzt, wenn das Flag nicht gesetzt ist. Somit wird das System durch das Script nie in den Abwesenheitsmodus gefahren sondern gleich in den Standby. Könnte gehen!

 

Konzept2: Das Script holt den PC aus dem Abwesenheitsmodus

Ein anderer Ansatz wäre, dass das Script vor dem Standby-Befehl den PC aus dem Abwesenheitsmodus holt. Dies könnte z.B. durch eine simulierte Mausbewegung oder simulierten Tastendruck erfolgen.

Der PC müsste dann auf jeden Fall wieder "richtig" Aufwachen. Wenn dann das Script einen Standby-Befehl gibt es 2 Fälle:

Fall1: RS nimmt nicht auf --> Standby wird ausgeführt und das System geht in den Standby

Fall2: RS nimmt auf --> Standby wird durch den RS abgefangen und der PC geht wieder in den Abwesenheitsmodus.

30 Minuten später wird dann der nächste Versuch unternommen. Somit hätte ich das Problem auch gelöst.

Ich müsste in das Script also - im einfachsten Fall - nur noch einen Tastendruck simulieren (z.B. 1xSHIFT) und vielleicht noch kurz warten dass das System wieder im Normalzustand ist.

Könnte das Funktionieren?

 

Wie gesagt, bisher sind das nur Konzepte. Was haltet Ihr davon?

Edited by Polarfox
Link to comment

Du kannst dir per Skript die status.xml per webAPI holen und so nachschauen ob gerade eine Aufnahme aktiv ist.

http://en.DVBViewer.tv/wiki/Recording_Service_API

Per Skript (auch autoit): http://www.DVBViewer.tv/forum/topic/51926-processtasksex/

 

Wieso du die "Flags" mitkriegen willst verstehe ich jetzt nicht so ganz.

Bin gar nicht sicher ob die ein externes Programm direkt mitkriegen kann.

Wenn würde ich mal die "WM_POWERBROADCAST" Nachrichten untersuchen.

Link to comment

Ich wuerd ein paar Euro für Lights out ausgeben :P

Ich habe mir Lights out heute mal angeschaut. Sieht sehr komfortabel aus.

Damit könnte ich auch meine Clients im Netz abfragen.

 

Aber wie gehe ich mit dem RS um?

Mit welcher Methode überwache ich den RS? Sollte ich den überhaupt überwachen, das der RS ja den Standby abfängt?

Aber dann bin ja im Abwesenheitsmodus angelangt. Und hier kann man ja nicht in den Standby fahren. Oder kann das Lights out?

Link to comment

ok. Nur ein manueller Standby - ich schalte den PC auch oft über die Standby-Taste auf der Tastatur in den Standby - würde dann eine Aufnahme killen (beenden).

Das wäre dann nicht abgefangen. Richtig?

Link to comment

Also wenn es keine dedicaded Server ist würde ich dann suspendghost empfehlen, das ist mehr auf den DVBViewer zugeschnitten und funktioniert auch herrvorragend

Link to comment

Also was ihr so alles auf Lager habt ... geil.

 

@azeman: Habe es mir gerade angeschaut ... sieht auch sehr gut aus. Vielleicht nicht so umfangreich wie Lights-Out aber kostenlos. WOW!

 

@VinoRosso: suspendghost: Auch für den RS geeignet?

Link to comment

Suspendghost kann auch für den recording service konfiguriert werden. Der einzige Nachteil ist, dass man das nicht als Dienst verwenden kann, also muss die automatische Anmeldung aktiviert sein

 

Edited by VinoRosso
Link to comment

 

Konzept2: Das Script holt den PC aus dem Abwesenheitsmodus

Ein anderer Ansatz wäre, dass das Script vor dem Standby-Befehl den PC aus dem Abwesenheitsmodus holt. Dies könnte z.B. durch eine simulierte Mausbewegung oder simulierten Tastendruck erfolgen.

 

Ich habe gestern in mein vorhandenes Standbyscript (AutoIt) vor dem Standby-Befehl eine simulierte Mausbewegung (Verschiebung um 10 Pixel) eingebaut.

Jetzt scheint alles zu funktionieren! Kleine Ursache große Wirkung!

 

Durch die Mausbewegung im Script wird tatsächlich der Abweseheitsmodus verlassen. Dadurch kann der Standby ausgeführt werden. Sollte der RS aufnehmen geht der PC eben wieder in den Abwesenheitsmodus ansonsten in den Standby.

Das Script wird über eine Timersteuerung aufgerufen.

Link to comment

 

 

 

Also meiner Meinung nach ist das doch ein Bug im DVBViewer Recording Service (meine ich als konstruktive Kritik).

 

Ich hatte ja bereits weiter oben beschrieben, dass wenn der PC im Abwesenheitsmodus ist und im RS nach der Aufnahme die Aktion "Standby nach Aufnahme" eingestellt, der PC trotzdem an bleibt (im Abwesenheitsmodus). Das sollte eigentlich nicht sein. Standby sollte Standby und nicht Abwesendheitsmodus sein!

 

Besser wäre doch der RS könnte sich nach einer Aufnahme auch aus dem Abwesenheitsmodus in den vollen Standby schalten.

Das wäre möglich, wenn der RS den PC aktivieren würde (funktioniert in meinem Script ja auch) und dann den Standby absetzt. Dann geht der PC auch in den Standby (wenn nicht aufgenommen wird) oder wenn noch eine Aufnahme ansteht eben wieder in den Abwesendheitsmodus.

 

Wäre doch eine perfekte Umsetzung, weil dann alles funktioniert.

 

Ich glaube ja sowieso, dass der Abwesenheitsmodus (eigentlich eine geniale Sache und man braucht ihn ja um die Aufnahme nicht abzuwürgen) Ursache für viele Probleme ist (oft gehen ja die Rechner mehr aus) mit dem Standby ist.

 

Übrigens: Ob und wann der PC in den Abwesenheitsmodus wechselte lässt sich im Ereignisprotokoll von Windows sehen.

1) "WIN+R" --> "Ereginsanzeige"

2) "Benutzerdefinierte Ansicht erstellen" --> bei Protokolle "System" und bei Quellen "Kernel-Power" eingeben

3) Namen für die Ansicht eingeben

--> Nun hat man eine Ansicht, in der alle Standby- (ID=42) und alle Abwesenheitsmodusereignisse (AWAY-Mode) (ID=59) drin stehen. Zum Debugging eine gute Sache.

Link to comment

Also ein Bug ist imho nicht.

Was du möchtest ist eine Sonderbehandlung für die Aktion "Standby" und das ist wohl eher als Featurerequest zu sehen. ;)

Ich mag solche Sonderbehandlungen eigentlich nicht so sehr. Das ist eine Pseudo-Intelligenz, die zu unterschiedlichen Ergebnissen führt.

z.B.

1. RS eigene Aufgabe Standby => aus dem Abwesenheitsmodus holen => standby wird ausgeführt

2. Custom Skript Aufgabe (soll einfach den standby ausführen) => PC wird nicht aus dem Abweseneheitsmodus geholt => standby funktioniert nicht

 

Worüber man vielleicht nachdenken könnte: Den PC immer aus dem Abwesenheitsmodus holen, wenn eine Aufgabe nach einer Aufnahme ausgeführt werden soll?

Macht das Sinn? Meinungen dazu?

Link to comment

Ich denke es wäre gut wenn alle nach Aufnahme Aktionen, also Ruhezustand, Energie sparen und Herunterfahren auch klappen würden wenn der PC zu dem Zeitpunkt im Abwesendheitsmodus ist.

 

Das heißt wenn das nötig ist wäre es gut wenn der RS und auch der DVBViewer den PC wenn notwendig vorher aus dem Abwesendheitsmodus kurz aufwecken.

 

Und das sollte auch beim aufrufen der drei Aufgaben über das Webinterface gelten.

 

Eine Sonderbehandlung für Skripte die versuchen den Standby selber zu regeln halte ich nicht für notwendig. Die können entweder die Funktionalität im Webinterface nutzen.

 

Oder wenn sie direkt Windows Funktionen nutzen. Dann müssen sie auch mit dem Standard Windows Verhalten umgehen können. Und selber das verlassen des Abwesendheitsmodus veranlassen.

 

Außerdem sollte der RS versuchen sich nicht selber zu sabotierten. Das heißt wenn der RS versucht den Standby für UPnP Clients zu verhindern. Sollte er nicht selber den Ruhezustand nach einer Aufnahme anstoßen. Den er nicht Blockieren kann (ich habe jetzt nicht getestet ob das wirklich noch aktuell ist).

 

Ein Problem dabei ist aber das Webinterface. Das ja auch den Standby Blockieren kann. Das sollte aber nicht passieren wenn der Nutzer über das Webinterface den Ruhezustand auslösen möchte. Das müsste man in dem Fall also ausnehmen.

 

Das sind meine gedankten zu dem Thema. Ob und wann sich so was umsetzen lässt ist eine andere frage.

Link to comment

Wie es aussieht, kann allein eine Benutzer-Interaktion den Abwesenheitsmodus beenden, wenn er erst mal aktiv ist <edit> (oder der Idle Timeout, siehe Tjods Post unten) </edit>. Es ist keine Möglichkeit bekannt, das programmgesteuert auszuführen.

 

Was jedoch im Abwesenheitsmodus funktioniert, ist ein Herunterfahren in den Ruhemodus. Den kann allerdings kein Programm aufhalten, d.h. er wird auch eine Aufnahme im RS gnadenlos abbrechen.

Hm Griga hat zum Abwesenheitsmodus ja schon etwas geschrieben. Dann wirds schwierig ...
Link to comment

...

Worüber man vielleicht nachdenken könnte: Den PC immer aus dem Abwesenheitsmodus holen, wenn eine Aufgabe nach einer Aufnahme ausgeführt werden soll?

Macht das Sinn? Meinungen dazu?

 

So habe ich das auch gemeint. Ich würde natürlich dem RS weiterhin die volle Kontrolle überlassen.

Es wäre ja dann so, dass eine Aktion "Standby nach der Aufnahme" von RS gestartet wird und vom System auch als richtiger Standby akzeptiert wird. Dann geht die Kiste auch in den richtigen Standby.

 

Es muss ja irgendwie das Windowssystem ausgetrickst werden. Windows behandelt den Abwesendheitsmodus ja als "Quasi-Standby-Modus" und sagt dann bei einer weiteren Standby-Anforderung - "Hallo was willst Du. Im Standby bin ich ja schon und mache deshalb nichts mehr". Deswegen frisst dann die Kiste weiterhin Strom weil Windows den PC eben nicht richtig in den Standby fährt....

Link to comment

Kannst ja mal recherchieren wie sich das Windowssystem austricksen lässt. Es scheint keine Möglichkeit bekannt zu sein und ich habe auf die schnelle auch nichts gefunden.

 

Ich glaube Hacks wie "Mousemove" um eine Benutzeraktion vorzutäuschen werden eher nicht eingebaut. Das kann auch ungewünschte Nebeneffekte haben und würde ich an Griga's Stelle den Skripten überlassen.

Link to comment

Ich glaube Hacks wie "Mousemove" um eine Benutzeraktion vorzutäuschen werden eher nicht eingebaut. Das kann auch ungewünschte Nebeneffekte haben und würde ich an Griga's Stelle den Skripten überlassen.

Sowas ist für einen Windows Service meines wissens nach auch nicht möglich, kann also im RS sowieso nicht umgesetzt werden.

Link to comment

Sowas ist für einen Windows Service meines wissens nach auch nicht möglich, kann also im RS sowieso nicht umgesetzt werden.

 

Scheint so zu sein. Ich habe mal die Mausbewegung und einen Standbybefehl in ein Script gepackt und compiliert. Diese EXE habe ich im RS nach der Aufnahme ausführen lassen.

Der RS kam durch die Mausbewegung nicht aus dem Abwesenheitsmodus ... somit hat natürlich auch der Standby nicht funktioniert.

 

Es ist also mit diesem Trick - der ja in einem externen Script funktioniert - nicht möglich den PC über RS-Dienst aus den Abwesenheitsmodus zu bekommen.

Edited by Polarfox
Link to comment
Sowas ist für einen Windows Service meines wissens nach auch nicht möglich, kann also im RS sowieso nicht umgesetzt werden.

 

Es gibt beim RS 1.30 neuerdings die (versteckte) Möglichkeit, Tasks im Kontext des aktiven Benutzerkontos auszuführen, also z.B. den DVBViewer mit sicht- und bedienbarem UI zu starten. Das ist allerdings nichts für Anfänger, weil dazu in einem sensiblen Bereich der Registry eingegriffen werden muss, um dem RS zusätzliche Privilegien zu geben, von denen ich nicht genau weiß, inwieweit sie Auswirkungen auf die Systemsicherheit haben. Deshalb wurde das nicht an die große Glocke gehängt. Bei dringendem Bedarf kann ich das jedoch für erfahrene Anwender dokumentieren, die wissen, was sie tun und die die damit verbundenen Risiken einschätzen können.

Link to comment

Ich wuerd ein paar Euro für Lights out ausgeben :P

 

Also ich habe Lights-Out mal in der Testversion heruntergeladen und soeben installiert.

 

Ich bin jedoch schon am einfachsten Fall gescheitert:

 

Aufgabe: Standby nach 5 Minuten Inaktivität

Ich habe die Aktion Standby nach 5 Minuten ich in den Light-Out Einstellungen eingeben und dann am PC weitergearbeitet.

Nach 5 Minuten ging der PC in den Standby. Ist ja eigentlich ok, aber ich habe am PC gearbeitet (war im Browser unterwegs)!!!

 

Ok ... kurze Recherche ... achso die Überwachung der Konsolensitzung muss ich aktivieren. Habe ich gemacht.

Nun geht der PC nicht mehr aus. Auch nach 5 Minuten Inaktivität. Lt. Beschreibung muss man abgemeldet sein. Was ich muss mich abmelden?

 

Mache ich da etwas falsch. Gibt es da noch einen Trick? Ansonsten verstehe ich die Logik nicht. Der Standby soll ja aktiv werden, wenn man PC 5 Minuten lang nichts macht. Ansonsten wäre die Software für mich unbrauchbar.

Der weitere Ansatz mit den überwachten Quellen ist ja toll, aber wenn ein einfacher Standardfall nicht funktioniert ... das gehen ja einem die Lichter aus :glare: .

Edited by Polarfox
Link to comment

Hallo Griga,

 

 

Der RS setzt für seinen Prozess je nach aktuellem Bedarf durch Aufnahmen oder verbundene Clients zwei Flags, die Windows berücksichtigt:

 

ES_SYSTEM_REQUIRED: Laufendes System erforderlich. Hindert Windows daran, aufgrund des Idle Timeout (= ausbleibende Benutzer-Interaktion über einen in den Energie-Einstellungen konfigurierten Zeitraum) herunterzufahren, in welchen Zustand auch immer.

 

ES_AWAYMODE_REQUIRED: Abwesenheitsmodus erforderlich. Veranlasst Windows, "Energie sparen" durch den Benutzer oder andere Programme in den Abwesenheitsmodus umzubiegen.

 

Das funktioniert im allgemeinen. zuverlässig, wie du anhand des Abwesenheitsmodus bereits erfahren hast :) Beachte dabei, dass auch ein Browser, der dir das Web Interface des RS anzeigt, als "verbundener Client" zählt. Teilweise lässt sich das Verhalten in den RS Optionen konfigurieren - schaue dich da mal um (Service, Web/UPnP, DVB Server, RTSP Server).

 

danke für die Erläuterung. Bei mir wird das Flag für den Abwesenheitsmodus jedoch auch gesetzt, wenn es überhaupt nicht notwendig ist.

 

Konkret: RS läuft auf einem Laptop, und es ist eine Aufnahme gestartet. Es gibt keine weiteren Verbindungen zum RS, d.h. keinen DVBViewer und auch kein offenes Webinterfaces bzw. Streaming. RS läuft still und leise im Hintergrund.

 

Wenn ich jetzt den Laptop zuklappe, bleibt der Rechner an und führt weiter die Aufnahme durch. Ich bin bislang davon ausgegangen, dass in einem solchen Fall das Flag "ES_SYSTEM_REQUIRED" benutzt wird. Dem ist jedoch nicht so - der Laptop geht laut Ereignisprotokoll in den Abwesenheitsmodus. Dieser führt zu dem im Thread beschriebenen Problem: Der Laptop bleibt die ganze Nacht (und ggf. länger) angeschaltet und verbraucht unnötig Strom, weil ein S3-Befehl im Abwesenheitsmodus scheitert.

 

Ich halte es für einen Bug, dass der RS hier den Abwesenheitsmodus triggert, anstatt einfach das System am Laufen zu halten. Oder geht das einfach nicht anders?

 

Thorsten

Link to comment
Ich halte es für einen Bug, dass der RS hier den Abwesenheitsmodus triggert,

 

Der RS "triggert" nicht den Abwesenheitsmodus. Er setzt bereits beim Start der Aufnahme prophylaktisch ein Flag, das Windows veranlasst, "Energie sparen" durch den Anwender oder ein anderes Programm in den Abwesenheitsmodus umzubiegen.

 

Würde der RS das Flag ES_AWAYMODE_REQUIRED nicht setzen, würde Windows in dem Moment, wo du den Laptop zuklappst, das System unaufhaltsam in den Eneriesparmodus (Standby) herunterfahren und damit die Aufnahme abbrechen.

 

Ich bin bislang davon ausgegangen, dass in einem solchen Fall das Flag "ES_SYSTEM_REQUIRED" benutzt wird.

 

ES_SYSTEM_REQUIRED bezieht sich nur auf den Idle Timeout, also ausbleibende Benutzeraktivität und daraus resultierendes automatisches Herunterfahren in was auch immer nach einer in den Energie-Einstellungen konfigurierten Zeit. Das Flag verhindert, dass Windows den Laptop ohne dein Eingreifen nach X Minuten abschaltet. Wenn du den Deckel zuklappst, greifst du aber ein. Vielleicht solltest du es einfach lassen :)

 

Seit Windows Vista hat Microsoft Anwendungen die Steuerung solcher Vorgänge weitgehend aus der Hand genommen. Die Beantragung des Abwesenheitsmodus durch ES_AWAYMODE_REQUIRED ist die einzige Möglichkeit für Anwendungen, "Energie sparen" durch Anwender oder andere Programme zu unterbinden. Das Herunterfahren in den Ruhezustand lässt sich überhaupt nicht mehr aufhalten. Unter XP konnten Anwendungen Standby und Ruhezustand noch ablehnen bzw. verschieben, indem sie es eine Weile später selbst auslösten. Den Abwesenheitsmodus gab es nicht. Seit Vista ist diese Vorgehensweise nicht mehr möglich.

 

Seht also zu, dass ihr eine Windows XP Installations-CD auftreibt, und alles wird gut :)

Link to comment

Das Flag ES_AWAYMODE_REQUIRED wird also vom RS bei einer Aufnahme gesetzt.

Somit wird der Standbymodus vermieden und der Abwesenheitsmodus bei einem Standby-Kommando erreicht. Gut.

 

Wird dann nach der Aufnahme dieses Flag ES_AWAYMODE_REQUIRED durch den RS gelöscht ?

Edited by Polarfox
Link to comment

Das Flag wird nicht nur bei aufnahmen gesetzt sondern auch wenn Clients auf den RS zugreifen.

Das kannst du aber für verschiedene Clients (UPnP, Webinterface [30 Sek. Timout], DVBServer und RTSP-Server [nur für Clients auf dem PC deaktivierbar]) in den Optionen Abschalten.

 

Dass heißt bei Tests am besten sicherstellen das recordcount und clientcount 0 sind.

http://127.0.0.1:8089/api/status.html

(Webinterface aufrufe von URLs ohne /api/ drin lösen Standardmäßig auch ein 30 Sek. Blockieren vom Standby aus)

Link to comment
×
×
  • Create New...