Mit Script externes Win Programm starten

Einrichtung, Anschluss und Programmierung der HomeMatic CCU

Moderator: Co-Administratoren

Antworten
Commodoreuno
Beiträge: 18
Registriert: 24.05.2020, 00:15
System: Alternative CCU (auf Basis OCCU)
Hat sich bedankt: 1 Mal
Danksagung erhalten: 2 Mal

Mit Script externes Win Programm starten

Beitrag von Commodoreuno » 12.10.2021, 22:15

Hallo
Ich steh auf der Leitung und komm auch mit meiner Suche nicht weiter. Per ssh lässt sich ja Verhältnismäßig recht viel steuern. So kann man sogar einige Anwendungen unter Linux starten. Ich suche aber schon die ganze Zeit eine Möglichkeit, ein Programm oder Batchfile auf Windows 10 zu starten, wenn ein bestimmtes Ereignis eintritt. Bsp.: ein Schalter wird betätigt und die Homematic startet ein Programm, das auf einer Maschine mit Windows installiert ist (C:\programme\schalter.exe). Hat hier jemand so etwas schon mal gemacht oder einen guten Tip wo ich nachsehen kann?

Vielen Dank

Benutzeravatar
Roland M.
Beiträge: 9784
Registriert: 08.12.2012, 15:53
System: CCU
Wohnort: Graz, Österreich
Hat sich bedankt: 252 Mal
Danksagung erhalten: 1373 Mal

Re: Mit Script externes Win Programm starten

Beitrag von Roland M. » 12.10.2021, 23:13

Hallo!

Interessantes Problem! :)

Spontan fällt mir aber nur eine Lösung mit unschönem Polling ein:


Auf CCU wird ein Windows/CIFS-Verzeichnis gemounted.
Wenn der Auslöser kommt, wird ein per touch eine Datei angelegt.
Unter Windows läuft ein Batch-File nach Art:
:loop
if exist xy.txt schalter.exe
if exist xy.txt del xy.txt
sleep 5
goto loop


Könnte funktionieren... :roll:


Roland
Zur leichteren Hilfestellung bitte unbedingt beachten:
  • Bezeichnung (HM-... bzw. HmIP-...) der betroffenen Geräte angeben (nicht Artikelnummer)
  • Kurzbeschreibung des Soll-Zustandes (Was soll erreicht werden?)
  • Kurzbeschreibung des Ist-Zustandes (Was funktioniert nicht?)
  • Fehlermeldungen genau abschreiben, besser noch...
  • Screenshots von Programmen, Geräteeinstellungen und Fehlermeldungen (direkt als jpg/png) einstellen!

-----------------------------------------------------------------------
1. CCU2 mit ~100 Geräten (in Umstellung auf RaspberryMatic-OVA auf Proxmox-Server)
2. CCU2 per VPN mit ~50 Geräten (geplant: RaspberryMatic auf Charly)
3. CCU2 per VPN mit ~40 Geräten (geplant: RaspberryMatic auf CCU3)
CCU1, Test-CCU2, Raspi 1 mit kleinem Funkmodul, RaspberryMatic als VM unter Proxmox, Access Point,...

Benutzeravatar
Samson71
Beiträge: 1513
Registriert: 12.02.2014, 20:51
Wohnort: Niedersachsen
Hat sich bedankt: 51 Mal
Danksagung erhalten: 185 Mal

Re: Mit Script externes Win Programm starten

Beitrag von Samson71 » 13.10.2021, 08:46

Gab es da nicht mal ein Tool namens CCU-RemotePC?
Gruß, Markus

Benutzeravatar
Roland M.
Beiträge: 9784
Registriert: 08.12.2012, 15:53
System: CCU
Wohnort: Graz, Österreich
Hat sich bedankt: 252 Mal
Danksagung erhalten: 1373 Mal

Re: Mit Script externes Win Programm starten

Beitrag von Roland M. » 13.10.2021, 11:49

Hallo Markus!
Samson71 hat geschrieben:
13.10.2021, 08:46
Gab es da nicht mal ein Tool namens CCU-RemotePC?
Ja, gab gibt es.
Nur war das meines Wissens nach eine Fernsteuerung vom PC aus, das man sich also z.B. einen "Lichtschalter" in die Taskleiste legen konnte.

EDIT: Sehe gerade, dass das senden und empfangen kann!
http://dragonfly.at/CCU-RemotePC.html

Dann wäre es wohl einen Versuche wert!


