Jump to content

SuspendGhost: Steuerung von Standby / Ruhezustand mit EventGhost


mrphlox

Recommended Posts

 

ganz ehrlich, hat nichts mit Deinem Skript zu tun, aber soviel Rumgefrickel und Workarounds und sporadische Effekte habe ich in 20 Jahren Unix und Linux noch nicht mal im Ansatz gehabt ;-(

Naja mit dem DVBViewer aber auch nicht ... :whistle:

Wie wird denn EG genau beendet bzw. wieder neu gestartet nach dem Resume?

Bei mir funktioniert das grundsätzlich. EG vor dem Standby zu beenden und anschließend neu zu starten hat sich bei mir auch als sicherer erwiesen.

Link to comment

beenden mit kill via PrcView, weil's oftmals hängt und sich nicht normal beenden läßt:

 

@Echo Off

set ProgRoot=%ProgramFiles%
if not "%ProgramFiles(x86)%" == "" set ProgRoot=%ProgramFiles(x86)%

rem # kill EventGhost
"%ProgRoot%\PrcView\pv.exe" -kf EventGhost.exe

rem # start EventGhost
"C:\Program Files\nircmd\nircmd.exe" exec2 hide "%ProgRoot%\EventGhost" "%ProgRoot%\EventGhost\EventGhost.exe" -hide -file "%APPDATA%\EventGhost\SuspendGhost-Config.xml"

Link to comment

Ob das gesund ist?

EG kann sich selbst mit diesem Pythonskript (EG intern hinzufügen) beenden:

wx.CallAfter(eg.app.Exit)

Edited by nuts
Link to comment

naja, gesund hin oder her (wobei ich unter Linux immer mit -9 kille ;), wenn EG hängt, dann hängt es und beendet sich auch nicht selbst, habe ich bereits xfach probiert. Die einzige Lösung, damit EG beendet wird, ist ein forcierter Kill.

Link to comment

Ja klar - wenn EG erstmal hängt nützt das alles nichts, aber eigentlich versucht man ja zu vermeiden, dass sich Programme aufhängen. ;)

 

EG selbst hängt sich bei mir eigentlich nie auf. Zumindest wenn alles vor dem Standby sauber beendet und anschließend neu gestartet wird.

Meist ziehen diverse Plugins EG mit in den Abgrund.

z.B. wenn der DVBViewer crasht und ein Befehl vom EG-DVBV-Plugin soll abgesetzt werden => EG crasht auch.

Dort würde ich mal ansetzten.

Link to comment

- manchmal geht der Rechner anstatt in den Standby in den Ruhezustand, wobei ich mir _NICHT_ erklären kann wieso das manchmal Ruhezustand ist. Laut EG Log ist es nach wie vor, wie immer, Standby.

 

- wenn das System im Ruhezustand ist und man das System wieder einschalten will, dann fährt der Rechner kurz an, geht direkt wieder aus, und das in einer Endlosschleife bis man das System stromlos macht, dann wieder steckt, dann fährt das System wieder erfolgreich hoch mit "Windows wird fortgesetzt", wobei wie gesagt, _EIGENTLICH_ Standby definiert ist, funktionieren soll und muß, was ich laut Config auch so eingestellt habe. Es ist mir ein Rätsel.

Weiss ich auch nicht. Könnte eine verbockte EG-Config sein. => Leg deine Config mal beiseite, nimm die originale, und ändere (abgesehen von der Plugin-Konfiguration) nichts, solange sie auf deinem System nicht sauber läuft. Es ist wesentlich einfacher, eine funktionstüchtige Config anzupassen als umgekehrt. Die Config, die ich hier poste, läuft auf anderen Systemen stabil (sonst würde ich sie nicht ins Forum stellen :)). Auf meinem eigenen HTPC nunmehr seit einem Jahr.

 

- oftmals funktioniert nach einiger Zeit TV schauen die Power Taste der FB nicht. Das Signal kommt beim EG an (iMON.Power) und mehr nicht.

Siehst du das Systray Icon von EG permanent (oder ist es augeblendet)? Das Systray Icon wird während der Event-Ausführung rot, im Wartezustand gelb, das kann u.U. für die Fehlersuche ein wichtiger Hinweis sein. Hat dein Celeron PC Saft? (...rethorische Frage ;)) Die Abfrage, wann die nächste Aufnahme startet, dauert auch auf meinem (ebenfalls nicht sehr starken) PC manchmal ein paar Sekunden, halt abhängig davon, wie viele Aufnahmen programmiert sind und was der PC sonst noch macht.

 

- manchmal funktioniert nach 1x Standby/Resume das ganze EventGhost nicht mehr, drum hab' ich mich entschieden, daß nach einem Resume neu starten zu lassen,

Das AutoIt-Script 'RestartBgndApps.au3', welches der Config beiliegt, ist genau für diesen Zweck gedacht und kann EG auch mit minimiertem Fenster starten. Bei mir funktionerts (allerdings verhält sich das erste Mal Fenster maximieren etwas komisch, damit kann ich leben).

 

ganz ehrlich, hat nichts mit Deinem Skript zu tun,

das will ich auch hoffen

Link to comment

ich wollte mal ausprobieren was passiert, wenn das Countdown OSD auftaucht, daß man mit beliebiger Taste abbrechen kann. Es passiert leider gar nichts. Der Countdown zählt brav weiter runter und wenn er fertig ist macht er z.B. einen Standby. Es scheint so, als ob es ein Bug im EG ist, zumindest scheint ein anderer User ebenso das Problem zu haben: CancelOSDCountDown funktioniert nicht

