Jump to content
mrphlox

SuspendGhost: Steuerung von Standby / Ruhezustand mit EventGhost

Recommended Posts

mrphlox

Neue Version 1.3.0 (16. Nov. 2012)

Hier geht es zu den Änderungen im Überblick

 

SuspendGhost ist eine intelligente Steuerung des Standby (S3) oder Ruhezustands (S4) eines Mediacenter PCs auf der Basis von EventGhost.

 

Highlights and Features :)

  1. Automatischer Suspend: SuspendGhost erkennt selbständig, wann der HTPC in den Ruhezustand oder Standby gehen soll und wann eben nicht. Der Rechner läuft dann, wenn er muss, aber nicht unnötig lange.
  2. Keine abgebrochenen Aufnahmen mehr: SuspendGhost schützt zuverlässig davor, den Rechner versehentlich herunterzufahren, währenddem eine Aufnahme im Recording Service oder DVBViewer läuft.
  3. (verbessert in 1.3) Autostart DVBViewer: Nach dem Hochfahren / Aufwachen des Rechners startet der DVBViewer automatisch.
  4. (verbessert in 1.1) Keine lästigen "DVBViewer will shutdown in xx seconds!" Popups mitten im Kinoabend. SuspendGhost erkennt zuverlässig, ob eine unbewachte Timer-Aufnahme läuft, oder ob jemand vor dem TV sitzt und zuschaut.
  5. (verbessert in 1.1) Am Ende einer unbeaufsichtigten Timer-Aufnahme fährt SuspendGhost den Rechner automatisch innert weniger Minuten wieder herunter. Wenn hingegen jemand TV schaut (= interaktiver Modus), wird kein automatischer Suspend ausgelöst.
  6. (verbessert in 1.1) Standby Blocker: Man kann auf einfache Art selbst Programme definieren, welche den automatischen Suspend verhindern. Beispiel: "Solange der Musikplayer Winamp läuft, soll der PC nicht automatisch herunterfahren". Eine Liste gängiger und sinnvoller Programme ist bereits vorkonfiguriert.
  7. On Screen Displays (OSD): SuspendGhost läuft normalerweise unauffällig im Hintergrund. Nachrichten, wie z.B. ein Countdown vor einem bevorstehenden Suspend, werden als OSD am Bildschirm angezeigt und können mit einer beliebigen Taste auf der Fernbedienung abgebrochen werden.
  8. Sleeptimer: Sollte man einmal vergessen, den HTPC auszuschalten (es soll auch Leute geben, die davor einschlafen ;)), fährt nach einer konfigurierbaren Zeit (z.B. 2 Std.) der Rechner automatisch herunter. Mit jeder Taste auf der FB wird der Sleeptimer im Hintergrund wieder zurückgesetzt und startet neu.
  9. (neu in 1.1) Keep Alive: Man kann sich wiederholende Zeitblöcke definieren, wann der HTPC wach bleiben soll. Beispiel: "Jeden Samstag Abend von 19:00 bis 23:00 soll der PC wach bleiben".
  10. (neu in 1.1) Netzwerk-Verkehr als Standby-Kriterium: Als zusätzliches Standby-Kriterium kann der Netzwerk-Verkehr überwacht werden. Automatischer Suspend wird verhindert, solange eine definierbare Datenrate überschritten ist. Beispiel: Solange jemand via LAN auf das Mediacenter zugreift und so einen Film anschaut, wird Standby verhindert.
  11. (neu in 1.2) Serien-Killer: Veraltete Aufnahmen, insbesondere Serien-Folgen, können automatisch nach diversen Kriterien gesucht und gelöscht werden.
  12. (neu in 1.2) Reboot-Zeitplan: Der HTPC kann nach XX Tagen automatisch rebooten.
  13. (neu in 1.2) Multilingual: User interface / OSD messages now also in English. Additional languages can be added easily.
  14. (neu in 1.3) Alle Timers und OSD Countdowns können an zentraler Stelle konfiguriert werden.

Decken sich deine Anforderungen an eine Standby-Steuerung mit diesen Features? Dann bist du hier richtig und willkommen!

 

Alternativen

Warum verwende ich nicht einfach die Konfiguration "Nach Aufnahme: Ruhemodus" im Recording Service / DVBViewer?

  1. Weil man eine laufende Aufnahme abwürgt, wenn man mit der Fernbedienung den PC in den Ruhezustand schickt.
  2. Weil mich der Dialog "DVBViewer will shutdown in xx seconds!" während eines Kinoabends nervt.
  3. Und wenn ich z.B. Musik höre, verpasse ich den Dialog mit Sicherheit.

Warum verwende ich nicht einfach die "Energieoptionen" von Windows?

  1. Unter Windows hat man so gut wie keine Kontrolle und Einflussmöglichkeiten, unter welchen Bedingungen Windows den Energiesparmodus auslöst (oder eben manchmal auch nicht).
  2. DVBViewer muss immer explizit geschlossen werden, sonst geht Windows nicht in den Energiesparmodus.
  3. Deshalb ist auch kein automatischer Start von DVBViewer nach dem Hochfahren / Resume möglich, weil der PC sonst nach einer unbewachten Timeraufnahme nicht mehr einschläft.
  4. Auch hier besteht das Problem, dass man mit der FB eine laufende Aufnahme abwürgen kann.

Eine zentrale Kompenente von SuspendGhost ist das StandbyControl Plugin, welches von Prinz entwickelt wurde – an dieser Stelle vielen Dank @Prinz für die Idee, Realisierung und Veröffentlichung (Respekt, raffiniertes Plugin). Ich habe - in Absprache mit Prinz - das Plugin weiter entwickelt und stelle es hier in der aktuellsten Version zur Verfügung.

 

Konzept und Funktionen

Als erstes muss man sich natürlich mal überlegen, wann der Rechner in den Ruhezustand oder Standby geschickt werden soll und wann eben nicht.

 

SuspendGhost unterscheidet im wesentlichen zwei Modi: Automatischer Suspend und Manueller Suspend.

  1. Automatischer Suspend: Der Rechner geht automatisch in den Ruhezustand oder Standby, wenn folgende Bedingungen erfüllt sind:

    1. Das System befindet sich im "Idle"-Zustand, das heisst, es gab seit längerem (> 5 Minuten) keine Fernbedienungs-, Tastaturinputs oder Mausbewegungen
    2. Es läuft keine Aufnahme im DVBViewer oder RecordingService
    3. Es startet keine neue Aufnahme in den nächsten 5 Minuten
    4. DVBViewer ist weder im TV- noch im Playback-Modus (Wiedergabe von Aufzeichnungen)
    5. DVBViewer ist nicht mit EPG Update beschäftigt
    6. RecordingService ist nicht mit Streamen beschäftigt
    7. Der Netzwerk-Verkehr ist unterhalb einer definierbaren Limite
    8. Kein Programm aus der Blocker-Liste läuft. Man kann (im StandbyControl Plugin) eine Liste von Blocker-Programmen definieren, typische Vertreter sind z.B. PowerDvd.exe, winamp.exe, irfanview.exe aber auch msiexec.exe und setup.exe. Der automatische Ruhezustand wird nur ausgelöst, wenn keines der definierten Blocker-Programme aktiv ist.
    9. Es ist keine Keepalive-Periode aktiv. Man kann (im StandbyControl Plugin) Zeiten definieren, zu welchen der PC nicht in den automatischen Suspend gehen soll, z.B. wochentags jeden Abend von 19:00 bis 23:00 Uhr

[*]Manueller Suspend: Der Rechner geht in den Ruhezustand, wenn die "Power" Taste auf der Fernbedienung gedrückt wird. Da die Absicht des Anwenders klar ist, wird nur noch die Bedingung geprüft, dass zur Zeit keine Aufnahme läuft oder in naher Zukunft startet. Falls eine Aufnahme läuft, wird eine entsprechende OSD Meldung auf dem Screen angezeigt.

Falls du mehr über das Konzept und die interne Funktionsweise von SuspendGhost erfahren möchtest, findest du -> hier eine Übersicht <-.

 

Weitere Funktionen

Sleeptimer

Grundsätzlich verhindert ein laufender DVBViewer den automatischen Suspend ab dem Zeitpunkt, wo die Fernbedienung ein erstes Mal benützt wurde. Mit diesem Trick können die lästigen "DVBViewer will shut down in xx seconds!" Popups nach einer Aufnahme vermieden werden und dennoch fährt der Rechner nach Ende einer unbewachten Timer-Aufnahme innert weniger Minuten wieder herunter. Was passiert aber, wenn man auf dem Sofa einschläft oder sonstwie vergisst, das Mediacenter auszuschalten? Kein Problem, nach etwa 2 Stunden (konfigurierbar) wird der Sleeptimer, eine Art Totmannpedal, aktiv und fährt den Rechner herunter. Jedesmal, wenn man eine Taste auf der FB drückt (oder eine Mausbewegung macht oder das Keyboard benützt) wird der Sleeptimer wieder zurückgesetzt und startet neu.

 

