70_WINCONNECT.pm zum Steuern eines Windows PC / Tablet

Begonnen von michael.winkler, 19 Oktober 2016, 10:08:42

Vorheriges Thema - Nächstes Thema

TWART016


Rudy

Zitat von: michael.winkler am 13 Januar 2018, 11:39:51
Hallo Rudy,

habe dich nicht vergessen, ich schaue mir das Thema mal an. Was zumindest funktionieren sollte ist ein Reading zu erzeugen wenn WinConnect den State selber auf off setzt. Also quasi bei einem set power....

Was Schwieriger wird ist es herauszufinden wenn du den PC noch auf normale Art aus machst.
Den Status über die Art des Beendens nach set aus WinConnect heraus finde ich schon mal gut.

Letztlich aussagekräftiger wäre aber die Info direkt von Windows. Ich habe von der Materie zwar nicht wirklich Ahnung aber vielleicht hilft ja auch die Info, dass mindestens für Energiesparen die Info von dem Tool EventGhost ausgelesen werden kann. Es ist dort das Plugin "System" welches die Info bereitstellt. Auf Grundlage des Codes dort habe ich u.a. folgenden Link gefunden: https://msdn.microsoft.com/en-us/library/windows/desktop/aa373247(v=vs.85).aspx. Keine Ahnung ob das weiterhilft.

Und wo ich schon bei Wünschen und Forderungen bin  ;) , noch eine weitere Idee zu meinem Vorschlag. Manchmal nach einem Update ist von Windows ein Neustart erforderlich. Das beim nächsten Herunterfahren solch ein Update durchgeführt wird, wird mir bei der Windows-Schaltfläche Herunterfahren dann in Klammern dahinter angezeigt. Wenn die erweiterete Variante von oben umsetzbar sein sollte wäre es noch cool, wenn zusätzlich darüber informiert werden würde, dass im Rahmen des Herunterfahrens ein Update eingespielt wird. So könnte man den Timer für das Ausschalten der Steckdose (s. mein Beispiel weiter oben) entsprechend länger setzten.

Rudy

Zitat von: TWART016 am 13 Januar 2018, 12:05:34
Verwende doch einfach Presence mit lan-ping
Damit kann ich doch nur feststellen ob der PC gerade läuft, oder liege ich da falsch? Ist er im Energiesparmodus, würde der PC doch als nicht ereichbar erkannt werden. Und dann den Strom automatisch abstellen ist eher doof. Das soll ja nur passieren, wenn ich den PC ordnungsgemäß heruntergefahren habe.

michael.winkler

Zitat von: Rudy am 13 Januar 2018, 13:36:30
Den Status über die Art des Beendens nach set aus WinConnect heraus finde ich schon mal gut.

Letztlich aussagekräftiger wäre aber die Info direkt von Windows. Ich habe von der Materie zwar nicht wirklich Ahnung aber vielleicht hilft ja auch die Info, dass mindestens für Energiesparen die Info von dem Tool EventGhost ausgelesen werden kann. Es ist dort das Plugin "System" welches die Info bereitstellt. Auf Grundlage des Codes dort habe ich u.a. folgenden Link gefunden: https://msdn.microsoft.com/en-us/library/windows/desktop/aa373247(v=vs.85).aspx. Keine Ahnung ob das weiterhilft.

Und wo ich schon bei Wünschen und Forderungen bin  ;) , noch eine weitere Idee zu meinem Vorschlag. Manchmal nach einem Update ist von Windows ein Neustart erforderlich. Das beim nächsten Herunterfahren solch ein Update durchgeführt wird, wird mir bei der Windows-Schaltfläche Herunterfahren dann in Klammern dahinter angezeigt. Wenn die erweiterete Variante von oben umsetzbar sein sollte wäre es noch cool, wenn zusätzlich darüber informiert werden würde, dass im Rahmen des Herunterfahrens ein Update eingespielt wird. So könnte man den Timer für das Ausschalten der Steckdose (s. mein Beispiel weiter oben) entsprechend länger setzten.
Das Erkennen des Powerstatus ist kein Problem. Die Frage ist nur ob ich diese Information noch an den FHEM Server übermittelt bekomme, da das System ja in diesem Moment herunter fährt.

Das mit dem Windows Updates muss ich erstmal nachstellen um dann zu schauen woher ich die Info ziehen kann.

michael.winkler

