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. Exec Befehle hintereinander ausführen

NEWS

  • Jahresrückblick 2025 – unser neuer Blogbeitrag ist online! ✨
    BluefoxB
    Bluefox
    17
    1
    2.7k

  • Neuer Blogbeitrag: Monatsrückblick - Dezember 2025 🎄
    BluefoxB
    Bluefox
    13
    1
    1.1k

  • Weihnachtsangebot 2025! 🎄
    BluefoxB
    Bluefox
    25
    1
    2.4k

Exec Befehle hintereinander ausführen

Geplant Angeheftet Gesperrt Verschoben Skripten / Logik
3 Beiträge 3 Kommentatoren 596 Aufrufe
  • Ä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
    Pep
    schrieb am zuletzt editiert von
    #1

    Hallo Leute,

    ich arbeite gerade an einer Viessmann Heizungssteuerung und rufe dann folgende Befehle auf:

    
    //Viessmann Instanz kurz Stoppen - beide können nicht schreiben
    exec('iobroker stop viessmann.0', function (error, stdout, stderr) {
        console.log('stdout: ' + stdout);
    });
    
    // Setzen der Heizzeiten
    exec(Befehl_SchaltzeitenMo, function (error, stdout, stderr) {
        console.log('stdout: ' + stdout);
    });
    
    ....
    
    exec(Befehl_SchaltzeitenSo, function (error, stdout, stderr) {
        console.log('stdout: ' + stdout);
    });
    
    //Viessmann Instanz wieder starten - beide können nicht schreiben
    exec('iobroker start viessmann.0', function (error, stdout, stderr) {
        console.log('stdout: ' + stdout);
    });
    
    

    Mein Problem ist jetzt, dass ich den letzten Befehl wirklich erst zum Schluss ausführen muss - er aber aktuell als zweites (laut Log) ausgeführt wird.

    Wie macht ihr das?

    1 Antwort Letzte Antwort
    0
    • D Offline
      D Offline
      dwm
      schrieb am zuletzt editiert von
      #2

      Du musst mit den Callbacks arbeiten … oder mit Promises.

      Ich weiss, am Anfang ist das komisch ... aber Javascript ist halt asynchron.

      1 Antwort Letzte Antwort
      0
      • K Offline
        K Offline
        Karl_999
        schrieb am zuletzt editiert von
        #3

        Wenn die Befehle hintereinander abgearbeitet werden sollen und auch die maximale Laufzeit der Befehle bekannt ist, dann könnte timeout() helfen

        	setTimeout(function () {   
        		exec('iobroker stop viessmann.0', function (error, stdout, stderr) {
        		    console.log('stdout: ' + stdout);
        		}, 1000);	// wird nach einer Sekunde ausgeführt
        
        	setTimeout(function () {   
        		exec(Befehl_SchaltzeitenMo, function (error, stdout, stderr) {
        		    console.log('stdout: ' + stdout);
        		}, 2000);	// wird nach zwei Sekunden ausgeführt
        
        

        Das ist zwar durch die Brust in's Auge. Aber JS kennt nun mal kein delay(), das an dieser Stelle kurz wartet.

        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

        668

        Online

        32.6k

        Benutzer

        82.3k

        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