Serienkiller (aka „Putzfisch“) :)

Wer im Recording Service Serienaufnahmen programmiert, z.B. tägliche Nachrichten oder eine Sitcom, musste bis anhin immer wieder die alten Aufnahmen von Hand löschen – eine langweilige und wiederkehrende Aufgabe! Mit der neuen Action im DVBViewer Plugin ‚Delete Recordings‘ kann man sehr einfach und komfortabel einen Putzfisch programmieren, der die alten Aufnahmen löscht. Besonders praktisch: Mit Filterkriterien kann man definieren, dass die zu löschenden Aufnahmen ein Mindestalter haben müssen (z.B. älter als 7 Tage) und gleichzeitig dass z.B. die letzten 3 Aufnahmen in jedem Fall beibehalten werden sollen.

 

Reboot Zeitplan

Von Zeit zu Zeit möchte man den Rechner wieder einmal rebooten – dank Murphy meist gerade dann, wenn eine Aufnahme läuft. SuspendGhost führt nach einer konfigurierbaren Zeit, z.B. nach 7 Tagen, automatisch einen Reboot statt Suspend aus.

 

Installation

Die Installation und Konfiguration von SuspendGhost ist nicht schwierig, solange du die Anleitung genau befolgst (das ist wichtig!). Dank der komfortablen Oberfläche von EventGhost kommen auch Nicht-Programmierer problemlos damit klar.

 

Für die Installation brauchst du:

  • EventGhost - latest version. SuspendGhost läuft bei mir derzeit auf EventGhost 0.4.1.r1582 unter Windows 7 HP 32bit und Windows 7 64bit.
  • Das richtige Plugin für deine Fernbedienung (in meinem Fall 'Soundgraph iMON'. Für viele verbreitete FBs sind die Plugins bereits in EG enthalten. Das iMON Plugin lege ich "as is" im Anhang bei.
  • Die SuspendGhost Konfiguration sowie die dazu verwendeten Plugins im Anhang

Auf los geht’s los...

  1. EventGhost installieren. Optional: Benutzeroberfläche auf "Deutsch" umstellen (Menu "File > Options").
  2. EventGhost beenden. Das beiliegende 'SuspendGhost_1.3.0.zip' lokal in ein beliebiges Verzeichnis entpacken. Benenne den Ordner z.B. 'SuspendGhost'. Dann in den Ordner 'SuspendGhost\EventGhost' wechseln, die drei darin enthaltenen Ordner 'eg', 'lib26' und 'plugins' markieren, kopieren und 1:1 in 'C:\Programme\EventGhost' einfügen. Windows fragt: "Möchten Sie den Ordner "eg" in den Ordner "eg" integrieren?" - Diese und ähnliche Fragen mit "Ja" beantworten. (Wenn die Frage nicht kommt, kopierst du ans falsche Ort!)
  3. EventGhost starten. In EventGhost über Datei / Öffnen... die Config-Datei 'SuspendGhost\config\SuspendGhost-1.3.0.xml' laden.
  4. In EventGhost deine Fernbedienung konfigurieren. Wenn du iMON Pad verwendest, kannst du diesen Punkt überspringen. Ansonsten:
    • Lösche das iMON Plugin aus dem Autostart Ordner
    • Füge das Plugin deiner FB zum Autostart Ordner hinzu, z.B. X10
    • (wichtig): Ersetze Events, die mit 'iMON' beginnen, entsprechend deiner FB: Menu Bearbeiten > Suchen: 'iMON'. Es sind nur drei Vorkommnisse, die Macros 'OnPowerButton', 'OnAnyKey1' und 'OnAnyKey2'. Doppelclick auf den Event (gelbes Blitz-Symbol), ändere z.B. 'iMON.*' nach 'X10.*'.

[*]In EventGhost, Doppelclick auf das DVBViewer Plugin:

  • Pfad zum DVBViewer eintragen / überprüfen, z.B. C:\Program Files\DVBViewer\DVBViewer.exe
  • Hostname und Port des Recording Service überprüfen, Default ist "localhost:8089"

[*](optional): In EventGhost, Doppelclick auf das StandbyControl Plugin:

  • In der mittleren Tabelle alle Programme eintragen, die den Standby verhindern sollen (Blocker-Programme). Sinnvoll sind hier sicher alle Media-Applikationen (Player, Bildbetrachter etc.), die du verwendest. Tipp: Für das Eintragen eines neuen Programms: das entsprechende Programm starten, dann im EG auf den unteren "Refresh" Button clicken, dann im Dropdown "Process name" das Programm auswählen und mit "Add" zur Liste hinzufügen.

[*](optional): In EventGhost, Doppelclick auf das 'Network Data Rate Monitor' Plugin:

  • In der Dropdown-Liste das primäre Netzwerk-Interface auswählen. Bei Unsicherheit (Anleitung für Win7): Systemsteuerung > Netzwerk und Internet > Netzwerk und Freigabecenter > Adaptereinstellungen ändern. Aus den hier aufgelisteten Adaptern sollte ersichtlich sein, welches der primäre ist.
  • Lower limit: 5000 Byte/s
  • Upper limit: 75000 Byte/s

[*](optional): In EventGhost, Verhalten von SuspendGhost nach eigenem Wunsch anpassen: Ausgehend vom Ordner 'SuspendGhost_1.3.0' navigiere zu SuspendGhost Configuration. Python Script durch Doppelclick öffnen. Hinweis: Python ist "case sensitive", d.h. Gross-/Kleinschreibung bei 'True' / 'False' beachten.

  • eg.globals.AutoRestartEGAfterResume = True

    Wenn 'True' wird EG nach jedem Resume automatisch neu gestartet. Empfohlene Einstellung, erhöht die Stabilität.

  • eg.globals.AutoStartDVBViewerDelay  = 5

    Bei einem Wert >= 0 wird DVBViewer nach jedem Resume automatisch gestartet. Mit dem Wert -1 kannst du den Autostart ganz ausschalten. Mit dem Wert 0 startet DVBViewer sofort, mit einem Wert grösser 0 (z.B. 5) wird der Start mit einem OSD Countdown verzögert und kann abgebrochen werden.

  • eg.globals.RebuildGraphAfterStart   = 5

    Nach dieser Zeit (in Sekunden) wird der Wiedergabegraph nach dem Start von DVBViewer neu aufgebaut. Ist ein Workaround für das Problem, dass auf manchen Systemen der DVBViewer (in Verbindung mit RS) manchmal mit einem schwarzen Bildschirm startet. Mit dem Wert '-1' wird das Feature ausgeschaltet.

  • eg.globals.AutoRebootHours          = 7*24

    Nach dieser Zeit (in Stunden) wird beim nächsten Suspend ein Reboot (statt Standby/Hibernate) ausgeführt. Erhöht die Stabilität.

  • eg.globals.SuspendMethod            = "Hibernate"

    Gültige Werte sind "Hibernate" (Ruhezustand) oder "Standby". Damit kann man festlegen, ob das System mit 'Standby' (S3) oder 'Ruhezustand' (S4) schlafen geht.

[*](wichtig): Im RecordingService und im DVBViewer unter "Aufnahmen / Standard-Aktion nach einer Timeraufnahme: Keine Aktion" wählen.

[*](wichtig): In den DVBViewer Optionen "Allgemein > Beenden":

  • "Folgende Aktion beim Beenden per Fernbedienung ausführen": "DVBViewer beenden".
  • "Ausschaltknopf der FB bewirkt": "Normales beenden"
  • "Keine Bestätigung beim Beenden": Ja
  • "Verhindere Bildschirmschoner": Ja

[*](wichtig): Je nach Fernbedienung in der zur FB gehörenden Konfiguration festlegen, dass beim Drücken der Power-Taste nichts passieren soll. Für iMON Pad: im iMON Manager unter "Einstellungen / Windows Befehl / Energiemanagement-Befehl" darf die Fernbedienungstaste 'Power' nirgends konfiguriert sein.

[*](wichtig): In der Windows Systemsteuerung unter "Energieoptionen / Energiesparplaneinstellungen ändern / Energiesparmodus nach: Niemals" auswählen.

[*](optional): Kopiere die zwei Verknüpfungen "Bedingter Ruhezustand" und "Graceful Reboot" aus dem Ordner "shortcuts" auf den Desktop und/oder ins Windows Startmenu.

[*](wichtig): In EventGhost, alle verwendeten Plugins sowie den Hauptordner aktivieren (Rechte Maustaste > Element aktivieren). Danach EG neu starten. Wenn alles richtig funktioniert, sollten anschliessend keine Fehler (rote Texte) im Bildschirm-Log auftauchen.

Nach allen Änderungen an der EventGhost-Konfiguration empfiehlt es sich, EG jeweils zu beenden und neu zu starten.

 

Ich rate dringend davon ab, an der Konfiguration mit Ändern und "Verbessern" zu beginnen, bevor sie auf deinem HTPC nicht 100% läuft. Es ist viel einfacher, eine gut funktionierende Konfiguration zu ändern als eine nicht-funktionierende zum Laufen zu bringen. Für geänderte Konfigurationen kann ich keine Unterstützung anbieten.

 

Nach dieser unvermeidlichen Präambel sei auch erwähnt, dass EventGhost Konfigurationen sehr änderungsfreundlich sind. Wenn du die Konzepte und Funktionsweise von SuspendGhost begriffen hast, steht deinen Verbesserungsideen nichts im Weg.

 

Nun viel Spass mit EventGhost - EventGhost ist cool B)