Link to comment

was geschieht, wenn du die Kreuztaste auf der FB drückst? Bleibt der Countdown auch dann noch stehen?

 

...und siehst du irgend welche iMON Events im Logpanel von EG?

Edited by mrphlox
Link to comment

aah, beim Steuerkreuz nicht, dann beendet sich der Countdown sofort. Als Event kommt iMON.left right oder was auch immer ich da "bewegt" habe.

 

Wäre nie auf die Idee gekommen das Steuerkreuz dafür zu nutzen. Habe immer Enter oder ESC oder sowas gedrückt.

Link to comment

nein, ich hab's in der Zwischenzeit rausgefunden: NumberOfActiveClients wird vom Recording Service verwaltet. Die Variable wird hochgezählt

a) wenn DVBViewer via Unicast Network Device live TV anzeigt

B) wenn man über den Browser das Web-Interface des RS bedient (Timeline, TV-Guide etc.)

c) wenn man via RS streamt

Die Aktualisierung der Variable kommt im EG i.d.R. etwa 1 Minute verzögert.

eine Idee was hier falsch läuft?

 

das System macht nichts, es ist einfach nur an, keiner ist verbunden, nichts läuft, es stehen keine Aufnahmen bevor und auch sonst nichts was einen Auto-Standby verhindern würde, dennoch ist das System seit 16:51 Uhr in Betrieb und macht keinerlei Anstalten in den Standby zu gehen. Irgendeinen Tip evtl.? :)

 