Zitat von: Rudy am 13 Januar 2018, 13:38:47
Damit kann ich doch nur feststellen ob der PC gerade läuft, oder liege ich da falsch? Ist er im Energiesparmodus, würde der PC doch als nicht ereichbar erkannt werden. Und dann den Strom automatisch abstellen ist eher doof. Das soll ja nur passieren, wenn ich den PC ordnungsgemäß heruntergefahren habe.
guck mal hier https://mwinkler.jimdo.com/eigene-anwendungen/winconnect/fhem-device/#Set

Wenn Du den powermode "hibernate" verwendest, kannst Du den Rechner auch vom Strom nehmen. Vorausgesetzt dein System unterstützt diese Variante. Kannst es ja mal testen.

Rudy

Zitat von: michael.winkler am 13 Januar 2018, 13:43:10
guck mal hier https://mwinkler.jimdo.com/eigene-anwendungen/winconnect/fhem-device/#Set

Wenn Du den powermode "hibernate" verwendest, kannst Du den Rechner auch vom Strom nehmen. Vorausgesetzt dein System unterstützt diese Variante. Kannst es ja mal testen.
Danke. Das werde ich mal testen.

Rudy

Zitat von: Rudy am 13 Januar 2018, 13:48:33
Danke. Das werde ich mal testen.
So. Habe das nun getestet und funktioniert grundsätzlich. Ich kann jetzt per externem Schalter mit einem notify erst den PC in den Hibernate-Modus versetzen und dann nach in meinem Fall 2 Minuten sleep den Strom der Steckdose ausschalten. Den anderen Nutzern des PCs hier wäre es jedoch einfacher zu vermitteln, dass es ausreicht, dass sie den PC wie bisher direkt auf dem üblichen Wege aus Windows heraus herunterfahren könnten  ;).
Zitat von: michael.winkler am 13 Januar 2018, 13:40:39
Das Erkennen des Powerstatus ist kein Problem. Die Frage ist nur ob ich diese Information noch an den FHEM Server übermittelt bekomme, da das System ja in diesem Moment herunter fährt.

Das mit dem Windows Updates muss ich erstmal nachstellen um dann zu schauen woher ich die Info ziehen kann.
Beim Herunterfahren des PC wird ja auch WinControl automatisch beendet. Vielleicht wäre es eine Möglichkeit bei diesem Beenden automatisch immer auch einen Shutdown-Status mitzusenden.

Nur falls hinsichtlich meiner Anmerkung zu "Aktualisieren und herunterfahren" noch unklar ist war ich meine: unter WinFAQ gibt es zwei Tipps, die sich mit der Materie befassen 1, 2

Per

Zitat von: Rudy am 12 Januar 2018, 18:41:17warum Winconnect in den state off gegangen ist Auskunft gibt?
Die Winconnect.exe kann es dir aber nicht mehr sagen. Die ist ja offline.
Als Dienst kann sie dir immerhin sagen, wenn jemand abgemeldet ist. Aber ob offline wg. Absturz, kein Netz oder einfach nur aus, wirst du höchstens nach der nächsten Verbindung erfahren können. Aber dann ist es zu spät.

Du könntest aber parallel ein Ping machen. Dann kannst du aus den Versatz der Zeiten eine Schlussfolgerung ziehen. Oder mittels Windows Aufgabenplaner mittels wput o.ä. eine Info an FHEM schicken. Oder mittels Fhem-Link WinControl den PC runter fahren lassen.
Für hartnäckige Fälle kannst du noch den Stromverbrauch messen. Manche aktuellen Laptops schalten allerdings bei 100% selbst ab, weiss nicht, ob da ein Unterschied zu "ab" zu messen ist.

Rudy