SuspendGhost_1.3.0.zip

Edited by mrphlox
  • Like 3

Share this post


Link to post
mrphlox

Hallo

 

hier eine neue Version: Beim Suspend wird jetzt 'DVBViewer: Close Graph' aufgerufen, beim Resume 'DVBViewer: Rebuild Graph'. Ist nicht bei allen TV-Karten notwendig, aber "sicher ist besser" :)

 

@Mods: Eigentlich möchte ich das Attachment im ersten Post anhängen, damit es übersichtlich bleibt. Könnt ihr mir meinen Account oder diesen Beitrag so konfigurieren? Oder kann ich es schon, weiss aber nicht wie?

Share this post


Link to post
mrphlox

Hi again

 

die Version 1.0.1 von heute morgen, Schliessen des Graphen bei Suspend, Rebuild bei Resume, war nicht ganz zu Ende gedacht. Da in diesem Thread ja ohnehin noch nicht die Hölle los ist, ist es wohl nicht weiter schlimm... :whistle:

 

  • Wenn ich Live-TV schaue oder eine Aufnahme abspiele, soll das System keinesfalls automatisch in den Ruhezustand (Auto-Suspend). Auch will ich nicht mitten in einem Film einen Dialog wegclicken müssen in der Art "DVBViewer will shutdown this computer in xx seconds!"
  • Wenn der Recording Service eine Aufnahme beendet und ich schau nicht TV, soll natürlich ein Auto-Suspend erfolgen, das ist ja der Witz der Sache. Das heisst aber auch, dass der DVBViewer dann nicht laufen darf - sonst ist Auto-Suspend blockiert und der PC geht nach der Aufnahme nicht mehr in den Ruhezustand.

Fazit: DVBViewer muss beendet werden vor dem Suspend, und er darf auch nicht automatisch gestartet werden bei einem Resume. Bedeutet halt einen Tastendruck mehr auf der FB nach dem Einschalten, damit kann ich leben.

 

Mit dieser neuen Erkenntnis folgt Version 1.0.2, siehe erster Post :)

Share this post


Link to post
anjoku

Hallo :biggrin:

 

Danke, du hast genau das umgesetzt was ich beim DVBViewer auch vermisse.

die Version 1.0.1 von heute morgen, Schliessen des Graphen bei Suspend, Rebuild bei Resume, war nicht ganz zu Ende gedacht. Da in diesem Thread ja ohnehin noch nicht die Hölle los ist, ist es wohl nicht weiter schlimm... :whistle:

 

Das heisst, es funktioniert jetzt ? Werde nachher mal die Version installieren.

 

  • Wenn ich Live-TV schaue oder eine Aufnahme abspiele, soll das System keinesfalls automatisch in den Ruhezustand (Auto-Suspend). Auch will ich nicht mitten in einem Film einen Dialog wegclicken müssen in der Art "DVBViewer will shutdown this computer in xx seconds!"
Endlich :bounce::rotfl:
Wenn der Recording Service eine Aufnahme beendet und ich schau nicht TV, soll natürlich ein Auto-Suspend erfolgen, das ist ja der Witz der Sache. Das heisst aber auch, dass der DVBViewer dann nicht laufen darf - sonst ist Auto-Suspend blockiert und der PC geht nach der Aufnahme nicht mehr in den Ruhezustand.
..oder sehe einen Film/Aufnahme ..???

Fazit: DVBViewer muss beendet werden vor dem Suspend, und er darf auch nicht automatisch gestartet werden bei einem Resume. Bedeutet halt

einen Tastendruck mehr auf der FB nach dem Einschalten
, damit kann ich leben.

 

:rolleyes: Welcher Tastendruck mehr? Zum sarten von DVBViewer? Das heisst, dass Windows in den Desktop rein gestartet wird?

Ich weiß jetzt nicht ab das meiner Frau gefällt :unsure: , aber vielleicht kann ich es ja gut verkaufen :rolleyes:

 

 

Mit dieser neuen Erkenntnis folgt Version 1.0.2, siehe erster Post :)

 

Danke !!!!!!!

 

anjoku

Share this post


Link to post
anjoku

so ich habe gerade mal versucht es zu Hause zu installieren. Bin gerade nicht zu Hause, daher über Teamviewer.

 

Nachdem ich in EG die SuspendGhost-Config.xml geladen hatte, ist mir aufgefallen, dass dann ja meine EG Konfiguration zum Steuern vom DVBViewer fehlt :unsure: . Die benötige ich doch noch.

 

Wie kann ich denn beide zusammenführen?

Share this post


Link to post
mrphlox

Hi anjoku

Danke, du hast genau das umgesetzt was ich beim DVBViewer auch vermisse.

schön, dann sind wir ja schon zu zweit ... ;)

 

Das heisst, es funktioniert jetzt ? Werde nachher mal die Version installieren.

Ja, 1.0.2 ist bei mir jetzt eine Woche im täglichen Einsatz und hat sich für mich bewährt

 

:rolleyes: Welcher Tastendruck mehr? Zum sarten von DVBViewer? Das heisst, dass Windows in den Desktop rein gestartet wird?

Genau, du musst nach dem Resume den DVBViewer jeweils selbst mit der FB starten. Die Alternative wäre, auf Auto-Suspend zu verzichten und das Auslösen des Ruhezustands nach einer Aufnahme wieder dem Recording Service zu überlassen. Das hat natürlich auch zur Folge, dass mitten im gemütlichen Kino-Abend wieder der nervige "DVBViewer will shutdown!" Dialog kommt - den möcht ich weg haben :angry:

 

Nachdem ich in EG die SuspendGhost-Config.xml geladen hatte, ist mir aufgefallen, dass dann ja meine EG Konfiguration zum Steuern vom DVBViewer fehlt :unsure: . Die benötige ich doch noch.

Wie kann ich denn beide zusammenführen?

ja, ich selbst steuere den DVBV nicht über EG, der iMON Manager und Tüftler's Config erfüllen dazu ihren Zweck vollauf. Das Zusammenführen mit deiner bisherigen EG-Config sollte aber schon möglich sein: Öffne die alte Config, verschiebe (wenn nötig) alle Macros in einen Ordner, markiere den Ordner, Kopieren, neue Config öffnen, Einfügen. Meistens funktioniert das so. Andernfalls: starte EG mit der -debug Option (eventghost.exe -debug), dann erhältst du einen neuen Menupunkt 'Debug', hier findest du 'Export...' und 'Import...' (bei mir funktioniert allerdings Import nicht... :huh:)

 

Good luck :)

Share this post


Link to post
Dirk Hartstein

Hallo,

 

ich habe dieses Tool gemäß Anleitung installiert. Ich habe die vorhandene Konfig übernommen und nur den RS angepasst. Ich habe das Problem, dass nach 30 Minuten der PC in den Ruhezustand fahren sollte, es aber nicht macht.

 

Wenn ich den Ruhezustand über den RS einstelle, funktioniert alles gut, d.h. er fährt in den Ruhezustand und wacht selbstständig wieder auf.

 

Leider weiß ich nicht weiter. Ich habe Windows 7 Home Premium in der 64bit Ausführung.

 

LG

Dirk

Share this post


Link to post
doedelmaus

Hallo,

 

danke an mrphlox für diese Lösung. Gute Arbeit.

 

Ich verwende: EventGhost_0.3.7.r1494 und eine angepasste SuspendGhost_1.0.2

 

Leider habe ich seit dem Umstieg von Windows XP X64 auf Windows7 X64 folgendes Problem.

Hier der Log von EventGhost:

 

   Plugin: Microsoft MCE Remote
  Plugin: Standby Control
  Springe zu "Initialize" und kehre zurück
     Initialize
        Init variables
        Erzeuge Ereignis "System.UnIdle"
  Plugin: DVBViewer
Main.System.UnIdle
  OnSystemUnidle: Disable Suspend
     eg.globals.systemIsIdle = False
     Disable Suspend, System is not Idle
        Fehler in Befehl: "StandbyControl.InhibitStandbyByApplication(u'SystemIdle', False, 0, 600, False, 0, True)"
        Traceback (most recent call last) (1494):
          File "<string>", line 1, in <module>
        NameError: name 'StandbyControl' is not defined

 

 

