Skip to content
  • Home
  • Aktuell
  • Tags
  • 0 Ungelesen 0
  • Kategorien
  • Unreplied
  • Beliebt
  • GitHub
  • Docu
  • Hilfe
Skins
  • Light
  • Brite
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • Standard: (Kein Skin)
  • Kein Skin
Einklappen
ioBroker Logo

Community Forum

donate donate
  1. ioBroker Community Home
  2. Deutsch
  3. Skripten / Logik
  4. JavaScript
  5. JScript führt keine CMD-exe aus (W10P)

NEWS

  • UPDATE 31.10.: Amazon Alexa - ioBroker Skill läuft aus ?
    apollon77A
    apollon77
    48
    3
    8.5k

  • Monatsrückblick – September 2025
    BluefoxB
    Bluefox
    13
    1
    2.0k

  • Neues Video "KI im Smart Home" - ioBroker plus n8n
    BluefoxB
    Bluefox
    16
    1
    2.7k

JScript führt keine CMD-exe aus (W10P)

Geplant Angeheftet Gesperrt Verschoben JavaScript
10 Beiträge 5 Kommentatoren 583 Aufrufe 3 Watching
  • Älteste zuerst
  • Neuste zuerst
  • Meiste Stimmen
Antworten
  • In einem neuen Thema antworten