2012-01-16 16:51:55  EVENT: DVBViewerService.NoClientActive
2012-01-16 16:51:55     MACRO: OnDvbvAllStreamsFinished
2012-01-16 16:51:55        ACTION: Enable Suspend: Streaming finished
2012-01-16 16:51:55        ACTION: eg.globals.dvbvIsStreaming  = False
2012-01-16 16:52:30  EVENT: System.Idle
2012-01-16 16:52:30     MACRO: OnSystemIdle: Enable Suspend
2012-01-16 16:52:30        ACTION: eg.globals.systemIsIdle = True
2012-01-16 16:52:30           2012-01-16 16:52:30.850000 eg.globals.systemIsIdle = True
2012-01-16 16:52:30        ACTION: Standby Control: Enable Suspend by application: SystemIdle
2012-01-16 16:52:55  EVENT: DVBViewer.DVBViewerEventHandlingNotAlive
2012-01-16 16:53:58  EVENT: DVBViewer.DVBViewerEventHandlingNotAlive
2012-01-16 16:55:00  EVENT: DVBViewer.DVBViewerEventHandlingNotAlive
2012-01-16 16:56:02  EVENT: DVBViewer.DVBViewerEventHandlingNotAlive
2012-01-16 16:57:04  EVENT: DVBViewer.DVBViewerEventHandlingNotAlive
2012-01-16 16:58:06  EVENT: DVBViewer.DVBViewerEventHandlingNotAlive
2012-01-16 16:59:08  EVENT: DVBViewer.DVBViewerEventHandlingNotAlive
2012-01-16 17:00:10  EVENT: DVBViewer.DVBViewerEventHandlingNotAlive
2012-01-16 17:01:12  EVENT: DVBViewer.DVBViewerEventHandlingNotAlive
2012-01-16 17:02:15  EVENT: DVBViewer.DVBViewerEventHandlingNotAlive
2012-01-16 17:03:17  EVENT: DVBViewer.DVBViewerEventHandlingNotAlive
2012-01-16 17:04:19  EVENT: DVBViewer.DVBViewerEventHandlingNotAlive
2012-01-16 17:05:21  EVENT: DVBViewer.DVBViewerEventHandlingNotAlive
2012-01-16 17:06:23  EVENT: DVBViewer.DVBViewerEventHandlingNotAlive
2012-01-16 17:07:25  EVENT: DVBViewer.DVBViewerEventHandlingNotAlive
2012-01-16 17:08:27  EVENT: DVBViewer.DVBViewerEventHandlingNotAlive
2012-01-16 17:08:29  EVENT: DVBViewerService.NumberOfClientsChanged 1
2012-01-16 17:08:29     MACRO: OnDvbvNewStreamStarted
2012-01-16 17:08:29        ACTION: Disable Suspend: Streaming started
2012-01-16 17:08:29        ACTION: eg.globals.dvbvIsStreaming  = True
2012-01-16 17:09:29  EVENT: DVBViewer.DVBViewerEventHandlingNotAlive
2012-01-16 17:09:31  EVENT: DVBViewerService.NoClientActive
2012-01-16 17:09:31     MACRO: OnDvbvAllStreamsFinished
2012-01-16 17:09:31        ACTION: Enable Suspend: Streaming finished
2012-01-16 17:09:31        ACTION: eg.globals.dvbvIsStreaming  = False
2012-01-16 17:10:31  EVENT: DVBViewer.DVBViewerEventHandlingNotAlive
2012-01-16 17:10:34  EVENT: DVBViewer.TimerListUpdated
2012-01-16 17:11:34  EVENT: DVBViewer.DVBViewerEventHandlingNotAlive
2012-01-16 17:12:36  EVENT: DVBViewer.DVBViewerEventHandlingNotAlive
2012-01-16 17:13:38  EVENT: DVBViewer.DVBViewerEventHandlingNotAlive
2012-01-16 17:14:40  EVENT: DVBViewer.DVBViewerEventHandlingNotAlive
2012-01-16 17:15:42  EVENT: DVBViewer.DVBViewerEventHandlingNotAlive
2012-01-16 17:16:44  EVENT: DVBViewer.DVBViewerEventHandlingNotAlive
2012-01-16 17:17:46  EVENT: DVBViewer.DVBViewerEventHandlingNotAlive
2012-01-16 17:18:49  EVENT: DVBViewer.DVBViewerEventHandlingNotAlive
2012-01-16 17:19:51  EVENT: DVBViewer.DVBViewerEventHandlingNotAlive
2012-01-16 17:20:53  EVENT: DVBViewer.DVBViewerEventHandlingNotAlive
2012-01-16 17:21:55  EVENT: DVBViewer.DVBViewerEventHandlingNotAlive
2012-01-16 17:21:57  EVENT: DVBViewerService.NumberOfClientsChanged 1
2012-01-16 17:21:57     MACRO: OnDvbvNewStreamStarted
2012-01-16 17:21:57        ACTION: Disable Suspend: Streaming started
2012-01-16 17:21:57        ACTION: eg.globals.dvbvIsStreaming  = True
2012-01-16 17:22:57  EVENT: DVBViewer.DVBViewerEventHandlingNotAlive
2012-01-16 17:22:59  EVENT: DVBViewerService.NoClientActive
2012-01-16 17:22:59     MACRO: OnDvbvAllStreamsFinished
2012-01-16 17:22:59        ACTION: Enable Suspend: Streaming finished
2012-01-16 17:22:59        ACTION: eg.globals.dvbvIsStreaming  = False
2012-01-16 17:23:59  EVENT: DVBViewer.DVBViewerEventHandlingNotAlive
2012-01-16 17:25:01  EVENT: DVBViewer.DVBViewerEventHandlingNotAlive
2012-01-16 17:26:03  EVENT: DVBViewer.DVBViewerEventHandlingNotAlive
2012-01-16 17:27:05  EVENT: DVBViewer.DVBViewerEventHandlingNotAlive
2012-01-16 17:28:08  EVENT: DVBViewer.DVBViewerEventHandlingNotAlive
2012-01-16 17:28:10  EVENT: DVBViewerService.NumberOfClientsChanged 1
2012-01-16 17:28:10     MACRO: OnDvbvNewStreamStarted
2012-01-16 17:28:10        ACTION: Disable Suspend: Streaming started
2012-01-16 17:28:10        ACTION: eg.globals.dvbvIsStreaming  = True
2012-01-16 17:29:10  EVENT: DVBViewer.DVBViewerEventHandlingNotAlive
2012-01-16 17:29:12  EVENT: DVBViewerService.NoClientActive
2012-01-16 17:29:12     MACRO: OnDvbvAllStreamsFinished
2012-01-16 17:29:12        ACTION: Enable Suspend: Streaming finished
2012-01-16 17:29:12        ACTION: eg.globals.dvbvIsStreaming  = False
2012-01-16 17:30:12  EVENT: DVBViewer.DVBViewerEventHandlingNotAlive
2012-01-16 17:31:14  EVENT: DVBViewer.DVBViewerEventHandlingNotAlive
2012-01-16 17:32:16  EVENT: DVBViewer.DVBViewerEventHandlingNotAlive
2012-01-16 17:33:18  EVENT: DVBViewer.DVBViewerEventHandlingNotAlive
2012-01-16 17:34:20  EVENT: DVBViewer.DVBViewerEventHandlingNotAlive
2012-01-16 17:35:22  EVENT: DVBViewer.DVBViewerEventHandlingNotAlive
2012-01-16 17:36:24  EVENT: DVBViewer.DVBViewerEventHandlingNotAlive
2012-01-16 17:37:26  EVENT: DVBViewer.DVBViewerEventHandlingNotAlive
2012-01-16 17:38:29  EVENT: DVBViewer.DVBViewerEventHandlingNotAlive
2012-01-16 17:39:31  EVENT: DVBViewer.DVBViewerEventHandlingNotAlive
2012-01-16 17:40:33  EVENT: DVBViewer.DVBViewerEventHandlingNotAlive
2012-01-16 17:41:35  EVENT: DVBViewer.DVBViewerEventHandlingNotAlive
2012-01-16 17:42:37  EVENT: DVBViewer.DVBViewerEventHandlingNotAlive
2012-01-16 17:43:39  EVENT: DVBViewer.DVBViewerEventHandlingNotAlive
2012-01-16 17:44:41  EVENT: DVBViewer.DVBViewerEventHandlingNotAlive
2012-01-16 17:45:43  EVENT: DVBViewer.DVBViewerEventHandlingNotAlive
2012-01-16 17:46:45  EVENT: DVBViewer.DVBViewerEventHandlingNotAlive
2012-01-16 17:47:47  EVENT: DVBViewer.DVBViewerEventHandlingNotAlive

Link to comment

aah, beim Steuerkreuz nicht, dann beendet sich der Countdown sofort.

ja, das ist eine "Unschönheit" des iMON-Plugins... bei einer iMON PAD werden nicht für alle Tasten iMON-Events erzeugt. Selbst korrigieren kann ich es nicht, das ist definitiv zu hardware-nah, ist nicht meine Ecke. Aber ich suche derzeit einen Workaround (-> nächste Version)

 