Ich kenne mich nicht so gut mit "Phyton" und dem "Standby Control Plugin" aus, um diesen Fehler zu beheben.

Desshalb möchte ich hier um Hilfe bitten.

 

Danke

Share this post


Link to post
mrphlox

 

   
        NameError: name 'StandbyControl' is not defined

 

Hallo doedelmaus

 

"so aus der Ferne" sieht das für mich aus, dass das StandbyControl-Plugin nicht oder nicht richtig installiert ist. Findest du im 'plugins' Ordner deiner EventGhost-Installation ein Unterverzeichnis mit dem Namen 'StandbyControl'? Also zum Beispiel C:\Programme\EventGhost\plugins\StandbyControl ?(die Verzeichnisnamen können auf deinem PC auch etwas anders heissen). Im SuspendGhost ZIP-File (siehe mein erster Post) ist ein Unterordner 'plugins' enthalten, vielleicht diesen einfach nochmals in deine EventGhost-Installation reinkopieren.

 

hth, sonst nochmals melden

Share this post


Link to post
mrphlox

Ich habe dieses Tool gemäß Anleitung installiert. Ich habe die vorhandene Konfig übernommen und nur den RS angepasst. Ich habe das Problem, dass nach 30 Minuten der PC in den Ruhezustand fahren sollte, es aber nicht macht.

 

Hallo Dirk

 

sorry für die späte Antwort, ich war beruflich viel unterwegs.

 

Falls dein Problem noch offen ist: So wie es aussieht, verhindert irgend etwas den automatischen Standby. Entweder dein PC-System triggert den 'Idle' Event nicht, oder (und das halte ich für wahrscheinlicher) es sind nicht alle Bedingungen für Auto-Suspend erfüllt. Für weitere Tests empfehle ich dir, die 'Standby default time' (im StandbyControl Plugin) auf z.B. 3 Minuten zu setzen, und nach 5 Minuten einen Screenshot vom EventGhost Fenster zu machen und hier zu posten. Denke, dann sollten wir sehen, wo's klemmt.

 

hth

Share this post


Link to post
doedelmaus

hallo,

 

ich konnte meine Problem nur mit einer nochmaligen Anpassung der originalen SuspendGhost_1.0.2 lösen. Das genaue Problem konnte ich nicht finden. Nun fuktioniert es soweit.

Leider habe ich aber weitere Probleme mit dem Standby Control Plugin. Dabei wird der Ruhezustand durch "DVBViewerPlay" verhindert. Auch wenn ich die Wiedergabe eines Films über den DVBViewer beende oder auch den DVBViewer selbst beende, bleibt DVBViewerPlay gesetzt. Kann jemand das bestätigen? Ist meine verwendete Standby Control Plugin (Version 1.04.382) die aktuellste Version?

Share this post


Link to post
doedelmaus

Hallo,

 

ich muss meine Fehlermeldung präzisieren. "DVBViewerPlay" wird nur nicht zurückgenommen, wenn der DVBViewer über den Button des Windowsfenster geschlossen wird. Es fehlt also die Verknüpfung mit "DVBViewer.Close". Wenn ich nur wüsste, wo dieses Bit definiert ist? Kommt es direkt vom COM-API des DVBViewer und wie könnte man das zurücksetzen?

Share this post


Link to post
mrphlox

"DVBViewerPlay" wird nur nicht zurückgenommen, wenn der DVBViewer über den Button des Windowsfenster geschlossen wird. Es fehlt also die Verknüpfung mit "DVBViewer.Close". Wenn ich nur wüsste, wo dieses Bit definiert ist? Kommt es direkt vom COM-API des DVBViewer und wie könnte man das zurücksetzen?

Hallo doedelmaus

 

helfe gerne, sofern ich kann... aber ich verstehe deine Fehlermeldung nicht. Was meinst du mit "DVBViewerPlay" wird nicht zurückgenommen? Kannst du den Fehler anders / ausführlicher beschreiben?

Share this post


Link to post
doedelmaus

Hallo mrphlox,

 

danke für die schnelle Antwort. Dein SuspendGhost-Projekt habe ich benutzt um mich mit Eventghost vertraut zu machen.

Es ist also der erste Kontakt mit EG, dabei konnte ich sehr viel lernen. :wacko:(w00t):)

Für diese doch schon sehr umfangreiche Vorlage bin ich Dir sehr dankbar.

 

Ich verwende Windows7 64bit, DVBViewer Pro V4.8.0.1, Eventghost 0.3.7.r1494 und eine Version Deiner SuspendGhost. In meiner SuspendGhost-Version ist das iMON gegen das Microsoft MCE Remote-Vista/Win7 Plugin getauscht einige entsprechende Events ersetzt und der Zweig "TV" deaktiviert.

Den DVBViewer nutze ich mit einem großen LED-Fernseher. Dabei erfolgt die Bedienung mit der IR-Fernbedienung. Hier bestehen Probleme, wenn bei einer Wiedergabe einfach auf einen TV-Sender geschaltet wird. Auch bei der Verwendung des DVBViewer als kleines Fenster beim Arbeiten am Computer-Monitor besteht das Problem. Hier kommt es öfters vor das ich das Windowsfenster mit dem DVBViewer einfach schließe ohne darauf zu achten was der Viewer gerade wiedergibt. Nach geraumer Zeit wundere ich mich dann warum der PC immer noch an ist. Deshalb meine Fehlersuche.

Im Standby Control Plugin ( Version: 1.04.382) kann ich beobachten, dass wenn ich mit dem DVBViewer Aufnahmen oder Filme abspiele unter "Application name" ich nenne es mal eine Variable "DVBViewerPlay" auftaucht und Counter auf "1" gesetzt wird. Wenn ich im DVBViewer die Wiedergabe beende( Kontextmenü Stop-Button), geht "DVBViewerPlay" auch brav wieder auf "0". Soweit ist alles gut.

Schließe ich aber das Windowsfenster des DVBViewer während der Wiedergabe ( DVBViewerPlay ist 1) so bleibt "DVBViewerPlay" auf "1". Dieser Zustand bleibt solange erhalten bis ich DVBViewer erneut starte eine Wiedergabe abspiele und dann diese Wiedergabe (durch Drücken der STOP-Taste der IR-Bedienung oder Kontextmenü Stop-Button) beende. Erst dann wechselt "DVBViewerPlay" auf "0".

Das Problem ist also "DVBViewerPlay" bleibt gesetzt, wenn ich die Anwendung "DVBViewer" beende ohne die Wiedergabe vorher zu beenden. Dann geht mein Rechner nicht in den Ruhezustand. Ich kann den Ruhezustand dann auch erreichen, wenn ich im Standby Control Fenster "DVBViewerPLay" einfach lösche.

Ich dachte mir eine Lösung könnte das Event "DVBViewer.Close" sein mit dem ich dieses "DVBViewerPlay" auf "0" bringe. Aber wie?. Eine Variable "DVBViewerPlay" habe ich bisher nicht gefunden. Hier fehlt mir einfach das Wissen über das Zusammenspiel DVBViewer COM-API, Standby Control-Plugin und EG.

 

Den Zweig "TV" im Konfigurations-Baum habe ich deaktiviert, weil da das gleich Problem auftaucht nur mit "DVBViewerTV". Aber hier muß ich noch einiges ausprobieren.

Share this post


Link to post
doedelmaus

Hallo mrphlox,

 

Asche auf mein Haupt. :blush:

Du fängst das Event "DVBViewer.Close" schon im Makro "OnDvbViewerClose" ab. Hier sind auch die zwei gesuchten Befehle "Enable Suspend Play und .. TV". Wieder etwas gelernt, man darf nicht einfach etwas löschen, wenn man die Zusammenhänge noch nicht versteht. Jetzt funktioniert es auch bei mir.

Ist das von mir verwendete DVBViewer-Plugin (Version 2.0.1470) noch aktuell?

 

Danke :bye:

Share this post


Link to post
mrphlox

Hallo doedelmaus

 

wie man sieht, meine Reaktionszeiten sind sehr unterschiedlich... :rolleyes:

Bin froh, dass du den Fehler inzwischen selbst gefunden hast, ich wäre jetzt auch erst mal angestanden, vor allem weil ich deine Config nicht kenne.

 

Danke noch für die Blumen, aber es ist nicht alles auf meinem Mist gewachsen. Konzept und Umsetzung von SuspendGhost ist schon von mir, aber ich habe auch viel von anderen Configs abgeschaut und angepasst. So lernt man's halt am schnellsten.

Share this post


Link to post
test

ich hab' das hier mal probiert. So ganz funktioniert das bei mir noch nicht.

 

Das einzige was ich geändert habe ist:

- EventGhost: Ruhezustand durch Standby ersetzt

- iMON: Power in den Energieoptionen deaktiviert

 

wenn ich den Rechner jetzt per FB in den Standby schicke, geht er sofort in den Standby.

 

