WINCONNECT: Unterschied zwischen den Versionen
Zeile 83: | Zeile 83: | ||
== Weitere Konfiguration == | == Weitere Konfiguration == | ||
siehe https://mwinkler.jimdo.com/eigene-anwendungen/winconnect/konfiguration/ | |||
== FHEM Device == | == FHEM Device == |
Version vom 20. Dezember 2017, 00:52 Uhr
WINCONNECT | |
---|---|
Zweck / Funktion | |
Dieses Modul dient zur Steuerung eines Windows PCs | |
Allgemein | |
Typ | Gerätemodul |
Details | |
Dokumentation | EN / DE |
Support (Forum) | Sonstiges |
Modulname | 70_WINCONNECT.pm |
Ersteller | michael.winkler (Forum / Wiki) |
Wichtig: sofern vorhanden, gilt im Zweifel immer die (englische) Beschreibung in der commandref! |
WINCONNECT ist ein Modul mit welchem ein Windows PC gesteuert und Informationen angezeigt werden können.
Allgemeines
Funktionsumfang
Aktuell ist folgenden Funktionsumfang vorhanden:
- check file_dir
- checkservice
- checkprocess
- checkperformance
- command
- commandhide
- Core Temp API Abfragen
- Erkennung drucken
- Erkennung Sound
- FHEM CSRFTOKEN
- FHEM SSL/HTTPS
- FHEM Support Netbisoname und FQDN
- get batterystate
- get drive information
- get powerstate
- GUI update/autoupdate
- GUI start minimized
- GUI start with windows
- Hardwareausrüstung
- make picture (camera)
- messagebox
- microphone detection
- Monitor on/off (Windows 10 hat beim off noch Probleme)
- motion detect (camera)
- notifymsg
- play sound (ttsmsg/messagebox/make picture)
- set/get Bildschirm Helligkeit (Notebook & Tablets)
- set camera on/off (camera)
- set/get/mute mastervolume
- set powermode (shutdown/reboot/standby/hibernate)
- showfile
- Sprachsteuerung1
- Support button / collect support information
- ttsmsg
- VolumeUp,VolumeDown
- WMI Abfragen / WMI Wizard
1 Windows muss Spracherkennung unterstützen (Keine Server Betriebsysteme)
Voraussetzungen
Damit diese Modul verwendet werden kann, muss auf dem entsprechenden Windows PC eine zusätzliche GUI laufen. Diese kann hier heruntergeladen werden. Zusätzlich bestehen für die GUI noch folgende Systemvoraussetzungen:
- Microsoft .Net Framework 4.5
- Firewall Port 8183 muss vom FHEM Server aus erreichbar sein
Betriebssystem
Folgende Betriebssysteme wurden schon erfolgreich damit betrieben:
- Windows Server 2012 R2
- Windows 10 (Aldi Tablet)
- Windows 10 Pro (Surface Pro 2017)
- Windows 10 Home
- Windows RT 8.1 (Im Testmodus)
Grundkonfiguration
Definition in FHEM
Zum Anlegen des Windows PCs können folgende Definitionen verwendet werden:
define <name> WINCONNECT 192.168.0.10
Standardmäßig prüft der FHEM Server alle 45 Sekunden ob der Windows PC noch erreichbar ist. Dieser Intervall kann wie folgt, z.B. auf 60 Sekunden, geändert werden:
define <name> WINCONNECT 192.168.0.10 60
Installation Windows GUI
siehe https://mwinkler.jimdo.com/eigene-anwendungen/winconnect/grundinstallation/
GUI Beschreibung
siehe https://mwinkler.jimdo.com/eigene-anwendungen/winconnect/grundinstallation/
Weitere Konfiguration
siehe https://mwinkler.jimdo.com/eigene-anwendungen/winconnect/konfiguration/
FHEM Device
Attribute
Name | Mögliche Werte | Beschreibung |
---|---|---|
autoupdategitlab |
|
Das WINCONNECT Modul läd standardmäßig die aktuelle WinControl.exe vom entsprechenden gitlab herunter. Dies kann über dieses Attribut verhindert werden |
autoupdatewincontrol |
|
Die GUI aktualisiert sich standardmäßig immer über den FHEM Server. Dies kann über dieses Attribut verhindert werden |
disable |
|
Über dieses Attribut kann das FHEM Device deaktiviert werden. |
volumeStep | [NUMERIC] | Über dieses Attribut kann die Schrittweite für den Aufruf von volumeUp und volumeDown definiert werden. (Standard=5) |
win_resetreadings |
|
Über dieses Attribut kann gesteuert werden ob die Readings (os_RunTime_days, os_RunTime_hours, os_RunTime_minutes, printer_aktiv und printer_names), wenn der PC Offline ist, zurückgesetzt werden sollen. |
Set
Name | Mögliche Werte | Beschreibung |
---|---|---|
brightness | [NUMERIC] | Hier kann die Bildschirm Helligkeit geändert werden. Bereich 0 bis 100 |
camera |
|
Hier wird das Kamerabild in Großformat angezeigt. Das funktioniert auch mit eingeschaltetem Motion Detect! |
checkperformance | [STRING] | Hier können Windows Performance Counter überwacht werden. Je Zeile kann ein Counter überwacht werden. |
checkperformance_interval | [NUMERIC] | Hier kann der Intervall für die Performance Überwachung angegeben werden |
checkprocess | [STRING] | Hier können Windows Prozesse überwacht werden. Mehrere Prozesse werden über das Trennzeichen ; getrennt eingetragen z.b. explorer.exe;chrome.exe |
checkservice | [STRING] | Hier können Windows Dienste überwacht werden. Mehrere Dienste werden über das Trennzeichen ; getrennt eingetragen. Hier den Dienstnamen verwenden. z.b. netlogon;dhcp (Eigenschaften des Dienstes und dort den Dienstnamen) |
command | [STRING] | Hier können Programme auf dem PC ausgeführt werden. z.b. "notepad.exe c:\info.txt" |
commandhide | [STRING] | siehe "command" Beim Verwenden von commandhide wird das ausgeführte Programm versteckt. |
file_dir | [STRING] | Hier kann ein Verzeichnis angegeben werden welches überwacht werden soll. Das Ergebnis wird dann über die zwei Readings "file_name" und "file_fullname" angezeigt |
file_filter | [STRING] | Durch das Setzen des Filters kann die Anzeige der gefunden Dateien geändert werden. Folgende Filter können hier gesetzt werden:
|
file_order |
|
Hier kann die Sortierreihenfolge angepasst werden |
messagebox | [STRING] | Hier kann ein Text in einer Messagebox am PC angezeigt werden |
mute |
|
Hier kann der Lautsprecher Stumm geschalten werden |
notifymsg | [STRING] | Hier kann ein Text als Notify Nachricht (Icon in der Infobar) am PC angezeigt werden |
picture_dir | [STRING] | Hier kann der Ablagepfad der Bilder festegelegt werden. Diese Verzeichnis wird für picture make und motion detect verwendet. |
picture_make | [NULL] | Hier wird ein Bilder der Kamera erzeugt. Das funktioniert auch mit eingeschaltetem motion detect! |
Powermode |
|
Hiermit kann der PC in folgende Zustände versetzt werden |
screenOff | [NULL] | Hier kann kann der Bildschirm abgeschalten werden |
ScreenOn | [NULL] | Hier kann kann der Bildschirm wieder angeschalten werden |
showfile | [STRING] | Hier können Dateien angezeigt werden. Anhand der Dateiendung wird dann das Standardprogramm des PC´s aufgerufen z.B. "C:\Bild.jpg" |
speechcommands | [STRING] | Hier können Sprachkommandos hinterlegt werden, auf welche das System reagiert. Mehrere Befehle werden durch ein ";" getrennt. |
speechquality | [NUMERIC] | Hier kann die Qualität der Spracherkennung definiert werden. Bei meinem Windows RT Tablet hat sich der Wert 70 als ganz brauchbar erwiesen. Über die GUI kann der optimale Wert ermittelt werden. |
statsuRequest | [NULL] | Hier übermittelt die GUI alle Readings |
ttsmsg | [STRING] | Text wird auf dem PC gesprochen (Soundkarte wird benötigt) |
update | [NULL] | Hier kann ein manuelles GUI Update gestartet werden. |
user_aktividletime | [NUMERIC] | Hier kann die Zeit in Sekunden eingestellt werden, mit der bestimmt wird, ab wann ein PC keine aktive Benutzereingabe mehr erkannt hat |
volume | [NUMERIC] | Hier kann die Lautstärke geändert werden. Bereich 0 bis 100 |
volumeDown | [NULL] | Hier kann die Lautstärke um einen bestimmten Wert verringern werden (siehe Attribut volumeStep) |
volumeUp | [NULL] | Hier kann die Lautstärke um einen bestimmten Wert erhöht werden (siehe Attribut volumeStep) |
Readings
Name | Mögliche Werte | Beschreibung |
---|---|---|
audio |
|
Hier wird angezeigt ob der Windows PC gerade Sound abspielt |
audio_devicename | [STRING] | Hier wird der Name des Gerätes angezeigt, welcher für die Audio Erkennung verwendet wird |
battery_ChargeStatus |
|
Hier wird der aktuelle Ladezustand der Batterie angezeigt |
battery_LifePercent | [NUMERIC] | Hier wird der Batterieladung in % angezeigt |
battery_LifeRemainingsMin | [NUMERIC] | Hier wird die ungefähre verbleibende Akkulebensdauer in Minuten angezeigt |
battery_PowerLineStatus |
|
Hier wird der Status der Stromversorgung angezeigt |
bios_* | [STRING] | Hier werden die Bios Informationen in den jeweiligen bios_* Readings angezeigt. |
brightness | [NUMERIC] | Hier wird die Helligkeit in % angezeigt. Der Wert 200 bedeutet, dass das Ändern der Helligkeit nicht unterstütz wird. z.B. RDP Sitzung |
checkperformance | [STRING] | Hier werden die Performancecounter angezeigt welche die GUI überwacht. |
checkprocess | [STRING] | Hier werden die Prozesse angezeigt, welche die GUI überwacht |
checkservice | [STRING] | Hier werden die Windowsdienste angezeigt, welche die GUI überwacht |
core_temp_X_X_temperature | [NUMERIC] | Hier wird die CPU Temperatur angezeigt. Das erste X steht für die Nummer der physikalischen CPU. Das zweite X steht für die Nummer des jeweiligen Kernes. |
core_temp_cors_per_CPU | [NUMERIC] | Hier wird die Anzahl der jeweiligen Kerne der physikalischen CPU angezeigt |
core_temp_name | [STRING] | Hier wird der Name der CPU angezeigt |
core_temp_physical_CPUs | [NUMERIC] | Hier wird die Anzahl der verfügbaren physikalischen CPUs angezeigt |
core_temp_state |
|
Hier wird angezeigt, ob die Software "Core Temp" auf dem System installiert ist, und auch dementsprechend Daten liefert |
core_temp_temperaturtyp |
|
Hier wird angezeigt in welcher Einheit die Temperaturwerte dargestellt werden. Diese Einstellung kann in der Software "Core Temp" angepasst werden |
cpu_X_mhz | [NUMERIC] | Hier wird die Geschwindigkeit der CPU angezeigt. Das X steht für die jeweilige CPU Nummer |
cpu_X_name | [STRING] | Hier wird der Name der CPU angezeigt. Das X steht für die jeweilige CPU Nummer |
drive_X_xxxxxx | Dient nur der Beschreibung der drive_X_..... Readings weiter unten |
|
drive_X_Format |
|
Dateiformat des Laufwerkes |
drive_X_Label | [String] | Beschriftung des Laufwerkes |
drive_X_Space_AvailableFree | [Numeric] | Freier Speicher in MB |
drive_X_Space_Total | [Numeric] | Gesamter Speicher in MB / Änderungen werden nur erkannt wenn diese größer 10MB sind! |
drive_X_Space_Used | [Numeric] | Benutzter Speicher in MB / Änderungen werden nur erkannt wenn diese größer 10MB sind! |
drive_X_Space_Type | [String] | Typ des Speichers z.B. Fixed(lokale HDD)/Network/CDRom usw.. |
file_dir | [String] | Hier wird das Verzeichnis angezeigt, welches die GUI überwacht |
file_filter | [String] | Hier wird der Datei Filter angezeigt, welcher bei der Überwachung verwendet wird |
file_fullname | [String] | Hier wird die gefundene Datei inkl. Dateipfad angezeigt |
file_name | [String] | Hier wird der Datei Name ohne Dateipfad angezeigt |
file_order | [String] | Hier wird die Sortierung angezeigt, welche bei der Überwachung verwendet wird |
memory_available | [Numeric] | Hier wird der noch verfügbare Arbeitsspeicher in MB angezeigt |
memory_total | [Numeric] | Hier wird die Größe des erkannten Arbeitsspeichers in MB angezeigt |
messagebox | [String] | Hier wird die zuletzt verwendete Messagbox Nachricht am PC angezeigt |
microphone_detect |
|
Hier wird angezeigt ob der Windows PC eine Änderung über das Mikrofon feststellt / Schwellwerte können über die GUI eingestellt werden |
microphone_devicename | [String] | Hier wird der Name des erkannten Mikrofons angezeigt |
model | [String] | Hier wird der Name des erkannten Betriebssystem angezeigt z.B. Windows 10 Home |
motion_autodetect |
|
Hier wird angezeigt ob der Windows PC automatisch beim GUI Start die Motion Erkennung aktiviert. |
motion_detect |
|
Hier wird angezeigt ob der Windows PC eine Änderung über die Kamera feststellt / Schwellwerte können über die GUI eingestellt werden |
motion_last_picture | [String] | Hier wird das zuletzt abgespeicherte Bild angezeigt. Das gespeicherte Bild ist im Verzeichnis des Readings "picture_dir" zu finden. |
mute |
|
Hier wird angezeigt, ob der Lautsprecher Stumm geschalten wurde, oder nicht |
notifymsg | [String] | Hier wird die zuletzt verwendete Notify Nachricht(Icon in der Infobar) am PC angezeigt |
os_Domainname | [String] | Hier wird der Name der Domainname des PC angezeicht, in welcher er sich befindet. Ist der PC in keiner Domain dann wird der Computername hier angezeigt |
os_Hostname | [String] | Hier wird der Computername angezeigt |
os_InstallDate | [String] | Hier wird das Datum und die Uhrzeit des Installationszeitpunktes von Windows angezeigt |
os_Name | [String] | Hier wird der Name des erkannten Betriebssystem angezeigt z.B. Windows 10 Home |
os_RunTime_days | [Numeric] | Hier wird die Laufzeit in Tagen angezeigt. Bei einer Laufzeit von 23 Stunden und 59 Minuten wird hier eine 0 angezeigt |
os_RunTime_hours | [Numeric] | Hier wird die Laufzeit in Stunden angezeigt. Bei einer Laufzeit von einer Stunde und 59 Minuten wird hier eine 1 angezeigt |
os_RunTime_minutes | [Numeric] | Hier wird die Laufzeit in Minuten angezeigt. |
os_StartTime | [String] | Hier wird das Datum und die Uhrzeit von Windowsstart angezeigt |
os_Type | [String] | Hier wird der Typ des Betriebssystems angezeigt z.B. Server oder Client |
os_Username | [String] | Hier wird der Benutzername angezeigt, mit welchem die WinControl.exe gestartet wurde |
os_Version | [String] | Hier wird die Versionsnummer des Betriebssystems angezeigt |
picture_dir | [String] | Hier wird das Verzeichnis angegeben, in welchem Snapshots und Bilder der Bewegungserkennung abgelegt werden. |
printer_aktiv |
|
Hier wird angezeigt, ob der Windows PC gerade druckt |
printer_names | [String] | Hier werden die Drucker angezeigt, welche aktuell auf dem System drucken |
process_* | [Numeric] | Hier wird die Anzahl des zu prüfenden Windows Prozesse angezeigt. 0=Prozess läuft nicht >0=Prozess läuft x mal |
service_* |
|
Hier werden die Windows Dienst Informationen in den jeweiligen Readings angezeigt |
speechcommands | [String] | Hier werden die verfügbaren Sprachkommandos angezeigt |
speechcontrol |
|
Hier wird angezeigt, ob die Spracherkennung aktiv ist |
speecherrormessage | [String] | Hier wird das zuletzt erkannte Sprachkommando angezeigt, welches nicht die Anforderung der Qualität entspricht |
speecherrormessagequality | [String] | Hier wird die Qualität in % angezeigt, mit welchem das nicht akzeptierte Sprachkommando erkannt wurde |
speechmessage | [String] | Hier wird das zuletzt erkannte Sprachkommando angezeigt |
speechmessagequality | [String] | Hier wird die Qualität des zuletzt erkannten Sprachkommandos angezeigt. Je höher dieser Wert um so besser ist die Erkennung |
speechquality | [String] | Hier wird die Qualität in % angezeigt mit welchem ein Sprachkommando erkannt werden muss, damit dies auch akzeptiert wird |
state |
|
Hier wird angezeigt ob die GUI auf dem Windows PC läuft. |
ttsmsg | [String] | Hier wird die zuletzt verwendete Sprachnachricht am PC angezeigt |
user_aktiv |
|
Hier wird angezeigt ob der Windows PC innerhalb der gesetzten [user_aktividletime] eine Eingabe via Maus oder Tastatur stattgefunden hat |
user_aktividletime | [Numeric] | Hier wird die Zeit in Sekunden angezeigt, welche die Zeitspanne anzeigt, wenn das System das Reading "user_aktiv" auf false setzt. |
volume | [Numeric] | Hier wird die Lautstärke in % angezeigt |
wincontrol | [String] | Hier wird die Versionsnummer der aktiven GUI angezeigt |
wincontrol_error | [String] | Hier wird der letzte Status vom Download der GUI abgezeigt |
wincontrol_gitlab | [String] | Hier wird die Versionsnummer der GUI auf dem gitlab angezeigt |
wincontrol_gitlab_url | [String] | Hier wird der Downloadpfad der GUI auf dem gitlab angezeigt |
wincontrol_starttime | [String] | Hier wird das Startdatum und die Startzeit der GUI angezeigt |
wincontrol_update | [String] | Hier wird die Update Information der GUI angezeigt |
wincontrol_user | [String] | Hier wird der Benutzername angezeigt mit welchem die GUI gestartet wurde. |
wmi_* | [String] | Hier werden die WMI Informationen in den jeweiligen Readings angezeigt |
Probleme
Support Informationen
Support- und Problemfragen bitte immer im Forum. Über die Menüleiste kann man weiterführende Supportinformationen anzeigen lassen. Diese werden dann im Forums Format dargestellt und können für einen Threadeintrag verwendet werden.
Folgende Daten werden hier gesammelt:
- Allgemeine System Informationen
- Die ersten und die letzten 50 Zeilen des GUI Logs
- GUI Registry Informationen HKEY_CURRENT_USER\Software\Michael Winkler\WinControl
- FHEM Device Infolist
Folgende Aktionen können über die Buttons ausgeführt werden
Name | Beschreibung |
---|---|
Aktualisieren | Alle Daten werden erneut gesammelt und dargestellt |
Zwischenablage | Alle Daten werden in die Zwischenablage kopiert |
Beenden | Fenster wieder schließen |
Log Informationen
Für die normalen Logeinträge gibt es in der GUI eine eigene Registerkarte. In diesem werden die zur Laufzeit generierten Logeinträge angezeigt.
Folgende Aktionen können über die Buttons ausgeführt werden
Name | Beschreibung |
---|---|
Leeren | Alle Daten werden aus dem Fenster geleert |
Zwischenablage | Alle Daten werden in die Zwischenablage kopiert |
Weiterführende Informationen
Die Konfigurationsinformation der GUI werden in der Registry des Benutzer, der die GUI ausführt, abgelegt. Diese sind hier zu finden:
HKEY_CURRENT_USER\Software\Michael Winkler\WinControl
Im Programmverzeichnis liegen zwei LOG Dateiene
Name | Beschreibung |
---|---|
wincontrol.log | Diese LOG Datei wird zur Laufzeit der GUI verwendet. Hier sind die aktuellen LOG Einträge zu finden |
wincontrol.log.bak | Diese LOG Datei wird beim Starten der GUI erzeugt. Hier sind die LOG Einträge der letzten GUI Laufzeit enthalten. |
Bekannte BUGs
GUI starte nicht automatisch mit Windows
Wenn nach der Aktivierung der Option "Mit Windows starten" die GUI nicht automatisch gestartet wird, und die Option nach dem Start der GUI wieder deaktiviert ist, kann das an folgenden Dingen liegen:
- Keine Schreibberechtigung in der Registry unter
HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run
- Aktivierte UAC
- Sicherheitssoftware verhindert Änderung an der Registry
Damit die GUI automatisch mit Windows starte muss dann folgender Registrykey manuell angelegt werden:
Name | Beschreibung |
---|---|
PFAD | HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run |
Type | REG_SZ (Zeichenfolge) |
Name | FHEM_Winconnect |
Wert | Dateipfad\WinControl.exe z.B. C:\Daten\FHEM\WinConnect\WinControl.exe |
Virenscanner
Einige Antivirenprogramme scheinen die Anwendung zu blocken. Anbei eine Anleitung für den Avira Virenscanner (Danke für die Anleitung EnderPhilipp)
- Avira öffnen
- F8 drücken
- Beim Punkt "System-Scanner" auf das "+" klicken
- Auf das "+" bei „Suche“ klicken
- "Ausnahme" mit der Maus anwählen
- Dort auf die " ..." drauf klicken und den Pfad zur EXE angeben
- Mit der Maus "Hinzufügen" anwählen
- Das gleiche beim "Echtzeit-Scanner" wiederholen, der Pfad zur EXE muss in beiden Feldern (Prozesse und Dateiobjekte) angegeben werden
- Abschließend noch auf "Übernehmen" gehen
- Fertig !
Probleme mit screenOn / WLAN
Standardmäßig schalten sich ein Tablet automatisch in den Standbymodus beim ausschalten des Bildschirmes. Dasselbe kann auch passieren wenn sich der Sperrbildschirm aktiviert. Dieses Verhalten kann wie folgt geändert werden:
Unter: Alle Einstellungen -> Netzwerk und Internet -> WLAN -> Erweiterte Optionen habe ich "Dieser PC soll gefunden werden" aktiviert. Dann bleibt auch das WLAN an!
Sollte das bei Euch nicht funktionieren könnt Ihr auch folgenden Workaround ausführen (Infos im FHEM Forum)