- Hallo!
Ich habe ein kleines Programm geschrieben welches beliebige UDP Strings (cmd Befehle) vom Miniserver auf einem PC empfängt und diese in der Kommandozeile (cmd) des Rechners ausführt.
Ich poste es hier, da das vielleicht sonst noch jemand brauchen kann.
Ein paar Beispiele, was machbar ist:
Auf Grund eines Ereignis im Miniserver (Taster, Loxone App, IR Fernbedienung etc.) kann man
auf einem Windows Rechner:
- Beliebige Batch Dateien ausführen
- Beliebige Programme starten
- Netzwerkfreigaben ein- bzw. ausschalten
- Rechner neu booten
- Backups starten
etc.
etc.
Wie funktioniert‘s:
Loxone Config
- Als erstes muss in der Loxone Config ein "Virtueller Ausgang" definiert werden.
Im Feld „Adresse“ muss die IP Adresse und er UDP-Port des Rechners angegeben werden, welcher die Befehle ausführen soll.
Beispiel für den Eintrag im Feld Adresse: udp://192.168.1.12:7654
- Nun kann für den "Virtueller Ausgang" ein "Virtueller Ausgang Befehl" definiert werden.
Hierfür muss der Befehl im Feld "Befehl bei EIN" eingetragen werden.
Z.b: shutdown -r
(startet Recher neu)
oder: C:\meineBatchFiles\meinBatch.bat
(Batch ausführen)
UDPtoCMD Programm
Das Programm besteht aus zwei exe Files
- UDPtoCMD.exe ist der Empfänger der Befehle, dieses Programm muss auf dem Rechner gestartet sein.
- opencmd.exe ist für die Befehlsausführung zuständig, jeder Befehl wird in einem eigenen cmd Fenster gestartet.
Die zwei exe Files können in ein beliebiges Verzeichnis auf dem Rechner kopiert werden, sie müssen sich jedoch im gleichen Ordner befinden.
Damit das Programm „UDPtoCMD.exe“ auf Befehle des Miniserver hört, muss die IP Adresse des Miniservers und der entsprechende Port konfiguriert werden.
Wird das Programm ohne Parameter gestartet oder werden ungültige Parameter übergeben, startet das Programm mit einem Default Port (7077) und es werden Befehle von allen IP Adressen angenommen (nicht zu empfehlen).
Der Port und die IP Adresse werden per Start Parameter konfiguriert. Am besten eine Verknüpfung erstellen (z.b. im Autostart) um das Programm mit den Parametern zu starten.
Die Syntax ist wie folgt:
UDPtoCMD.exe [Port] [IP Adresse]
Beispiel: C:\Program Files\UDPtoCMD\UDPtoCMD.exe 7654 192.168.1.10
Bitte beachten:
Ich gebe keine Gewährleistung für eine fehlerfreie Funktionalität der Software und übernehme keine Haftung bei Fehlern und Schäden…!
Viel Spass!
Gruss
Jan
Mit dem Miniserver beliebige cmd Befehle auf einem PC ausführen.
Einklappen
X
-
Mit dem Miniserver beliebige cmd Befehle auf einem PC ausführen.
Stichworte: - -
Hallo Jan,
ich habe eine Fragen zu deinem Tutorial.
Woher kenne ich meinen UDP port? Die IP Adresse ist ja kein Problem aber bei dem Port komme ich nicht weiter.
Beste Grüße Timo
-
Hi Jan,
klingt an sich schon mal genial, aber ich bin neugierig: Wofür verwendest du dein Tool konkret? Den PC über die App neustarten klingt für mich erst mal nicht ganz so sinnvoll ;-)
Was ich mir vorstellen kann wäre so was wie Musiksteuerung o.ä., aber damit habe ich bisher noch nichts gemacht...MfG BennyKommentar
-
Hallo Zusammen,
mal ne gnaz dumme Frage...
gibts das auch andersrum?
Eine Batchdatei auf dem PC von einem Programm automatisiert ausführen lassen und Befehle per UDP an den MS zu senden.
Dafür hätte ich ein/zwei verwendungszwecke, bin aber noch nicht auf die Lösung gekommen.Kommentar
-
Den MiniServer kannst Du doch über jeden Browser steuern. Einfach entsprechende URL aufrufen und gut ist.
Wieso willst Du denn überhaupt erst mit einem Programm eine Batchdatei ausführen? Normal führt man eine Batchdatei direkt aus.
Gruß SvenMiniserver; KNX; Vitogate; EnOcean (EnOceanPi); Loxone Air; Caldav-Kalenderanbindung; RaspberryPi und für keine Frickellösung zu schade :-)Kommentar
-
Gast Du musst genauer erklären, wie du das meinst, also was da wann passieren soll.Hilfe für die Menschen der Ukraine: https://www.loxforum.com/forum/proje...Cr-die-ukraineKommentar
-
Hallo Zusammen,
ich hohle mal etwas weiter aus...
Ich bin bei der Freiwilligen Feuerwehr. Wir warden durch Digitale-Funkmeldeempfänger (DME) alarmiert. Bei jedem Alarm wird auch eine Alarmdepeche mitübertragen.
Zuhause habe ich einen "Alarmserver" stehen an dem ein DME angeschlossen ist und eine Alarmsoftware frauf läuft.
Aktuell ist es so, wenn ein Alarm reinkommt, wird der Text ausgewertet und ich bekomme auf mein Handy eine Pushnachricht, es warden an andere Kammeraden eine SMS verschickt. Wenn ich im Büro sitze wird auf einem Monitor noch ein Kartenausschnitt angezeigt wo der Einsatzort ist.
Es würde noch viel mehr gehen, wird aber aktuell von mir nicht genutzt.
Diese alarmsoftware kann auch Dateien ausführen (z.B. .bat). Mein Gedanke war nun, dass ich bei Alarm einen Impuls an den Miniserver schicke, der dann je nach ausgelöster Alarmschleife, Tageszeit und Zustand aktionen ausführen soll, wie z.B. das Haus in einen "Alarmzustand" versetzt.
Hier stele ich mir vor. Abend/Nachts geht in den Flur bereichen automatisch das Licht an, die Garage und das Hoftor werden geöffnet, die Ausenbeleuchtung gehen an und nach 2-3 minute wieder alles auf Normalzustand, damit Frau und Kinder beim Schlafen nicht gestört werden.
Gestern habe ich beim durchforsten meiner Alarmsoftware auch gesehen, dass ich im Alarmfall eine URL aufrufen lassen kann.
Wie stelle ich das nun am dümmsten an, dass ein Impuls "Alarm" an den Miniserver gesendet wird?
Besten Dank schon mal für euren Input.
Kommentar
-
Du legst in Deinem Programm ein einen virtuellen Eingang an und nennst den z.B. Feuerwehr als Digitaleingang und Taster.
Den kannst Du dann über http://User:Passwort@IP-Miniserver:P...uerwehr/Impuls aktivieren
Nachzulesen hier: http://www.loxone.com/dede/service/d...bservices.html
Gruß SvenMiniserver; KNX; Vitogate; EnOcean (EnOceanPi); Loxone Air; Caldav-Kalenderanbindung; RaspberryPi und für keine Frickellösung zu schade :-)Kommentar
-
Also ich hab das nun mehrfach versucht.
Ich habe einen virtuellen Eingang angelegt "Feuerwehralarm" und versuche nun einen impuls mit folgendem Aufruf abzusetzte:
http://Benutzer:Passwort@192.168.178...hralarm/Impuls
Bekomme jedoch nur "404 Not Found"
Was mache ich falsch?Zuletzt geändert von Gast; 28.01.2016, 21:14.Kommentar
-
Habe ich das so geschrieben?Miniserver; KNX; Vitogate; EnOcean (EnOceanPi); Loxone Air; Caldav-Kalenderanbindung; RaspberryPi und für keine Frickellösung zu schade :-)Kommentar
-
Wie bist Du denn auf die Antwort 404 gekommen? Also hast Du ja die richtige Verbindung gehabt.
Port 80 ist der Standardport für Webanfragen. Wenn Dein MiniServer noch auf Port 80 läuft, brauchst Du den Doppelpunkt und den Port gar nicht angeben. Hast Du einen anderen Port, muss dieser angegeben werden. -
Jetzt past alles. Funktioniert Tiptop.
DANKE
-
-
Jetzt brauchst Du nur noch ein Audio Programm, welches Kommadorzeilen Parameter unterstützt.
Dies müsste eigentlich bei fast allen Audio Playern der Fall sein.
Ich verwende den VLC media player:
Hier ein Beispiel eines virtuellen Ausgangsbefehl für VLC:
C:\Programme\VideoLAN\VLC\VLC.EXE C:\Musik\Lied1.mp3 --play-and-exit
"C:\Programme\VideoLAN\VLC\vlc.exe" = Pfad der vlc.exe
"C:\Musik\Lied1.mp3" = Pfad der wiederzugebenden mp3 Datei
--play-and-exit = Zusatz Parameter für abspielen und anschliessend das Programm beenden.
Weitere Parameter (wie z.b. abspielen ab einer bestimmen Stelle oder mit einer bestimmten Lautstärke) findest Du hier:
https://wiki.videolan.org/Documentat...#Audio_options
Gruss
Jan
Zuletzt geändert von Jan; 21.02.2016, 23:27.Kommentar
Kommentar