eine Idee was hier falsch läuft?

so vom Schiff aus erst mal ganz banal: 1) es gibt den Event 'DVBViewer.DVBViewerEventHandlingNotAlive' im Log, den habe ich (wissentlich) noch nie gesehen aber der "schmeckt" nach ungutem System-Zustand. 2) das StandbyControl-Plugin triggert keinen 'StandbyControl.Trigger' Event, daher wird auch kein Auto-Suspend eingeleitet. Dass dieser Event nicht kommt, muss nicht unbedingt ein Plugin-Fehler sein, möglicherweise waren die Bedingungen für das Triggern einfach noch nicht erfüllt (siehe 1). Anyway, Stop-Start von EG würde das Problem vordergründig möglicherweise korrigieren. Aber es bleibt die Suche nach der tieferen Ursache, respektive wie es zu diesem fehlerhaften Zustand kam. 1) Ist vorher schon irgend etwas ungewöhnliches aufgefallen, z.B. Fehler im Logfile oder irgend ein Programm-Absturz (ich denke da insbesondere an die Software zum TV-Schauen :whistle:)? 2) Startest du EG nach jeder Config-Änderung und nach jedem System-Resume neu? 3) Ist das einmalig aufgetreten oder passiert das regelmässig?

Link to comment

das passiert sporadisch. EG lasse ich beim Standby beenden und beim Resume neu starten.

 

Andere Sache: kannst Du evtl. sowas einbauen, daß man bei einem Standby-Befehl ebenso noch paar Sekunden Zeit hat das abzubrechen? Ich hab' das mal selber probiert mit dem OSDrelaxedCountdown oder wie das heißt aber irgendwie bekomme ich das nicht richtig hin, geht trotzdem in den Standby.

Link to comment

das "EVENT: DVBViewer.DVBViewerEventHandlingNotAlive" taucht nun wieder auf, frisch gestarteter DVBViewer, frisch gestartetes EventGhost, der Viewer spielt nichts ab.

 

Hier finde ich zu dem Event das hier:

 

DVBViewerEventHandlingNotAlive

Viewer

The event gets fired whenever the DVBViewer can't sent events.

 

aha?

Link to comment

ok, ich glaube ich weiß woran das liegt.

 

DVBViewer läuft, dann EG starten: die Meldungen kommen

EG starten, dann DVBViewer starten: die Meldungen kommen nicht

 

muß ich denn wirklich beim Standby den Viewer beenden und beim Resume neu starten nur damit EG glücklich ist und Auto-Suspend/Standby funktioniert?

Link to comment

das passiert sporadisch. EG lasse ich beim Standby beenden und beim Resume neu starten.

Ich hatte gestern auch wieder mal einen von der sporadischen Sorte... bei einer Timer-Aufnahme dauerte es mehr als eine Stunde, bis der Event 'DVBViewerService.StartRecord' gefeuert wurde, und - schlimmer noch - der Event 'DVBViewerService.AllActiveRecordingsFinished' kam überhaupt nie. Logisch, dass der PC nicht in den Suspend ging und die ganze Nacht durch lief. Solche sporadischen Fehler sind die mühsamsten überhaupt, weil sie eben nicht reproduzierbar sind und das erst recht, wenn sie in Code auftreten, den man nicht selbst unter Kontrolle hat. So genial die Idee und Umsetzung von EventGhost ist, manchmal habe ich schon den Eindruck, das ganze Fundament (DVBViewer- und andere EG-Plugins, evtl. auch EG selbst) ist etwas buggy, instabil und unzuverlässig. Auf den Mond fliegen möchte ich damit auf jeden Fall nicht... und für die Steuerung eines HTPC stellt sich natürlich die Frage, wie oft solche Vorkommnisse auftreten und wie tolerant man damit umgeht.

 

Andere Sache: kannst Du evtl. sowas einbauen, daß man bei einem Standby-Befehl ebenso noch paar Sekunden Zeit hat das abzubrechen? Ich hab' das mal selber probiert mit dem OSDrelaxedCountdown oder wie das heißt aber irgendwie bekomme ich das nicht richtig hin, geht trotzdem in den Standby.

Ja, das ist keine grosse Sache, werde ich machen.

 

muß ich denn wirklich beim Standby den Viewer beenden und beim Resume neu starten nur damit EG glücklich ist und Auto-Suspend/Standby funktioniert?

Angesichts der Instabilitäten halte ich das Beenden von DVBViewer vor dem Standby immer noch für die beste Option.

 

Ich teste bei mir übrigens derzeit die nächste Version der SuspendGhost Config, welche genau diesen Punkt angeht.

Neu wird DVBViewer nach dem Resume automatisch gestartet - und dennoch blockiert er den Auto-Suspend nicht, aber es kommen auch keine unerwarteten 'DVBViewer will shutdown in xx seconds' Meldungen mitten im Film. Widerspruch? - wie ist das möglich? Das verrate ich noch nicht... ;)

Link to comment

Auf den Mond fliegen möchte ich damit auf jeden Fall nicht... und für die Steuerung eines HTPC stellt sich natürlich die Frage, wie oft solche Vorkommnisse auftreten und wie tolerant man damit umgeht.

ich würde damit nicht mal bis zum nächsten Supermarkt fahren wollen ;)

 

Ja, das ist keine grosse Sache, werde ich machen.

