Status shutdown-in-progress für einen PC

Begonnen von Doggiebert, 30 Oktober 2014, 14:46:41

Vorheriges Thema - Nächstes Thema

Doggiebert

Hallo zusammen,
ich hab' nicht wirklich ein unlösbares Problem, wollte aber mal in die Runde der erfahrenen Experten fragen, wie Ihr sowas lösen würdet - gibt ja immer mehrere Wege, was umzusetzen. Ich brauch keinen code, den schaff ich dann schon selber, nur ein wenig Beratung, wie ich's am elegantesten löse.
Also: ich hab' nen PC (überwacht per PRESENCE), den kann ich per powerCmd(eventghost) runterfahren, und der hängt an einer schaltbaren Enocean-Steckdose. Funktioniert alles wunderbar, nun würde ich das Ganze gerne kombinieren:  D.h. PC runterfahren, warten bis er unten ist, und dann die Steckdose ausmachen. Ich würde auch gerne den "echten" Status des PC sehen, also nicht nur on oder off, sondern auch "shutdown in progress".

Für mein Presence Device hätte ich jetzt 2 Möglichkeiten ausgelotet:

  • neues Status dummy device, das mir den Status aus Presence und einer variablen "shutdown_in_progress" zu dem echten Status kombiniert; das muss ich dann per notify aktuell halten, und eine Funktion zum Ein- und Ausschalten spendieren.
  • Oder alternativ dazu dem PC presence einen weiteren Status spendieren, und statt der Standard-Ping-Methode über eine eigene Methode den Status aktualisieren? Ein-/Ausschalten ganz normal über das PRESENCE powerCmd. Btw, gäb's eigentlich eine Methode, um von einem Windows PC abzufragen, ob er gerade im Shutdown ist?
Was erscheint Euch da sinnvoller? Das PC-Statusmodell würde ich später ggf. ausweiten, um z.B. Wartungsarbeiten wie z.B. Updates auch definiert zu fahren, und nicht, wenn ich gerade mit dem Ding arbeiten will.

Die restlichen Aufgaben erscheinen mir straight forward:

  • Steckdose ausschalten dann vermutlich auf den event-on-status-change. Eine shutdownvariable brauch ich in jedem Fall, weil ich sonst automatisch auch den NAS (hängt an der gleichen Dose) stromlos mache, wenn ich gerade nur den PC runterfahren will.
  • Einen Not-Aus brauch ich auch noch, d.h. wenn der Shutdown länger als ne Viertelstunde braucht, dennoch Strom weg. Vermutlich dafür einfach einen Watchdog aufziehen? Eigentlich müsste aber auch ein at reichen, ein zweites Mal ausschalten schadet ja auch nicht.
Die gleiche Musterlösung kann ich dann gleich auf meinen Fernseher anwenden, der braucht ja auch ein Weilchen, bis er drunten ist. So, das war jetzt viel Text, hat jemand schon eine ähnliche Lösung am Laufen? Weitere Vorschläge?

P.S.: ich hoffe ich bin hier richtig, oder hätte das eher ins Anfängerforum gehört?
SW: FHEM 5.5, Raspian, XBMC, Testinstallation auf Win7
HW: Raspi B, 32GB SD, enocean Pi, RFXTRX433E, BSC - MwC-32, Onkyo TX-NR709, Samsung UE55F8090, Jung LS-Eno, permundo SmartPlug, KDG-FB 6490cable (ohne FHEM)

betateilchen

ZitatWINLOGON has various internal flags and variables that control this deferred shutdown mechanism. The ShutdownInProgress flag records the fact that a shutdown is already scheduled (i.e. the thread has already been invoked). The ShutdownTime variable records the time that the thread will wait until before actually initiating the shutdown. The ShutdownHasBegun records the fact that a shutdown has begun (i.e. the thread has called ExitWindowsEx()). The AbortShutdown flag is set if an "abort shutdown" request comes in via the named pipe or if abort is chosen from the "countdown" dialogue box.

http://homepage.ntlworld.com/jonathan.deboynepollard/FGA/windows-nt-6-shutdown-process.html
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!