Wecke ich den Rechner wieder auf, sehe ich ein "und tschüss" OSD und dann beendet sich DVBViewer und das System geht in den Abwesenheitsmodus.

 

was mache ich falsch?

 

12:54:35   iMON.Power
12:54:35      OnPowerButton: Start Manual Suspend
12:54:35         Event 'Main.SuspendRequest' is fired by: 'eventghost.exe -e SuspendRequest'
12:54:35         Wenn Tastendruck länger als 2.0 s, gehe zu: OnForceSuspend: Start Forced Suspend
12:54:35         Springe zu "CheckManualSuspendConditions" und kehre zurück
12:54:35            CheckManualSuspendConditions
12:54:35               Springe zu "IsDvbvNotRecording" und kehre zurück
12:54:35                  IsDvbvNotRecording
12:54:35                     DVBViewer: Is Recording
12:55:23                     not eg.result
12:55:23               Wenn erfolgreich springe zu "IsDvbvNotRecordingSoon" und kehre zurück
12:55:23                  IsDvbvNotRecordingSoon
12:55:23                     Returns True if there's no recording starting within next XX minutes. Time to be configured in 'Initialize' macro!
12:55:23                     DVBViewer: Get date of next recording
12:55:24                     IsNotRecordingSoon
12:55:24                        Time till next recording in minutes:  554.589116665
12:55:24         Wenn erfolgreich springe zu "PerformSuspend"
12:55:24            PerformSuspend
12:55:24               OSD: Und tschüss...!
12:55:24               Warte: 2.0 s
12:55:26               Springe zu "DVBViewer: Close DVBViewer" und kehre zurück
12:55:26                  DVBViewer: Close DVBViewer
12:55:26                     DVBViewer: Close DVBViewer: True
12:55:27                        Unknown source: 00010000000000028C
12:55:27               eg.globals.gracefulReboot
12:55:27               Wenn erfolgreich springe zu "PerformReboot"
12:55:27               Rechner standby
12:55:27      OnRemote
12:55:27         Standby Control: Restart Suspend timer
12:55:27   DVBViewer.Action 6
12:55:27   System.Suspend
12:55:27      OnSystemSuspend
12:55:27         PrintSuspendDatetime
12:55:27            System suspend at  2012-01-08 12:55:27.748000
12:55:28   DVBViewer.Channel -1
12:55:28   DVBViewer.DisplayChange:MEDIA 'MEDIA'
12:55:28   DVBViewer.RenderPlaystateChange (2, 0)
12:55:28   DVBViewer.RendererChange 2
12:55:28   DVBViewer.PlaystateChange:STOP 'STOP'
12:55:28      OnDvbvPlaystate: STOP
12:55:28         Enable Suspend, Play is finished
12:55:28         eg.globals.dvbvIsPerforming  = False
12:55:28   DVBViewer.PlaybackEnd
12:55:28   DVBViewer.DisplayChange:NONE 'NONE'
12:55:28   DVBViewer.Close
12:55:28      OnDvbViewerClosed
12:55:28         Enable Suspend Play: DVBViewer closed
12:55:28         Enable Suspend TV: DVBViewer closed
12:55:28         eg.globals.dvbvIsPerforming  = False
12:55:28   System.ResumeAutomatic
12:55:28   System.Resume
12:55:28      OnSystemResume: Re-Initialize
12:55:28         PrintResumeDatetime
12:55:28            System resume at  2012-01-08 12:55:28.228000
12:55:28         Springe zu "Initialize" und kehre zurück
12:55:28            Initialize
12:55:28               Init variables
12:55:28               Erzeuge Ereignis "System.UnIdle"
12:55:28   Main.System.UnIdle
12:55:28      OnSystemUnidle: Disable Suspend
12:55:28         eg.globals.systemIsIdle = False
12:55:28         Disable Suspend, System is not Idle

 

es kam bis jetzt auch manchmal vor, daß die Power Taste auf der FB nichts machte, im EG keinerlei Events ankamen, ich mußte dann EventGhost öffnen, dann wieder minimieren, dann zum DVBViewer switchen und dann reagierte die Power Taste der FB wieder.

Edited by test

Share this post


Link to post
test

ebenso funktioniert das auto-suspend/standby nicht. Ich sehe den OSD Countdown, der zählt normal runter, danach passiert nichts.

 

12:30:48   System.Idle
12:30:48      OnSystemIdle: Enable Suspend
12:30:48         eg.globals.systemIsIdle = True
12:30:48         Standby Control: Enable Suspend by application: SystemIdle
12:37:28   System.UnIdle
12:37:28      OnSystemUnidle: Disable Suspend
12:37:28         eg.globals.systemIsIdle = False
12:37:28         Disable Suspend, System is not Idle
12:38:51   System.Idle
12:38:51      OnSystemIdle: Enable Suspend
12:38:51         eg.globals.systemIsIdle = True
12:38:51         Standby Control: Enable Suspend by application: SystemIdle
12:41:02   DVBViewerService.NumberOfClientsChanged 1
12:41:02      OnDvbvNewStreamStarted
12:41:02         Disable Suspend: Streaming started
12:41:02         eg.globals.dvbvIsStreaming  = True
12:42:04   DVBViewerService.NoClientActive
12:42:04      OnDvbvAllStreamsFinished
12:42:04         Enable Suspend: Streaming finished
12:42:04         eg.globals.dvbvIsStreaming  = False
12:45:04   StandbyControl.Trigger
12:45:04      OnStandbyControlTrigger: Start Graceful Suspend
12:45:04         Springe zu "CheckAutoSuspendConditions" und kehre zurück
12:45:04            CheckAutoSuspendConditions
12:45:04               Springe zu "IsSystemIdle" und kehre zurück
12:45:04                  IsSystemIdle
12:45:04                     eg.globals.systemIsIdle
12:45:04               Wenn erfolgreich springe zu "IsDvbvNotRecording" und kehre zurück
12:45:04                  IsDvbvNotRecording
12:45:04                     DVBViewer: Is Recording
12:45:05                     not eg.result
12:45:05               Wenn erfolgreich springe zu "IsDvbvNotRecordingSoon" und kehre zurück
12:45:05                  IsDvbvNotRecordingSoon
12:45:05                     Returns True if there's no recording starting within next XX minutes. Time to be configured in 'Initialize' macro!
12:45:05                     DVBViewer: Get date of next recording
12:45:06                     IsNotRecordingSoon
12:45:06                        Time till next recording in minutes:  564.889616668
12:45:06               Wenn erfolgreich springe zu "IsDvbvNotStreaming" und kehre zurück
12:45:06                  IsDvbvNotStreaming
12:45:06                     not eg.globals.dvbvIsStreaming
12:45:06               Wenn erfolgreich springe zu "IsDvbvNotEpgUpdating" und kehre zurück
12:45:06                  IsDvbvNotEpgUpdating
12:45:06                     not eg.globals.dvbvIsUpdatingEPG
12:45:06               Wenn erfolgreich springe zu "IsDvbvNotPerforming" und kehre zurück
12:45:06                  IsDvbvNotPerforming
12:45:06                     not eg.globals.dvbvIsPerforming
12:45:06               Wenn erfolgreich springe zu "IsMonitoredProcessNotRunning" und kehre zurück
12:45:06                  IsMonitoredProcessNotRunning
12:45:06                     Standby Control: IsMonitoredProcessRunning
12:45:06                     not eg.result
12:45:06         Wenn erfolgreich springe zu "StartRelaxedOsdCountdown"
12:45:06            StartRelaxedOsdCountdown
12:45:06               Aktiviere: OnCancelOSDCountdown
12:45:06               Standby Control: CancelOSDCountDown
12:45:06               CountDownOSD: Standby in %c% sec, Abbruch durch beliebige Taste
12:45:06               Verwerfe alle ausstehenden Ereignisse
12:45:06               Beende Bearbeitung dieses Ereignisses
12:45:10   DVBViewerService.NumberOfClientsChanged 1
12:45:10      OnDvbvNewStreamStarted
12:45:10         Disable Suspend: Streaming started
12:45:10         eg.globals.dvbvIsStreaming  = True
12:46:07   StandbyControl.RelaxedOsdCountdownFinished
12:46:07      OnRelaxedOsdCountdownFinished: Perform Suspend
12:46:07         Springe zu "CheckAutoSuspendConditions" und kehre zurück
12:46:07            CheckAutoSuspendConditions
12:46:07               Springe zu "IsSystemIdle" und kehre zurück
12:46:07                  IsSystemIdle
12:46:07                     eg.globals.systemIsIdle
12:46:07               Wenn erfolgreich springe zu "IsDvbvNotRecording" und kehre zurück
12:46:07                  IsDvbvNotRecording
12:46:07                     DVBViewer: Is Recording
12:46:08                     not eg.result
12:46:08               Wenn erfolgreich springe zu "IsDvbvNotRecordingSoon" und kehre zurück
12:46:08                  IsDvbvNotRecordingSoon
12:46:08                     Returns True if there's no recording starting within next XX minutes. Time to be configured in 'Initialize' macro!
12:46:08                     DVBViewer: Get date of next recording
12:46:09                     IsNotRecordingSoon
12:46:09                        Time till next recording in minutes:  563.833783333
12:46:09               Wenn erfolgreich springe zu "IsDvbvNotStreaming" und kehre zurück
12:46:09                  IsDvbvNotStreaming
12:46:09                     not eg.globals.dvbvIsStreaming
12:46:09               Wenn erfolgreich springe zu "IsDvbvNotEpgUpdating" und kehre zurück
12:46:09               Wenn erfolgreich springe zu "IsDvbvNotPerforming" und kehre zurück
12:46:09               Wenn erfolgreich springe zu "IsMonitoredProcessNotRunning" und kehre zurück
12:46:09         Wenn erfolgreich springe zu "PerformSuspend"
12:46:12   DVBViewerService.NoClientActive
12:46:12      OnDvbvAllStreamsFinished
12:46:12         Enable Suspend: Streaming finished
12:46:12         eg.globals.dvbvIsStreaming  = False
12:46:35   System.UnIdle
12:46:35      OnSystemUnidle: Disable Suspend
12:46:35         eg.globals.systemIsIdle = False
12:46:35         Disable Suspend, System is not Idle
12:46:35      OnCancelOSDCountdown
12:46:35         Standby Control: CancelOSDCountDown
12:46:35         Deaktiviere: OnCancelOSDCountdown

