Mit dem Miniserver beliebige cmd Befehle auf einem PC ausführen.

Einklappen
X
 
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge
  • Jan
    Supermoderator
    • 23.08.2015
    • 20

    Mit dem Miniserver beliebige cmd Befehle auf einem PC ausführen.

    • 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
    Angehängte Dateien
  • Gast

    #2
    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

    Kommentar


    • svethi
      svethi kommentierte
      Kommentar bearbeiten
      Das hat er doch beschrieben. Gibt's Du nichts anderes an, dann ist es der Port 7077
  • Gast

    #3
    Naja mit 7077 hat es nicht geklappt aber mit einem anderen Port funktioniert es jetzt wunderbar!

    Kommentar


    • svethi
      svethi kommentierte
      Kommentar bearbeiten
      Dann ist der Port von irgend etwas anderem belegt
  • Benjamin Jobst
    Lox Guru
    • 25.08.2015
    • 1190

    #4
    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 Benny

    Kommentar

    • Gast

      #5
      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

      • svethi
        Lebende Foren Legende
        • 25.08.2015
        • 6247

        #6
        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ß Sven
        Miniserver; KNX; Vitogate; EnOcean (EnOceanPi); Loxone Air; Caldav-Kalenderanbindung; RaspberryPi und für keine Frickellösung zu schade :-)

        Kommentar

        • Christian Fenzl
          Lebende Foren Legende
          • 31.08.2015
          • 11080

          #7
          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-ukraine

          Kommentar

          • darkrain
            MS Profi
            • 25.08.2015
            • 509

            #8
            Er will bestimmt den Satus seines PCs im Miniserver anzeigen lassen.

            Kommentar

            • Gast

              #9
              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

              • svethi
                Lebende Foren Legende
                • 25.08.2015
                • 6247

                #10
                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ß Sven
                Miniserver; KNX; Vitogate; EnOcean (EnOceanPi); Loxone Air; Caldav-Kalenderanbindung; RaspberryPi und für keine Frickellösung zu schade :-)

                Kommentar

                • Gast

                  #11
                  Danke svethi,

                  werde ich heute abend gleich mal testen

                  Kommentar

                  • Gast

                    #12
                    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, 20:14.

                    Kommentar

                    • svethi
                      Lebende Foren Legende
                      • 25.08.2015
                      • 6247

                      #13
                      Habe ich das so geschrieben?
                      Miniserver; KNX; Vitogate; EnOcean (EnOceanPi); Loxone Air; Caldav-Kalenderanbindung; RaspberryPi und für keine Frickellösung zu schade :-)

                      Kommentar


                      • svethi
                        svethi kommentierte
                        Kommentar bearbeiten
                        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.

                      • Gast
                        Gast kommentierte
                        Kommentar bearbeiten
                        Jetzt past alles. Funktioniert Tiptop.
                        DANKE

                      • svethi
                        svethi kommentierte
                        Kommentar bearbeiten
                        Sehr schön :-)
                    • Gast

                      #14
                      Das ist ne schöne möglichkeit meine szenarien im Wohnzimmer zu erweitern.

                      Wie kann ich denn eine Anwndung zb. Mp3 oder einen Player mit diesem tool starten? das Empfangen der Telegramme funktioniert schon mal!

                      Zuletzt geändert von Gast; 21.02.2016, 14:29.

                      Kommentar

                      • Jan
                        Supermoderator
                        • 23.08.2015
                        • 20

                        #15
                        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, 22:27.

                        Kommentar

                        Lädt...