Zitat von: Per am 16 Januar 2018, 12:36:42
Die Winconnect.exe kann es dir aber nicht mehr sagen. Die ist ja offline.
Als Dienst kann sie dir immerhin sagen, wenn jemand abgemeldet ist. Aber ob offline wg. Absturz, kein Netz oder einfach nur aus, wirst du höchstens nach der nächsten Verbindung erfahren können. Aber dann ist es zu spät.
Dass damit solche Sonderfälle wie Abstürze nicht abgedeckt werden können ist mir klar (hatte ich übrigens auch schon sehr lange nicht mehr, daher auch nicht so wichtig). Mir ging es auch nur um die "Standard-Offlinegründe". Ob ein Wechsel in den Standby erfolgte könnte durch die Wincontrol.exe bspw. schon erkannt werden da sie nicht beendet wird. Und wenn sie beim klassischen Herunterfahren über das Startmenü durch den Herunterfahrprozess beendet wird, könnte sie ggf. auch vorher noch die Auswahl von Herunterfahren im Startmenü mitbekommen, da sie zu dem Zeitpunkt ja noch läuft (so meine laienhafte Vorstellung  :) ). Das wären die wesentlichen Fälle, die mich interessieren würden.
Zitat von: Per am 16 Januar 2018, 12:36:42
Du könntest aber parallel ein Ping machen. Dann kannst du aus den Versatz der Zeiten eine Schlussfolgerung ziehen. Oder mittels Windows Aufgabenplaner mittels wput o.ä. eine Info an FHEM schicken. Oder mittels Fhem-Link WinControl den PC runter fahren lassen.
Für hartnäckige Fälle kannst du noch den Stromverbrauch messen. Manche aktuellen Laptops schalten allerdings bei 100% selbst ab, weiss nicht, ob da ein Unterschied zu "ab" zu messen ist.
Aktuell messe ich des Stromverbrauch an der Steckdose, das läuft aber leider nicht so zuverlässig wie ich das gerne hätte. Daher die Ergänzungsvorschläge zu WinConnect. Und das Herunterfahren durch WinConnect möchte ich gerne vermeiden, da dies auch wieder eine weitere Fehlerquelle birgt (wenn man Windows dann aus Versehen klassisch beendet funktionieren die ganzen Automatismen wieder nicht mehr).

Das mit dem Ping schein mir persönlich recht kompliziert. Stattdessen habe ich auch schon ein wenig mit EventGhost (Verbindung zu FHEM mit MQTT) herumprobiert. Schöner wäre es aber wenn alles schon ab Werk im "Windows-Modul" enthalten wäre.

the ratman

hi mr. winkler ...

weil wir 2 mal wegen spracherkennung und cortana gequasselt haben und du ja da definitiv mehr ahnung als ich hast, folgende dumme frage:

mir gehts ja immer noch um brauchbare erkennung ganzer sätze, um die dann z.b. an babbel und/oder teerko senden zu können. wäre halt genial, nachdem meine nas auf win rennt und das das einzige gerät ist, dass 100% der zeit rennt. man stelle sich das dann mit z.b. matrix voice vor, die man dann vielleicht auch gleich per winconnect in griff kriegt.
nachdem ich grad eben über https://developer.microsoft.com/de-de/cortana gestolpert bin: meinst, da könnte man was für winconnect verwenden?
→do↑p!dnʇs↓shit←

the ratman

fällt mir gleich noch was ein:

kann man eigentlich die "notifymsg" ein wenig formatieren?
zeilenumbrüche, bold, underline, ... so kleinigkeiten wären echt hilfreich.
→do↑p!dnʇs↓shit←

StephanFHEM

Hallo,

habe gerade ein update gemacht und nach Neustart folgenden Perl FehlerLog bekommen:

2018.03.03 13:44:34 1: PERL WARNING: Use of uninitialized value $filemtime in concatenation (.) or string at ./FHEM/70_WINCONNECT.pm line 249.
2018.03.03 13:44:34 1: PERL WARNING: Use of uninitialized value $filemtime in string eq at ./FHEM/70_WINCONNECT.pm line 278.
2018.03.03 13:44:34 1: PERL WARNING: Use of uninitialized value $value in string eq at fhem.pl line 4457.


Grüße
Stephan

michael.winkler

Zitat von: StephanFHEM am 03 März 2018, 13:47:24
Hallo,

habe gerade ein update gemacht und nach Neustart folgenden Perl FehlerLog bekommen:

2018.03.03 13:44:34 1: PERL WARNING: Use of uninitialized value $filemtime in concatenation (.) or string at ./FHEM/70_WINCONNECT.pm line 249.
2018.03.03 13:44:34 1: PERL WARNING: Use of uninitialized value $filemtime in string eq at ./FHEM/70_WINCONNECT.pm line 278.
2018.03.03 13:44:34 1: PERL WARNING: Use of uninitialized value $value in string eq at fhem.pl line 4457.


Grüße
Stephan
Kommen die Fehlermeldungen dauerhaft, oder war das nur einmalig?

StephanFHEM


michael.winkler

Zitat von: StephanFHEM am 05 März 2018, 07:47:53
Die kommen bei jedem Neustart von FHEM
ok, dann stimmt etwas mit den heruntergeladenen Dateien nicht. Welche Version hat den die WinControl.exe bei Dir?

Prüfe mal im FHEM Verzeichnis "././www/winconnect" ob die Datei "WinControl.exe" vorhanden ist. Du kannst aber auch alle Dateien dort mal löschen. Die Dateien werden automatisch wieder erzeugt.