Share this post


Link to post
mrphlox

ich hab' das hier mal probiert. So ganz funktioniert das bei mir noch nicht.

Keine Sorge, das kriegen wir schon hin :)

 

wenn ich den Rechner jetzt per FB in den Standby schicke, geht er sofort in den Standby.

 

Wecke ich den Rechner wieder auf, sehe ich ein "und tschüss" OSD und dann beendet sich DVBViewer und das System geht in den Abwesenheitsmodus.

Es sieht ganz danach aus, dass nicht nur SuspendGhost, sondern sonst noch "jemand" den Power-Befehl von der Fernbedienung empfängt und verarbeitet. Dieser Lümmel ist schneller (SuspendGhost zeigt ja noch 2 sec lang "und tschüss..." an), fährt den Rechner herunter und nach dem Resume macht SuspendGhost da weiter, wo er aufgehört hat - und fährt den Rechner erneut herunter.

 

Ich würde folgendes tun:

- Double check deine iMON Konfiguration

- EventGhost beenden (File > Exit)

- Powertaste an der FB drücken -> fährt der Rechner jetzt wieder runter? -> Falls ja, dann musst du den "jemand" suchen, der den Befehl empfangen und verarbeitet hat... wobei ich mir fast nur die iMON Config vorstellen kann

 

es kam bis jetzt auch manchmal vor, daß die Power Taste auf der FB nichts machte, im EG keinerlei Events ankamen, ich mußte dann EventGhost öffnen, dann wieder minimieren, dann zum DVBViewer switchen und dann reagierte die Power Taste der FB wieder.

So wirklich erklären kann ich das aus der Ferne auch nicht. Sieht für mich danach aus, dass sich da etwas "verklemmt" hat. Meine Erfahrung: Wenn man etwas an der Konfiguration geändert hat, schadet es nichts, EventGhost zu beenden und neu zu starten. Nicht alle Plugins initialisieren sich sauber nach einer Config-Änderung. Gleiches gilt übrigens auch für den iMON-Manager; hier habe ich sogar einen AutoIt-Task entwickelt, der den iMON-Manager nach jedem Resume killt und neu startet. Seither habe ich weniger Probleme mit der iMON-FB.

 

ebenso funktioniert das auto-suspend/standby nicht. Ich sehe den OSD Countdown, der zählt normal runter, danach passiert nichts.

 

12:45:10   DVBViewerService.NumberOfClientsChanged 1
12:45:10      OnDvbvNewStreamStarted
12:45:10         Disable Suspend: Streaming started
12:45:10         eg.globals.dvbvIsStreaming  = True

Hier läuft - technisch gesehen - alles korrekt.

- Das System ist Idle und die Suspend-Bedingungen sind alle erfüllt

- Der OSD-Countdown beginnt

- Der RS meldet, dass ein Streaming-Client begonnen hat. Mögliche Ursache: DVBViewer in der Zwischenzeit nochmals gestartet? Falls nein -> diese Notifikation kommt auch bei mir manchmal/selten, obschon mit Sicherheit kein Streamingclient aktiv ist - ich bin mir nicht sicher, unter welchen Bedingungen (nebst dem Starten von DVBViewer) diese Notifikation verschickt wird. Falls es (wie bei mir) relativ selten passiert, ist es nicht weiter schlimm, der Standby verschiebt sich einfach nochmals um eine Periode.

- Weil die Suspend-Bedingungen nicht mehr erfüllt sind, bricht SuspendGhost den Vorgang ab, d.h. er wartet, bis alle Suspend-Bedingungen wieder erfüllt sind.

 

Damit du einen Schritt weiter kommst, könntest du folgendes tun:

- In der SuspendGhost Konfiguration den Ordner "Eventhandling > DVBViewer Events > Streaming" suchen

- Auf diesem Ordner "Rechte Maustaste > Disable Item" auswählen -> der Ordner "Streaming" hat jetzt ein rotes Kreuz

- Das Item "Subroutines > Checkroutines > BasicChecks > IsDvbvNotStreaming" suchen

- Auf diesem Item "Rechte Maustaste > Disable Item" auswählen -> das Item "IsDvbvNotStreaming" hat jetzt ein rotes Kreuz (siehe weiter unten)

- EventGhost neu starten (zur Sicherheit)

 

Mit dieser Einstellung wird die Bedingung, dass kein Streaming-Client aktiv ist, deaktiviert. Es steht dir frei, ob du sie später wieder aktivieren willst. Auf jeden Fall sollte jetzt der Auto-Suspend funktionieren, falls nicht, melde dich einfach wieder.

 

Ich werde übrigens in Kürze eine neue Version von SuspendGhost hochladen; sie ändert konzeptionell zwar nichts, aber verbessert das Logging und erleichtert damit die Fehlersuche. Ausserdem habe ich Bugs in einem verwendeten EG-Plugin korrigiert. Muss das Ganze aber noch sauber vorbereiten, vor ich es hochlade.

Edited by mrphlox

Share this post


Link to post
test

Keine Sorge, das kriegen wir schon hin :)

Danke :)

 

Es sieht ganz danach aus, dass nicht nur SuspendGhost, sondern sonst noch "jemand" den Power-Befehl von der Fernbedienung empfängt und verarbeitet. Dieser Lümmel ist schneller (SuspendGhost zeigt ja noch 2 sec lang "und tschüss..." an), fährt den Rechner herunter und nach dem Resume macht SuspendGhost da weiter, wo er aufgehört hat - und fährt den Rechner erneut herunter.

 

Ich würde folgendes tun:

- Double check deine iMON Konfiguration

- EventGhost beenden (File > Exit)

- Powertaste an der FB drücken -> fährt der Rechner jetzt wieder runter? -> Falls ja, dann musst du den "jemand" suchen, der den Befehl empfangen und verarbeitet hat... wobei ich mir fast nur die iMON Config vorstellen kann

wenn ich EG beende, dann kommt das berühmte BEEP vom iMON, daß für die Taste nichts zu tun ist, sprich, das System geht nicht in den Standby oder macht sonst irgendetwas. EG ist einziger der dann etwas machen würde.

Share this post


Link to post
mrphlox

wenn ich EG beende, dann kommt das berühmte BEEP vom iMON, daß für die Taste nichts zu tun ist, sprich, das System geht nicht in den Standby oder macht sonst irgendetwas. EG ist einziger der dann etwas machen würde.

habe dein Logfile nochmals genauer angesehen... ich glaube, ich weiss wo der Wurm steckt: "DVBViewer > Optionen > Allgemein > Beenden > Folgende Aktion beim Beenden per Fernbedienung ausführen": dort muss es heissen "DVBViewer beenden" - könnte es sein, dass bei dir jetzt "Standby" drin steht? - Ist natürlich ein wichtiger Hinweis für die Installationsanleitung, werde das ergänzen.

 

War es das?

 

Dann habe ich gestern noch Mist erzählt.

Statt:

- Das Item "Subroutines > Checkroutines > BasicChecks > IsDvbvNotStreaming" suchen

- Auf diesem Item "Rechte Maustaste > Disable Item" auswählen -> das Item "IsDvbvNotStreaming" hat jetzt ein rotes Kreuz

sollte es heissen:

- Das Item "Subroutines > Checkroutines > CheckAutoSuspendConditions > If successful jump to "IsDvbvNotStreaming" and return" suchen

- Auf diesem Item "Rechte Maustaste > Disable Item" auswählen -> das Item hat jetzt ein rotes Kreuz