Roland
Zur leichteren Hilfestellung bitte unbedingt beachten:
  • Bezeichnung (HM-... bzw. HmIP-...) der betroffenen Geräte angeben (nicht Artikelnummer)
  • Kurzbeschreibung des Soll-Zustandes (Was soll erreicht werden?)
  • Kurzbeschreibung des Ist-Zustandes (Was funktioniert nicht?)
  • Fehlermeldungen genau abschreiben, besser noch...
  • Screenshots von Programmen, Geräteeinstellungen und Fehlermeldungen (direkt als jpg/png) einstellen!

-----------------------------------------------------------------------
1. CCU2 mit ~100 Geräten (in Umstellung auf RaspberryMatic-OVA auf Proxmox-Server)
2. CCU2 per VPN mit ~50 Geräten (geplant: RaspberryMatic auf Charly)
3. CCU2 per VPN mit ~40 Geräten (geplant: RaspberryMatic auf CCU3)
CCU1, Test-CCU2, Raspi 1 mit kleinem Funkmodul, RaspberryMatic als VM unter Proxmox, Access Point,...

Commodoreuno
Beiträge: 18
Registriert: 24.05.2020, 00:15
System: Alternative CCU (auf Basis OCCU)
Hat sich bedankt: 1 Mal
Danksagung erhalten: 2 Mal

Re: Mit Script externes Win Programm starten

Beitrag von Commodoreuno » 13.10.2021, 12:16

Uh das ist wirklich spannend, das war ja überhaupt nicht auf meinem Radar das werd ich mir mal ansehen 😁. Danke erstmal

mademyday
Beiträge: 272
Registriert: 03.10.2014, 12:46
System: CCU
Wohnort: Enzkreis
Hat sich bedankt: 3 Mal
Danksagung erhalten: 43 Mal

Re: Mit Script externes Win Programm starten

Beitrag von mademyday » 14.10.2021, 21:28

seit Win10 bringt Windows einen SSH-Server mit (der nur ausgewählt/aktiviert werden muss), vielleicht klappts damit dann linux-like?

Benutzeravatar
Roland M.
Beiträge: 9784
Registriert: 08.12.2012, 15:53
System: CCU
Wohnort: Graz, Österreich
Hat sich bedankt: 252 Mal
Danksagung erhalten: 1373 Mal

Re: Mit Script externes Win Programm starten

Beitrag von Roland M. » 15.10.2021, 00:53

Hallo!
mademyday hat geschrieben:
14.10.2021, 21:28
vielleicht klappts damit dann linux-like?
Nun, ob das Betriebssystem Windows oder Linux heißt, sehe ich nicht als großen Unterschied an. Keines ist wirklich event-getriggert, also muss in welcher Form und Ausprägung ein Polling her.

Wie würdest du das "linix-like" umsetzen?


Roland
Zur leichteren Hilfestellung bitte unbedingt beachten:
  • Bezeichnung (HM-... bzw. HmIP-...) der betroffenen Geräte angeben (nicht Artikelnummer)
  • Kurzbeschreibung des Soll-Zustandes (Was soll erreicht werden?)
  • Kurzbeschreibung des Ist-Zustandes (Was funktioniert nicht?)
  • Fehlermeldungen genau abschreiben, besser noch...
  • Screenshots von Programmen, Geräteeinstellungen und Fehlermeldungen (direkt als jpg/png) einstellen!

-----------------------------------------------------------------------
1. CCU2 mit ~100 Geräten (in Umstellung auf RaspberryMatic-OVA auf Proxmox-Server)
2. CCU2 per VPN mit ~50 Geräten (geplant: RaspberryMatic auf Charly)
3. CCU2 per VPN mit ~40 Geräten (geplant: RaspberryMatic auf CCU3)
CCU1, Test-CCU2, Raspi 1 mit kleinem Funkmodul, RaspberryMatic als VM unter Proxmox, Access Point,...

Commodoreuno
Beiträge: 18
Registriert: 24.05.2020, 00:15
System: Alternative CCU (auf Basis OCCU)
Hat sich bedankt: 1 Mal
Danksagung erhalten: 2 Mal

Re: Mit Script externes Win Programm starten

Beitrag von Commodoreuno » 15.10.2021, 06:42

OpenSSH funktioniert auch, nur irgendwie hab ich da Probleme mit den Puplic Keys. Für Linux war meine Herangehensweise so: Ein script mit system.Exec und Gammu verschickt eine SMS bei einem bestimmten Event. Klappt ganz gut mit Linux und sollte auch mit OpenSSH in Windows funktionieren. Ich kämpfe da aber eben schon länger mit den Keys und bekomme es irgendwie nicht hin, dass die Passwortabfrage aufhört, was unter Linux aber geklappt hat. Daher war mein Gedanke, bei solchen Anwendungsfällen, lieber ein Script auf dem Rechner zu haben und ein eigenes Tool übernimmt die Kommunikation.