Anmelden zum Antworten
Dieses Thema wurde gelöscht. Nur Nutzer mit entsprechenden Rechten können es sehen.
  • P Offline
    P Offline
    paul39
    schrieb am zuletzt editiert von
    #1

    Hallo,
    bin neu bei ioBroker, und habe gleich mal ein Problem ;-)

    ioBroker unter Win10Pro x64 installiert, PC startet mit automatischer Anmeldung als Benutzer "iobroker", startet dann automatisch HABpanel in Chrome (Vollbildansicht). Habe ein Iiyama-24"-Touch-Display (HDMI, Touch über USB) dran, welches nach 2 min abschaltet.

    Will nun per JScript, dass das Display einschaltet, sobald von BlueIris (Vollversion als Service auf dem selben Rechner) ein Trigger-Alert per MQTT kommt (=Bewegung auf Video erkannt).

    Das MQTT-Ereignis kommt, das Script wird auch gestartet und ausgeführt (da im Log "exec: dispay on" angezeigt wird).
    Nur leider wird die EXE (hier nircmd.exe) nicht ausgeführt! (hatte bereits mit einer eigenen exe , welche nur ein Fenster anzeigt, getestet - es scheint, als ob keine Programme ausgeführt werden mit exec).

    Script:

    on({id: 'mqtt.0.BlueIris.doorcam', change: 'any'}, function dp(){
        exec('c:\iobroker_tools\nircmd.exe sendkeypress shift', function(err, stdout, stderr) {
            if (err) log(stderr,'error');
        });
        log("exec: display on");
    });
    

    In der Instanz des Script-Adapters ist natürlich konfiguriert/aktiviert:

    • Erlaube das Kommando "setObject"
    • Erlaube das Kommando "exec"

    Woran kann das liegen? Wer hat Tipps?

    Danke schon mal,
    Paul

    1 Antwort Letzte Antwort
    0
    • P Offline
      P Offline
      pix
      schrieb am zuletzt editiert von
      #2

      Hallo,

      habe das Skript mal überflogen, Zeile 1 hat einen Fehler. So wird die Funktion ausgeführt:

      on({id: 'mqtt.0.BlueIris.doorcam', change: 'any'}, function (dp) {
      

      (<Klammer auf> war falsch gesetzt).

      Ausserdem würde ich den Log-Befehl auch innerhalb von exec packen, um ein Kontrolle zu haben.

      Ich glaube, exec kann nur Skripte ausführen.

      on({id: "mqtt.0.BlueIris.doorcam", change: "any"}, function (dp){
          exec("c:\iobroker_tools\nircmd.exe sendkeypress shift", function(err, stdout, stderr) {
              if (err) log(stderr,"error");
              else log("exec: display on");
          });    
      });
      

      Pix

      ioBroker auf Ubuntu in Proxmox (früher Mac mini (bis OS X 10.12.6 Sierra), VIS via iOS; angeschlossen: Homematic CCU2, Homepilot 1, ConBee II, einige Wemos, Sonos, Unifi CK+Protect, Homekit, Homebridge; KEIN blockly! Github-Profil

      AlCalzoneA 1 Antwort Letzte Antwort
      0
      • P pix

        Hallo,

        habe das Skript mal überflogen, Zeile 1 hat einen Fehler. So wird die Funktion ausgeführt:

        on({id: 'mqtt.0.BlueIris.doorcam', change: 'any'}, function (dp) {
        

        (<Klammer auf> war falsch gesetzt).

        Ausserdem würde ich den Log-Befehl auch innerhalb von exec packen, um ein Kontrolle zu haben.

        Ich glaube, exec kann nur Skripte ausführen.

        on({id: "mqtt.0.BlueIris.doorcam", change: "any"}, function (dp){
            exec("c:\iobroker_tools\nircmd.exe sendkeypress shift", function(err, stdout, stderr) {
                if (err) log(stderr,"error");
                else log("exec: display on");
            });    
        });
        

        Pix

        AlCalzoneA Offline
        AlCalzoneA Offline
        AlCalzone
        Developer
        schrieb am zuletzt editiert von
        #3

        @pix sagte in JScript führt keine CMD-exe aus (W10P):

        Ich glaube, exec kann nur Skripte ausführen.

        Nee, ich hab damit auch schon shutdown ausgeführt.

        Warum `sudo` böse ist: https://forum.iobroker.net/post/17109

        1 Antwort Letzte Antwort
        0
        • P Offline
          P Offline
          paul39
          schrieb am zuletzt editiert von
          #4

          Danke für die Tipps!
          Das Script wie folgt läuft auch durch. Leider weckt es den Monitor nicht auf.

          on({id: "mqtt.0.BlueIris.doorcam", change: "any"}, function (dp){
              exec("c:/iobroker_tools/nircmd.exe sendkeypress shift", function(err, stdout, stderr) {
                  if (err) {
                      log(stderr,"error");
                  }
                  else log("exec: display on (new)");
              });
          });
          

          Ich habe einen Touch Iiyama TF2415MC-B2, welcher sich vor Ort, also wenn ich über das Touch streiche, aktivieren lässt. Aber eben nicht über die Kommandos im Script.
          Hat jemand eine Iiyama-Touch erfolgreich im Einsatz unter Windows?

          Ich muss mal in BIOS schauen, ob ich dort etwas finde.

          1 Antwort Letzte Antwort
          0
          • SBorgS Offline
            SBorgS Offline
            SBorg
            Forum Testing Most Active
            schrieb am zuletzt editiert von
            #5

            Öhm, hast du dass jetzt genau so im Einsatz?
            Eingangs war es in dem Part zumindest richtig, jetzt aber...

            Windows ==> "c:/iobroker_tools/nircmd.exe sendkeypress shift" ?
            sollte dann wohl eher "c:\iobroker_tools\nircmd.exe sendkeypress shift" sein ;)

            LG SBorg ( SBorg auf GitHub)
            Projekte: Lebensmittelwarnung.de | WLAN-Wetterstation | PimpMyStation

            P 1 Antwort Letzte Antwort
            0
            • StabilostickS Offline
              StabilostickS Offline
              Stabilostick
              schrieb am zuletzt editiert von Stabilostick
              #6

              Hi,

              läuft der ioBroker als Windows Dienst oder in einer Benutzersitzung (mit vielen schwarzen Fenstern auf dem Desktop)?

              P 1 Antwort Letzte Antwort
              0
              • SBorgS SBorg

                Öhm, hast du dass jetzt genau so im Einsatz?
                Eingangs war es in dem Part zumindest richtig, jetzt aber...

                Windows ==> "c:/iobroker_tools/nircmd.exe sendkeypress shift" ?
                sollte dann wohl eher "c:\iobroker_tools\nircmd.exe sendkeypress shift" sein ;)

                P Offline
                P Offline
                paul39
                schrieb am zuletzt editiert von paul39
                #7

                @SBorg said in JScript führt keine CMD-exe aus (W10P):

                Öhm, hast du dass jetzt genau so im Einsatz?

                Ehrlich gesagt, ja:

                c:\...\..
                

                führte zu Fehlermeldungen, es hätte noch funktioniert

                C:\\...\\...
                

                (also mit 2 x backslash), dann hat mich die jetzige Variante auch interessiert, und diese führt ebenfalls zu keinem Fehler.

                1 Antwort Letzte Antwort
                0
                • StabilostickS Stabilostick

                  Hi,

                  läuft der ioBroker als Windows Dienst oder in einer Benutzersitzung (mit vielen schwarzen Fenstern auf dem Desktop)?

                  P Offline
                  P Offline
                  paul39
                  schrieb am zuletzt editiert von
                  #8

                  @Stabilostick

                  läuft der ioBroker als Windows Dienst oder in einer Benutzersitzung (mit vielen schwarzen Fenstern auf dem Desktop)?

                  Ja, als Service.

                  1 Antwort Letzte Antwort
                  0
                  • StabilostickS Offline
                    StabilostickS Offline
                    Stabilostick
                    schrieb am zuletzt editiert von Stabilostick
                    #9

                    Dann wird das mit dem Tastendruck nicht klappen. Der Dienst läuft in einer unsichtbaren Consol Sitzung 0 ohne Ausgabe. Tastendrücke verschwinden im Nirwana.

                    Da musst Du eher ein kleines Programm in Deiner Benutzersitzung laufen lassen, das sozusagen „von remote“ das Aufweckkommando empfängt. Das Programm könnte z.B. als ein kleiner http-Server in JavaScript geschrieben sein:

                    /*
                    Examples
                    
                    http://<ip>:3000/brightness/10  switches brightness of server display to 10%
                    
                    http://<ip>:3000/battery returns a number containing the battery level 0..1
                    */
                    
                    const brightness = require('brightness');
                    const batteryLevel = require('battery-level');
                    const http = require('http');
                    
                    const port = 3000;
                    
                    const requestHandler = (request, response) => {
                      console.log(request.url);
                      var  payload = request.url;
                      var arr = payload.split("/");
                    
                      if (arr[1] == "battery") {
                        batteryLevel().then(level => {
                            console.log(level);
                            response.end(''+level);
                           });
                       } 
                    
                      if (arr[1] == "brightness") {
                          var value = Number(arr[2])/100;
                          brightness.set(value).then(() => {
                            console.log('Changed brightness to ' + value);
                           });
                           response.end('Changed brightness to ' + value);
                      }
                    }
                    
                    const server = http.createServer(requestHandler);
                    server.listen(port, (err) => {
                      if (err) {
                        return console.log('something bad happened', err)
                      }
                      console.log(`server is listening on ${port}`)
                    });
                    

                    Oder halt dort den Keypress-Aufruf rein.

                    1 Antwort Letzte Antwort
                    0
                    • P Offline
                      P Offline
                      paul39
                      schrieb am zuletzt editiert von paul39
                      #10

                      Eieiei, das klingt natürlich logisch:blush: Vielen Dank!

                      1 Antwort Letzte Antwort
                      0
                      Antworten
                      • In einem neuen Thema antworten
                      Anmelden zum Antworten
                      • Älteste zuerst
                      • Neuste zuerst
                      • Meiste Stimmen


                      Support us

                      ioBroker
                      Community Adapters
                      Donate

                      821

                      Online

                      32.4k

                      Benutzer

                      81.4k

                      Themen

                      1.3m

                      Beiträge
                      Community
                      Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen | Einwilligungseinstellungen
                      ioBroker Community 2014-2025
                      logo
                      • Anmelden

                      • Du hast noch kein Konto? Registrieren

                      • Anmelden oder registrieren, um zu suchen
                      • Erster Beitrag
                        Letzter Beitrag
                      0
                      • Home
                      • Aktuell
                      • Tags
                      • Ungelesen 0
                      • Kategorien
                      • Unreplied
                      • Beliebt
                      • GitHub
                      • Docu
                      • Hilfe