Share this post


Link to post
mrphlox

Habe soeben die neue Version 1.0.3 hochgeladen.

 

Major changes:

  • Dokumentation überarbeitet
  • Struktur bereinigt und Logging verbessert
  • Korrektur eines verwendeten Plugins

 

Download im 1. Beitrag

Share this post


Link to post
test

Moin mrphlox,

habe dein Logfile nochmals genauer angesehen... ich glaube, ich weiss wo der Wurm steckt: "DVBViewer > Optionen > Allgemein > Beenden > Folgende Aktion beim Beenden per Fernbedienung ausführen": dort muss es heissen "DVBViewer beenden" - könnte es sein, dass bei dir jetzt "Standby" drin steht? - Ist natürlich ein wichtiger Hinweis für die Installationsanleitung, werde das ergänzen.

 

War es das?

Ja, das war's, danke! Hätte ich auch drauf kommen können, aber manchmal sieht man den Wald vor ... und wenn man sich Stunden mit dem Kram am Stück beschäftigt sowieso nicht mehr ;->

 

Wie startest Du den DVBViewer beim Resume denn neu? Über das Auto-It Skript oder wie machst Du das?

Share this post


Link to post
test

- Der RS meldet, dass ein Streaming-Client begonnen hat. Mögliche Ursache: DVBViewer in der Zwischenzeit nochmals gestartet? Falls nein -> diese Notifikation kommt auch bei mir manchmal/selten, obschon mit Sicherheit kein Streamingclient aktiv ist - ich bin mir nicht sicher, unter welchen Bedingungen (nebst dem Starten von DVBViewer) diese Notifikation verschickt wird. Falls es (wie bei mir) relativ selten passiert, ist es nicht weiter schlimm, der Standby verschiebt sich einfach nochmals um eine Periode.

- Weil die Suspend-Bedingungen nicht mehr erfüllt sind, bricht SuspendGhost den Vorgang ab, d.h. er wartet, bis alle Suspend-Bedingungen wieder erfüllt sind.

also, es läuft definitiv kein Client, weder lokal auf dem HTPC noch remote auf einem anderen Rechner noch irgendein SmartPhone oder ähnliches. Dennoch kommt immer die Meldung, daß sich ein Client connected hat, und irgendwann wieder disconnected hat, sprich 0 Clients verbunden. Sehr kurios.

 

Desweiteren geht das System nicht automatisch in den Standby. Erst der "2te" Durchlauf bewirkt etwas, allerdings kein Standby sondern Abwesenheitsmodus.

 

Ich benutze Deine neue Version v1.03.

Share this post


Link to post
mrphlox

gut :) einen weniger

 

Wie startest Du den DVBViewer beim Resume denn neu? Über das Auto-It Skript oder wie machst Du das?

Immer über die FB (s.a. 'Drawbacks' im 1. Post). Wobei ich da grad eine Idee hatte... eigentlich könnte man EG den DVBViewer nach Resume starten lassen. Dann wird eine OSD Message angezeigt und die müsste der Anwender z.B. innert 5 Minuten mit einer beliebigen Taste quittieren, ansonsten wird DVBViewer wieder geschlossen. Dadurch wäre der Auto-Suspend nicht mehr blockiert.

Share this post


Link to post
mrphlox

also, es läuft definitiv kein Client, weder lokal auf dem HTPC noch remote auf einem anderen Rechner noch irgendein SmartPhone oder ähnliches. Dennoch kommt immer die Meldung, daß sich ein Client connected hat, und irgendwann wieder disconnected hat, sprich 0 Clients verbunden. Sehr kurios.

Desweiteren geht das System nicht automatisch in den Standby. Erst der "2te" Durchlauf bewirkt etwas, allerdings kein Standby sondern Abwesenheitsmodus.

Dass es erst im zweiten Anlauf klappt, hat wahrscheinlich mit dem "Ghost-Client" zu tun. Wie gesagt, ich beobachte das bei mir auch, ich kann aber nicht sagen, wann und warum diese Notifikation kommt, das wüssten vielleicht die Entwickler vom DVBViewer. Hat es vielleicht etwas mit dem EPG-Update zu tun? Solange der Client sich innert nützlicher Frist auch wieder abmeldet ('DVBViewerService.NoClientActive') würde ich mir noch nicht den Kopf darüber zerbrechen.

 

Dass das System in den Abwesenheitsmodus geht, ist Standard-Verhalten seit Vista, wenn eine Applikation den Standby aufhält. Griga hat das in diesem Thread super beschrieben. Du könntest statt dessen den Ruhezustand verwenden, der wird immer ausgeführt. Oder in den Energieoptionen den Abwesenheitsmodus nicht zulassen, das müsste auch gehen.

Share this post


Link to post
test

schade, daß es keine Option im DVBViewer gibt, daß beim Beenden einfach nichts gemacht werden soll. Ich würde das Ding nämlich einfach gerne laufen lassen.

Share this post


Link to post
mrphlox

Weiss nicht, ob ich dich richtig verstehe: Dass der DVBViewer beim Drücken der Powertaste (oder einer anderen) auf der FB sich selbst nicht beendet, liesse sich problemlos einrichten: Einfach in den Optionen bei den Tastatur-Shortcuts den Shortcut für 'Beenden' entfernen.

 

Ein permanent laufender DVBViewer steht jedoch im Widerspruch zu Auto-Suspend, d.h. das System geht nicht mehr automatisch in den Ruhezustand/Standby z.B. nach einer Aufnahme. Auto-Suspend hat für mich Vorrang.

Share this post


Link to post
test

ok, probier ich mal die Belegung zu löschen.

 

aber das System geht sehr wohl in den Standby/Suspend wenn der DVBViewer läuft?

 

grade 3x gesehen :)

 

also läuft as in er ist gestartet, macht aber nichts.

Edited by test

Share this post


Link to post
test

ich mache halt beim Drücken von Standby ein Stop Graph und sonst nichts. Und den letzten Channel tunen beim Neustarten mache ich auch nicht, weil da nichts laufen muß, wenn der Recording Service irgendeine Aufnahmen macht und ansonsten niemand schaut oder so, sprich, man muß selbst händisch einen Kanal wählen, wenn das System aus dem Standby kommt, oder woher auch immer kommt ;)

 

kann man evtl. noch etwas einbauen, daß wenn man per RDP auf dem HTPC ist, Standby nicht greift, und, daß EventGhost den DVBViewer NICHT startet wenn ich per RDP drauf bin, nur weil EG meint, daß DVBViewer nicht läuft (es läuft in der RDP Session auch nicht) ...

Share this post


Link to post
mrphlox

ach so, ja Stop Graph geht auch. Rein aus Interesse: Was ist besser an Stop Graph gegenüber Programm beenden?

 

Nehme an, du sprichst von Windows Remote Desktop? Das einfachste / beste wäre, wenn während des Remote-Zugriffs ein zusätzliches Programm laufen würde, dieses könntest du im StandbyControl Plugin als Blocker-Programm eintragen - ich vermute aber, dass das bei RDP nicht automatisch der Fall ist. Ich verwende TeamViewer für Remote-Zugriff. Da TeamViewer.exe immer läuft, ist es als Blocker-Programm ungeeignet. Ich starte dann halt in einer Remote-Session zusätzlich eines der konfigurierten Blocker-Programm (z.B. einen Bildbetrachter).

Share this post


Link to post
test

noch etwas. Bin gerade via DameWare auf dem HTPC, habe DWRCST.EXE in die Prozessliste gepackt, damit, wenn der Prozess aktiv ist, das System nicht in den automatischen Standby geht. Es geht auch nicht in den Standby, aber das Logging irritiert irgendwie, oder?

 

17:26:48   System.Idle
17:26:48      OnSystemIdle: Enable Suspend
17:26:48         eg.globals.systemIsIdle = True
17:26:48            2012-01-10 17:26:48.003000 eg.globals.systemIsIdle = True
17:26:48         Standby Control: Enable Suspend by application: SystemIdle
17:29:08   System.UnIdle
17:29:08      OnSystemUnidle: Disable Suspend
17:29:08         eg.globals.systemIsIdle = False
17:29:08            2012-01-10 17:29:08.826000 eg.globals.systemIsIdle = False
17:29:08         Disable Suspend, System is not Idle

Edited by test

Share this post


Link to post
mrphlox

Dieser Log-Output hat nichts mit dem Blocker-Prozess zu tun. Der 'Unidle' Event kommt - vermute ich mal - von einem Maus- oder Tastatur-Input. Deinen Blocker-Prozess wirst du erst nach Idle+5 Minuten im Log sehen:

 

IsMonitoredProcessRunning

DWRCST.EXE is running

...

Share this post


Link to post
test

ja, schon klar :) aber

 

17:26:48   System.Idle
17:26:48      OnSystemIdle: Enable Suspend
17:26:48         eg.globals.systemIsIdle = True
17:26:48            2012-01-10 17:26:48.003000 eg.globals.systemIsIdle = True
17:26:48         Standby Control: Enable Suspend by application: SystemIdle

 