Vielen Dank!

 

Ich teste bei mir übrigens derzeit die nächste Version der SuspendGhost Config, welche genau diesen Punkt angeht.

Neu wird DVBViewer nach dem Resume automatisch gestartet - und dennoch blockiert er den Auto-Suspend nicht, aber es kommen auch keine unerwarteten 'DVBViewer will shutdown in xx seconds' Meldungen mitten im Film. Widerspruch? - wie ist das möglich? Das verrate ich noch nicht... ;)

hmm, aber das geht doch jetzt schon? OK, kein Autostart vom DVBViewer bei Resume, aber der läuft bei mir eh immer. Meine Freundin macht den HTPC oft an und macht dann direkt was anderes und vergißt einen Sender einzustellen, und 10 Minuten später geht das Ding dann direkt wieder in den Standby. Eigentlich sollten's ja 5 Minuten sein, aber wegen "irgendwelchen" Bugs dauert's halt bis zum nächsten Run. Und die Meldungen mit dem 'DVBViewer will shutdown in xx seconds' kommen doch wenn vom Recording Service oder nicht? Das kommt bei mir auch nicht mehr, weil ich nach einer Aufnahme keine Aktion mehr definiert habe.

 

Anyway, bin schon gespannt auf Deine neue Version 8-)

Link to comment

ok, ich glaube ich weiß woran das liegt.

 

DVBViewer läuft, dann EG starten: die Meldungen kommen

EG starten, dann DVBViewer starten: die Meldungen kommen nicht

 

muß ich denn wirklich beim Standby den Viewer beenden und beim Resume neu starten nur damit EG glücklich ist und Auto-Suspend/Standby funktioniert?

tja, das war's auch nicht. Hab alles umgestellt auf EG und DVBViewer beim Suspend beenden und beim Resume erst EG starten, warten, dann DVBViewer, Meldungen kommen sporadisch (nicht bei jedem Resume). Das ist doch alles Abfall ;->
Link to comment

Vorschlag für weitere Programme, die den Auto-Suspend blockieren können:

DWRCS.EXE       - falls jemand mit DameWare auf dem System arbeitet
ImgBurn.exe     - Brennprogramm
PowerDVD9.exe   - falls jemand noch ältere PowerDVD Versionen benutzt
PowerDVD11.exe  - falls jemand die neuste PowerDVD Version benutzt
rdpclip.exe     - falls jemand via RDP auf dem HTPC angemeldet ist
smartctl-nc.exe - falls jemand gerade mit den smartmontools arbeitet

dann hätte ich noch eine Frage, _wo_ diese Settings gespeichert werden? Ich hab' mal ein grep -ir gemacht aber finde nichts von den Settings. Kann mir nur noch vorstellen, daß das irgendwo binär abgelegt wird.

Link to comment

Ich denke, diese Liste muss jeder nach seinen persönlichen Wünschen resp. entsprechend den lokal installierten Programmen anpassen; ich kann schon noch ein paar verbreitete Programme mit aufnehmen, aber alle Möglichkeiten erwische ich garantiert nie.

 

Die Config wird auch in der SuspendGhost.xml abgelegt aber die Daten werden erst serialisiert (Python: tickled) und dann Base64-codiert, d.h. man sieht nur Buchstabensalat... die Liste lässt sich nur über das StandbyControl Plugin direkt bearbeiten.

Link to comment

Ich denke, diese Liste muss jeder nach seinen persönlichen Wünschen resp. entsprechend den lokal installierten Programmen anpassen; ich kann schon noch ein paar verbreitete Programme mit aufnehmen, aber alle Möglichkeiten erwische ich garantiert nie.

schon klar. War auch nur ein Vorschlag ;)

 

Die Config wird auch in der SuspendGhost.xml abgelegt aber die Daten werden erst serialisiert (Python: tickled) und dann Base64-codiert, d.h. man sieht nur Buchstabensalat... die Liste lässt sich nur über das StandbyControl Plugin direkt bearbeiten.

ah ok. danke.

 

Wo bleibt die neue Version? ;-)))

Link to comment

:-)

 

/ME wäre auch bereit Betatester dafür zu sein.

 

Feature Request: kannst Du etwas einbauen, daß einem per OSD anzeigt wieso ein manueller Suspend/Standby gerade hinausgezögert wird, z.B. durch ein laufendes EPG Update?

 

Danke!

Link to comment

/ME wäre auch bereit Betatester dafür zu sein.

Aber gerne doch - here we go...

 