So sieht übrigens ein Script aus, dass ich üblicherweise unter Linux verwendet habe:

string stdout;
string stderr;
system.Exec("/usr/bin/ssh benutzer@server gammu sendsms TEXT 004XXXXXX(TelNr.) -text 'Wohnung_Kuehlschrank_offen'", &stdout, &stderr);

mademyday
Beiträge: 272
Registriert: 03.10.2014, 12:46
System: CCU
Wohnort: Enzkreis
Hat sich bedankt: 3 Mal
Danksagung erhalten: 43 Mal

Re: Mit Script externes Win Programm starten

Beitrag von mademyday » 15.10.2021, 12:54

in ct (c’t 2020, Heft 16) stand mal dazu, hoffe dass das Zitieren hier erlaubt ist:
Ohne weitere Konfiguration darf sich jedes Mitglied der Gruppe administrators mit seinem Kennwort anmelden. Um das zu ändern, müssen Sie nicht etwa Registry-Schlüssel anpassen, sondern die Datei sshd_config bearbeiten – OpenSSH wurde fast komplett aus der Linux-Welt überführt. Um dort Änderungen vorzunehmen, müssen Sie die Datei mit Administratorrechten im Texteditor öffnen. Am einfachsten geht das in einer Admin-Eingabeaufforderung:

notepad %programdata%\ssh\sshd_config

Linux-Anwendern kommt diese Datei bekannt vor. Um zu steuern, wer sich an der Maschine per SSH anmelden darf, scrollen Sie ans Ende der Datei. Dort ist mit Match Group administrators bereits festgelegt, dass sich Mitglieder dieser Gruppe anmelden dürfen. Vor dieser Zeile könnten Sie zum Beispiel einen weiteren Benutzer berechtigen:

Match User ein-nutzername
Match Group administrators

Bei der Gelegenheit sollten Sie die Zeile danach entfernen – sie legt die Schlüssel aller Administratoren in einer Datei zu-
sammen und machte bei unseren Versuchen Probleme, wenn man sich mit Schlüsseln statt Kennwort anmelden wollte.


Auch das Anmelden an einem Windows-SSH-Server funktioniert kennwortlos per Schlüsselpaar. Legen Sie einfach im persönlichen Profilordner des Nutzers, der sich per Schlüssel anmelden soll, im Ordner .ssh die Datei authorized_keys an und platzieren Sie in dieser den öffentlichen Schlüssel. Ein Neustart des Servers ist danach nicht nötig. Von einem Client (unabhängig vom Betriebssystem), auf dem der private Schlüssel liegt, können Sie sich jetzt anmelden. Falls Sie erzwingen möchten, dass sich alle Nutzer per Schlüssel und nicht per Kennwort anmelden, finden Sie in der Datei sshd_conf etwa in der Mitte die folgende Zeile:

# PasswordAuthentication yes

Ersetzen Sie diese durch:

PasswordAuthentication no

Falls Sie ssh und scp einsetzen möchten, um per Skript oder geplante Aufgabe auf eine andere Windows-Maschine zuzugreifen, sollten Sie ein Schlüsselpaar ohne zusätzliche Kennwortsicherung generieren.

Commodoreuno
Beiträge: 18
Registriert: 24.05.2020, 00:15
System: Alternative CCU (auf Basis OCCU)
Hat sich bedankt: 1 Mal
Danksagung erhalten: 2 Mal

Re: Mit Script externes Win Programm starten

Beitrag von Commodoreuno » 15.10.2021, 20:00

Ja der C't Beitrag hat funktioniert ich konnte jetzt eine Verbindung aufbauen, Danke! Ich habe jetzt gleich die entsprechenden .bat geschrieben und am Server gespeichert, anschließen mit dem CUx - Daemon einen Taster angelegt (Gerätetyp System, mit der Funktion Exec, Schaltaktor 1fach). Als KEY|CMD_SHORT habe ich folgendes verwendet "ssh user@server NamederBat. Das wars, immer wenn jetzt ein entsprechendes Ereignis eintritt, dann wird über diesen CUx Taster das Batchfile am Windows Server gestartet. Danke für die Hilfe

Antworten

Zurück zu „HomeMatic Zentrale (CCU / CCU2 / CCU3 / Charly)“