besagt doch, daß das System idle ist und in den Suspend gehen möchte, oder nicht?

Share this post


Link to post
test

ach so, ja Stop Graph geht auch. Rein aus Interesse: Was ist besser an Stop Graph gegenüber Programm beenden?

nicht viel, außer das der DVBViewer beim Resume direkt da ist, er sich ebenso die letzte Position des laufenden Senders gemerkt hat und was eigentlich der Hauptgrund war, warum ich das so gemacht habe ist, daß sich DVBViewer beim Starten nach dem Resume oftmals weg gehangen hat und/oder eine Exception geworfen hat und ich den Viewer händisch neu starten muß und ich nach Tagelangem herumprobieren keine Situation hatte, bei der es immer reibungslos funktionierte, z.B. mit Warte X Sekunden bevor Y starten usw.

 

Nehme an, du sprichst von Windows Remote Desktop? Das einfachste / beste wäre, wenn während des Remote-Zugriffs ein zusätzliches Programm laufen würde, dieses könntest du im StandbyControl Plugin als Blocker-Programm eintragen - ich vermute aber, dass das bei RDP nicht automatisch der Fall ist.

Jep, Remote Desktop. Habe rausgefunden, daß bei einer RDP Session das Programm rdpclip.exe läuft und hab' das in die Blocker-Liste gepackt :)

 

Ich denke, daß läuft jetzt alles so wie ich's gerne hätte.

 

Vielen Dank für Deine tolle EventGhost Config! :-D

Share this post


Link to post
mrphlox

Der Idle Event sagt lediglich, dass das System eine Weile unbenützt war - jetzt erst beginnt der Idle-Timer zu laufen. Nur wenn das System weitere 300 sec (= Einstellung im StandbyControl Plugin) unbenützt bleibt (d.h. kein Unidle Event kommt) und alle weiteren Auto-Suspend-Bedingungen erfüllt sind, beginnt der OSD Countdown.

 

Gerne doch, viel Spass

Share this post


Link to post
test

Dass es erst im zweiten Anlauf klappt, hat wahrscheinlich mit dem "Ghost-Client" zu tun. Wie gesagt, ich beobachte das bei mir auch, ich kann aber nicht sagen, wann und warum diese Notifikation kommt, das wüssten vielleicht die Entwickler vom DVBViewer. Hat es vielleicht etwas mit dem EPG-Update zu tun? Solange der Client sich innert nützlicher Frist auch wieder abmeldet ('DVBViewerService.NoClientActive') würde ich mir noch nicht den Kopf darüber zerbrechen.

kann es vielleicht sein, daß EG selbst als Client gezählt wird weil der sich ja auch via Plugin zum Recording Service verbindet?

 

folgendes sehe ich im Log, derzeit läuft gerade eine Aufnahme via Recording Service:

 

2012-01-11 13:45:56  EVENT: DVBViewerService.NumberOfClientsChanged 1
2012-01-11 13:45:56     MACRO: OnDvbvNewStreamStarted
2012-01-11 13:45:56        ACTION: Disable Suspend: Streaming started
2012-01-11 13:45:56        ACTION: eg.globals.dvbvIsStreaming  = True
2012-01-11 13:46:56  EVENT: DVBViewer.DVBViewerEventHandlingNotAlive
2012-01-11 13:46:58  EVENT: DVBViewerService.NoClientActive
2012-01-11 13:46:58     MACRO: OnDvbvAllStreamsFinished
2012-01-11 13:46:58        ACTION: Enable Suspend: Streaming finished
2012-01-11 13:46:58        ACTION: eg.globals.dvbvIsStreaming  = False
2012-01-11 13:47:58  EVENT: DVBViewer.DVBViewerEventHandlingNotAlive
2012-01-11 13:49:01  EVENT: DVBViewer.DVBViewerEventHandlingNotAlive
2012-01-11 13:50:03  EVENT: DVBViewer.DVBViewerEventHandlingNotAlive
2012-01-11 13:51:05  EVENT: DVBViewer.DVBViewerEventHandlingNotAlive
2012-01-11 13:52:07  EVENT: DVBViewer.DVBViewerEventHandlingNotAlive
2012-01-11 13:52:09  EVENT: DVBViewerService.NumberOfClientsChanged 1
2012-01-11 13:52:09     MACRO: OnDvbvNewStreamStarted
2012-01-11 13:52:09        ACTION: Disable Suspend: Streaming started
2012-01-11 13:52:09        ACTION: eg.globals.dvbvIsStreaming  = True
2012-01-11 13:53:09  EVENT: DVBViewer.DVBViewerEventHandlingNotAlive
2012-01-11 13:53:11  EVENT: DVBViewerService.NoClientActive
2012-01-11 13:53:11     MACRO: OnDvbvAllStreamsFinished
2012-01-11 13:53:11        ACTION: Enable Suspend: Streaming finished
2012-01-11 13:53:11        ACTION: eg.globals.dvbvIsStreaming  = False
2012-01-11 13:54:11  EVENT: DVBViewer.DVBViewerEventHandlingNotAlive
2012-01-11 13:55:13  EVENT: DVBViewer.DVBViewerEventHandlingNotAlive
2012-01-11 13:55:15  EVENT: DVBViewerService.NumberOfClientsChanged 1
2012-01-11 13:55:15     MACRO: OnDvbvNewStreamStarted
2012-01-11 13:55:15        ACTION: Disable Suspend: Streaming started
2012-01-11 13:55:15        ACTION: eg.globals.dvbvIsStreaming  = True
2012-01-11 13:56:15  EVENT: DVBViewer.DVBViewerEventHandlingNotAlive
2012-01-11 13:56:17  EVENT: DVBViewerService.NoClientActive
2012-01-11 13:56:17     MACRO: OnDvbvAllStreamsFinished
2012-01-11 13:56:17        ACTION: Enable Suspend: Streaming finished
2012-01-11 13:56:17        ACTION: eg.globals.dvbvIsStreaming  = False
2012-01-11 13:57:18  EVENT: DVBViewer.DVBViewerEventHandlingNotAlive
2012-01-11 13:58:20  EVENT: DVBViewer.DVBViewerEventHandlingNotAlive
2012-01-11 13:58:22  EVENT: DVBViewerService.NumberOfClientsChanged 1
2012-01-11 13:58:22     MACRO: OnDvbvNewStreamStarted
2012-01-11 13:58:22        ACTION: Disable Suspend: Streaming started
2012-01-11 13:58:22        ACTION: eg.globals.dvbvIsStreaming  = True
2012-01-11 13:59:22  EVENT: DVBViewer.DVBViewerEventHandlingNotAlive
2012-01-11 13:59:24  EVENT: DVBViewerService.NoClientActive
2012-01-11 13:59:24     MACRO: OnDvbvAllStreamsFinished
2012-01-11 13:59:24        ACTION: Enable Suspend: Streaming finished
2012-01-11 13:59:24        ACTION: eg.globals.dvbvIsStreaming  = False

Share this post


Link to post
mrphlox

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.

 

Die Bezeichnung 'eg.globals.dvbvIsStreaming' in der aktuellen SG-Config ist also etwas irreführend, werde sie in der nächsten Version nach 'eg.globals.dvbvHasActiveClients' umbenennen.

Share this post


Link to post
test

ok :)

Share this post


Link to post
test

tja, wie heißt es so schön, ob's funktioniert oder nicht zeigt der Live Betrieb nach einiger Zeit, und ich muß sagen, daß das alles nicht wirklich funktioniert wie man sich das wünscht.

 

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

 

- oftmals funktioniert nach einiger Zeit TV schauen die Power Taste der FB nicht. Das Signal kommt beim EG an (iMON.Power) und mehr nicht. Dann muß man das paarmal hintereinander drücken, dann geht das System auch irgendwann in den Standby mit der Meldung "und tschüss". Man kann das Verhalten auch sofort wiederhaben, wenn man EG kurz in den Vordergrund holt, wieder minimiert und zum DVBViewer oder wohin auch immer zurück kehrt.

 

- manchmal funktioniert nach 1x Standby/Resume das ganze EventGhost nicht mehr, drum hab' ich mich entschieden, daß nach einem Resume neu starten zu lassen, via "Windows Aufgabe bei Ereignis" - Warum auch immer startet es _IMMER_ im Vordergrund und immer visible, trotz -hide option, trotz nircmd exec2 hide, start /MIN and whatnot. Sprich wieder irgendwo ein Skript zwischen fummeln was das wieder minimiert und DVBViewer in den Vordergrund holt. Das passiert _NUR_ nach einem Resume, und auch _NUR_ 1x. Mache ich das nach einem Resume händisch kommt der gleiche Effekt. Mache ich das danach direkt nochmal, funktionierts!?!??!

 

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 ;-(

Share this post


Link to post

Join the conversation

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

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