Die wichtigsten Änderungen in V1.0.4:

  • Neu wird DVBViewer beim Starten / Resume des PCs automatisch mitgestartet. Das heisst, wenn man das Mediacenter einschaltet, ist auch DVBViewer da, wie bei einem "normalen" TV. Dennoch wird dadurch der automatische Suspend nicht blockiert. Bisher sagte ich immer, das sei nicht möglich und stünde im Widerspruch: Ein laufender DVBViewer blockiere den automatischen Suspend, daher könne er nicht automatisch gestartet werden, sonst würde der PC nach jeder unbewachten Timer-Aufnahme "ewig" eingeschaltet bleiben. Es geht eben doch - mit einem Trick. Nach dem Einschalten wartet SuspendGhost auf irgend einen Tastatur-Input oder eine Taste der Fernbedienung. Solange diese nicht kommt, ist das System im 'Nicht-interaktiven (oder: unbeaufsichtigten) Modus'. Wenn der PC im Nicht-interaktiven Modus ist und alle Timer-Aufnahmen fertig sind, fährt SuspendGhost den PC runter, auch wenn DVBViewer noch läuft. Sobald man hingegen die Fernbedienung benützt, schaltet das System in den 'interaktiven Modus'. Von nun an blockiert ein laufender DVBViewer den automatischen Suspend.
  • "Abbruch mit beliebiger Taste" macht jetzt, das was es vorgibt ;) Man kann jetzt wirklich mit (fast) jeder beliebigen Taste einen Countdown abbrechen
  • Neu kann man auch den OSD Countdown "Und tschüss" noch abbrechen.
  • Liste der 'Monitored Processes' erweitert. ...but as I said: Letztlich muss diese Liste (im Standby Control Plugin) jeder seinen eigenen Wünschen entsprechend konfigurieren
  • Konfiguration umstrukturiert, sodass das Zusammenführen der eigenen SuspendGhost-Config mit einer neuen Version vereinfacht wird (das Zusammenführen von zwei Konfigurationen wird von EG leider nicht wirklich gut unterstützt). Details siehe unten.

 

Zusammenführen der eigenen SuspendGhost Config mit der neuen

Annahme: du hast eine eigene SuspendGhost-Konfiguration und möchtest auf die aktuelle wechseln, aber die eigenen Plugin-Konfigurationen nicht verlieren. Diese Anleitung beschreibt, wie du deine eigenen Plugin-Konfigurationen von DVBViewer- und StandbyControl-Plugin (und nur diese!) retten kannst. Ich kann aber nicht garantieren, dass es funktioniert; EG ist recht zickig bei dieser Operation. Manchmal geht es, manchmal nicht und ich weiss auch nicht warum, sorry.

  • Erstelle einen Backup (eine Kopie) deiner aktuellen Konfiguration und leg ihn beiseite. Sicher ist sicher.
  • Öffne deine Config und lösche ALLE Makros, ausser den Plugins im Autostart Ordner. Lösche auch den Eintrag 'Jump to Initialize and return' im Autostart Ordner.
  • Füge die Plugins 'Timer' und 'Keyboard' zur Plugin-Liste im Autostart-Ordner hinzu (werden neu ab Version 1.0.4 benötigt)
  • Nun solltest eine (nahezu leere) Config haben, die genau diese Einträge enthält:
    Configuration Tree
    Autostart
    	Plugin: SoundGraph iMON HID
    	Plugin: DVBViewer
    	Plugin: Standby Control
    	Plugin: Timer
    	Plugin: Keyboard
    

  • Deine Config speichern und die neue SuspendGhost-Config öffnen
  • In der neuen Config: Den Ordner 'SuspendGhost' suchen (zu oberst), markieren und kopieren (rechte Maustaste).
  • Deine eigene Config wieder öffnen und den Eintrag "Configuration Tree" markieren.
  • Auf diesem Eintrag "Paste / Einfügen" (rechte Maustaste). Nun sollte der SuspendGhost-Baum in deine Config kopiert worden sein und so aussehen:
    Configuration Tree
    Autostart
    	Plugin: ...
    	...
    SuspendGhost-1.0.4
    	...
    

  • Plugin-Konfiguration für DVBViewer- und StandbyControl-Plugin kontrollieren (Doppelclick)
  • Config speichern, EG schliessen und erneut öffnen.
  • ...und nicht erschrecken: (Auch) beim Öffnen der SuspendGhost Config mit EventGhost wird DVBViewer gestartet.

Edited by mrphlox
Link to comment

Aber gerne doch - here we go...

Vielen Dank!

 

[*]Neu wird DVBViewer beim Starten / Resume des PCs automatisch mitgestartet. Das heisst, wenn man das Mediacenter einschaltet, ist auch DVBViewer da, wie bei einem "normalen" TV. Dennoch wird dadurch der automatische Suspend nicht blockiert. Bisher sagte ich immer, das sei nicht möglich und stünde im Widerspruch: Ein laufender DVBViewer blockiere den automatischen Suspend, daher könne er nicht automatisch gestartet werden, sonst würde der PC nach jeder unbewachten Timer-Aufnahme "ewig" eingeschaltet bleiben. Es geht eben doch - mit einem Trick.

Das verstehe ich nach wie vor nicht. Hatte ich schon mal erwähnt gehabt. Bei mir ist es vollkommen egal ob der Viewer läuft oder nicht, auch wenn er läuft und nichts abspielt (wegen Autostart beim Resume) geht das System ebenso in den Suspend/Standby nach Ablauf der Idletime. Das ging schon mit v1.0.2 und v1.0.3 :)
Link to comment

ok, erste Tests. Das mit der OSD Meldung, daß sich der HTPC jetzt im interaktiven Modus befindet, ist verwirrend, zumindest für meine Frau. Wenn sie den HTPC einschaltet und umschalten will kommt dann nach paar Sekunden die Meldung und sie denkt sich, was hat der werte Herr NUN schon wieder rumgebastelt ;)

 

ansonsten, Vorschlag wäre, DVBViewer nur zu starten, wenn er NICHT läuft, z.B. so wie attached Screenshots.

 

More tests und Bericht folgt ...

post-11251-0-03410300-1327500042_thumb.png

post-11251-0-06654700-1327500049_thumb.png

Link to comment

Das verstehe ich nach wie vor nicht. Hatte ich schon mal erwähnt gehabt. Bei mir ist es vollkommen egal ob der Viewer läuft oder nicht, auch wenn er läuft und nichts abspielt (wegen Autostart beim Resume) geht das System ebenso in den Suspend/Standby nach Ablauf der Idletime. Das ging schon mit v1.0.2 und v1.0.3 :)

"und nichts abspielt" ist genau der springende Punkt. "nichts abspielt" heisst gestoppter Graph, right? DVBViewer mit gestopptem Graphen ist bezüglich Auto-Suspend gleichwertig wie ein komplett beendeter DVBViewer. In der Version bis und mit 1.0.3 konntest du den Graphen (oder DVBViewer mit laufendem Graphen, logisch) nach Resume nicht automatisch starten, weil dies den Auto-Suspend blockiert hätte. Habe ich glaub auch alles schon mal erwähnt... Neu in 1.0.4 ist die Möglichkeit, DVBViewer (oder halt eben auch nur den Graphen) nach Resume automatisch zu starten, und dennoch funktioniert Auto-Suspend. Ob dir das Feature "vollkommen egal" ist oder nicht, ist dir überlassen, für mich passt's :)

ok, erste Tests. Das mit der OSD Meldung, daß sich der HTPC jetzt im interaktiven Modus befindet, ist verwirrend, zumindest für meine Frau. Wenn sie den HTPC einschaltet und umschalten will kommt dann nach paar Sekunden die Meldung und sie denkt sich, was hat der werte Herr NUN schon wieder rumgebastelt ;)

Der WAF ist natürlich nicht unwesentlich, das OSD hingegen ist unwichtig, hatte eher Debug-Charakter, kommt bis zur finalen Version raus. Btw, wenn du dich freiwillig für einen Beta-Test meldest kannst du nicht gleichzeitig erwarten, dass nichts ändert.

ansonsten, Vorschlag wäre, DVBViewer nur zu starten, wenn er NICHT läuft, z.B. so wie attached Screenshots.

Könnte ich schon machen, aber ich denke, da besteht immer noch ein Missverständnis bezüglich des Konzepts. DVBViewer läuft unmittelbar nach dem Resume noch nicht, sondern wird eben erst an dieser Stelle gestartet, daher sehe ich bisher auch keine Notwendigkeit, ein entsprechendes Fenster zu suchen. Wenn du beim Herunterfahren statt 'DVBViewer beenden' nur 'Graph stoppen' machst, müsstest du analog an dieser Stelle 'Graph starten' statt 'DVBViewer starten' machen. Wobei ich das selbst nie ausprobiert habe.
Link to comment

hmm, manueller Standby läßt sich manchmal mit dem iMON Pad abbrechen, manchmal nicht. Weiterhin wäre es schön, wenn der DVBViewer sich nicht beendet bevor der Countdown abgelaufen ist. Der Countdown sollte laufen und erst wenn der zu ende ist, dann DVBViewer beenden und den Rest machen für den Suspend/Standby.

Link to comment

Könnte ich schon machen, aber ich denke, da besteht immer noch ein Missverständnis bezüglich des Konzepts. DVBViewer läuft unmittelbar nach dem Resume noch nicht, sondern wird eben erst an dieser Stelle gestartet, daher sehe ich bisher auch keine Notwendigkeit, ein entsprechendes Fenster zu suchen. Wenn du beim Herunterfahren statt 'DVBViewer beenden' nur 'Graph stoppen' machst, müsstest du analog an dieser Stelle 'Graph starten' statt 'DVBViewer starten' machen. Wobei ich das selbst nie ausprobiert habe.

Darum geht's doch nicht ;) ... wenn DVBViewer läuft und man EG beendet und neu startet, dann möchte EG den DVBViewer starten, obwohl der noch läuft, "nur" weil man EG neu startet. Da weht der Wind ;-)
Link to comment

hmm, manueller Standby läßt sich manchmal mit dem iMON Pad abbrechen, manchmal nicht.

Hast du eine reproduzierbare Situation? Ich habe im Moment auch sehr oft Probleme mit der OSDCancel Funktion; EG hängt sich an dieser Stelle immer wieder mal auf. Aber ich kann es bis jetzt nicht reproduzieren. Vielleicht ist es ein Timing-Problem im Multithreading, ich versuch's derzeit rauszufinden, aber ist extrem schwierig zu lokalisieren.

Weiterhin wäre es schön, wenn der DVBViewer sich nicht beendet bevor der Countdown abgelaufen ist. Der Countdown sollte laufen und erst wenn der zu ende ist, dann DVBViewer beenden und den Rest machen für den Suspend/Standby.

Ja, finde ich gut, hab ich eingebaut.

Darum geht's doch nicht ;) ... wenn DVBViewer läuft und man EG beendet und neu startet, dann möchte EG den DVBViewer starten, obwohl der noch läuft, "nur" weil man EG neu startet. Da weht der Wind ;-)

Haste recht :) Aber ich werde an dieser Stelle einen laufenden DVBViewer beenden und dann neu starten, sonst gibt's anschliessend den Fehler 'DVBViewer.DVBViewerEventHandlingNotAlive', wie du selbst auch schon beobachtet hast.

 

Wenn ich mehr über das Probleme mit dem OSDCancel herausgefunden habe, werde ich eine zweite Beta hochladen.

Link to comment

"und nichts abspielt" ist genau der springende Punkt. "nichts abspielt" heisst gestoppter Graph, right? DVBViewer mit gestopptem Graphen ist bezüglich Auto-Suspend gleichwertig wie ein komplett beendeter DVBViewer.

achsoo! Schlau gemacht :)
Link to comment

schon blöd, wenn der HTPC resumed und EG neu gestartet werden sollte und man dann sowas bekommt:

 

Name der fehlerhaften Anwendung: EventGhost.exe, Version: 0.4.1.1544, Zeitstempel: 0x4918019c
Name des fehlerhaften Moduls: PYTHON26.DLL, Version: 2.6.5150.1013, Zeitstempel: 0x4ba43271
Ausnahmecode: 0xc0000005
Fehleroffset: 0x0006ba07
ID des fehlerhaften Prozesses: 0x11f4
Startzeit der fehlerhaften Anwendung: 0x01ccdc322ed164ca
Pfad der fehlerhaften Anwendung: C:\Program Files\EventGhost\EventGhost.exe
Pfad des fehlerhaften Moduls: C:\Program Files\EventGhost\PYTHON26.DLL
Berichtskennung: c7fa513c-4825-11e1-91b3-6cf0490e580d

;-(

Link to comment

Kannst Du etwas einbauen, daß z.B. nach idle Time von 2 Stunden ein OSD mit einem Countdown kommt, daß der HTPC in 30 Sekunden in den Standby geht? oder von mir aus auch eine Möglichkeit mit eventghost.exe --event $eventname, den man dann z.B. via Bildschirmschoner oder so aktivieren kann, ein 30 Sekunden OSD einzublenden, daß der HTPC eben in Zeit X in den Standby geht. Hintergrund ist, daß es doch öfter passiert, daß meine Freundin und/oder ich auf dem Sofa einschlafen und der HTPC die ganze Nacht durchrödelt obwohl man nicht schaut. Da wäre es schön, wenn z.B. nach 2 Stunden ein Hinweis kommt und wenn man den nicht beachtet, das System in den Standby geht, ungefähr á la dem hier: automatischer Standby

Link to comment

Gefunden :) es gab fiese Fehler in der Thread-Synchronisation welche dazu führten, dass EG beim OSD Cancel sich sporadisch aufhängte. Es war sicher nicht der letzte Fehler, den es noch hat, aber auf jeden Fall ist eine grosse Quelle von sporadischen Abstürzen damit behoben.

 

Hier also die beta2. Auch das StandbyControl Plugin ersetzen.

 

(edit: Attachment entfernt, da obsolet)

Edited by mrphlox
Link to comment

Kannst Du etwas einbauen, daß z.B. nach idle Time von 2 Stunden ein OSD mit einem Countdown kommt, daß der HTPC in 30 Sekunden in den Standby geht?

Ja, gute Idee, so eine Art Totmannpedal. Sollte gar nicht mal so schwierig einzubauen sein

 

Intern läuft es etwa so: Wenn der PC im interaktiven Modus ist (FB etc. wurde benützt), beginnt ein Timer mit einer Laufzeit von 2h zu laufen. Wenn die FB unbenützt bleibt in dieser Zeit, fällt der PC in den Nicht-interaktiven Modus zurück (gleicher Modus wie unmittelbar nach dem Resume). Ab hier auf bekanntem Pfad: Wenn der PC im Nicht-Interaktiven Modus ist und eine weitere Stunde vergeht ohne Benützung der FB (oder alle Timer fertig), erscheint ein OSD Countdown, welches wie gewohnt abgebrochen werden kann oder sonst am Ende DVBViewer beendet und damit Standby vorbereitet.

 

das heisst, wenn die FB nicht benützt wird und...

- der PC ist im Interaktiven Modus: Automatischer Standby nach 2+1= 3 Std (= Nickerchen auf dem Sofa)

- der PC ist im Nicht-interaktiven Modus: Automatischer Standby nach 1 Std (= jemand hat versehentlich eingeschaltet)

- der PC ist im Nicht-interaktiven Modus und es läuft eine Timer-Aufnahme: Automatischer Standby nach Ende des Timers

Die Zeiten lassen sich natürlich beliebig anpassen.

Link to comment

Hier nun die beta3

 

...mit Change Log :)

  • beta2: Fix für sporadische Hänger bei Cancel OSD (Thread Synchronisation)
  • beta2: Impr: DVBViewer erst schliessen, nachdem der Countdown abgelaufen ist
  • beta2: Impr: Nach Resume DVBViewer stoppen, falls er schon läuft, dann neu starten
  • beta3: Impr: "SofaSleepingTimer" (Totmannpedal) implementiert. Nach 3 Std Inaktivität wird automatischer Suspend ausgelöst. Nur den TV muss man immer noch von Hand ausschalten ;)

 

(edit: Attachment entfernt, da obsolet)

Edited by mrphlox
Link to comment

Feature Request: kannst Du etwas einbauen, daß einem per OSD anzeigt wieso ein manueller Suspend/Standby gerade hinausgezögert wird, z.B. durch ein laufendes EPG Update?

Hab das damals irgendwie überlesen resp. nicht ganz verstanden, was du meinst. Hat sich das bereits erledigt, oder was möchtest du erreichen? Btw, *manueller* Suspend wird nie von einem EPG-Update aufgehalten, nur der automatische Suspend. Das einzige, was manuellen Suspend (= Power Button auf der FB) aufhält, sind laufende / bevorstehende Timeraufnahmen.

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