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. (gelöst) Verständnisfrage

NEWS

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

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

  • Weihnachtsangebot 2025! 🎄
    BluefoxB
    Bluefox
    25
    1
    2.0k

(gelöst) Verständnisfrage

Geplant Angeheftet Gesperrt Verschoben JavaScript
4 Beiträge 3 Kommentatoren 430 Aufrufe 1 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.
  • M Offline
    M Offline
    mcfly11111
    schrieb am zuletzt editiert von mcfly11111
    #1

    Hallo,
    meine Kenntnisse in Javascript halten sich in Grenzen. Meine Scripte habe ich mir überwiegend aus Schnipseln gebastelt und auf meine Bedürfnisse angepasst. Ein Script allerdings, mit dem ich insgesamt 5 Funksteckdosen steuere, verstehe ich nicht.


    const Client = require('ssh2').Client;

    on({id: 'javascript.0.steckdosen.steckdose_1'}, function (obj) {
    if (getState("javascript.0.steckdosen.steckdose_1").val == 1)
    {
    execein1();
    } else {
    execaus1();
    }
    })
    on({id: 'javascript.0.steckdosen.steckdose_2'}, function (obj) {
    if (getState("javascript.0.steckdosen.steckdose_2").val == 1)
    {
    execein2();
    } else {
    execaus2();
    }
    })
    on({id: 'javascript.0.steckdosen.steckdose_3'}, function (obj) {
    if (getState("javascript.0.steckdosen.steckdose_3").val == 1)
    {
    execein3();
    } else {
    execaus3();
    }
    })
    on({id: 'javascript.0.steckdosen.steckdose_4'}, function (obj) {
    if (getState("javascript.0.steckdosen.steckdose_4").val == 1)
    {
    execein4();
    } else {
    execaus4();
    }
    })
    on({id: 'javascript.0.steckdosen.steckdose_5'}, function (obj) {
    if (getState("javascript.0.steckdosen.steckdose_5").val == 1)
    {
    execein5();
    } else {
    execaus5();
    }
    })
    function execein1() {
    var conn = new Client();
    conn.on('ready', function() {
    conn.exec('/bin/send 00001 1 1', function(err, stream) {
    if (err) throw err;
    stream.on('close', function(code, signal) {
    conn.end();
    }).on('data', function(data) {
    log('Ausgabe: ' + data);
    }).stderr.on('data', function(data) {
    log('Fehler: ' + data);
    });
    });
    }).connect({
    host: '10.100.10.12', // IP des RPi
    port: 22,
    username: 'root',
    password: 'root'
    });
    }
    function execaus1() {
    var conn = new Client();
    conn.on('ready', function() {
    conn.exec('/bin/send 00001 1 0', function(err, stream) {
    if (err) throw err;
    stream.on('close', function(code, signal) {
    conn.end();
    }).on('data', function(data) {
    log('Ausgabe: ' + data);
    }).stderr.on('data', function(data) {
    log('Fehler: ' + data);
    });
    });
    }).connect({
    host: '10.100.10.12', // IP des RPi
    port: 22,
    username: 'root',
    password: 'root'
    });
    }
    function execein2() {
    var conn = new Client();
    conn.on('ready', function() {
    conn.exec('/bin/send 00001 2 1', function(err, stream) {
    if (err) throw err;
    stream.on('close', function(code, signal) {
    conn.end();
    }).on('data', function(data) {
    log('Ausgabe: ' + data);
    }).stderr.on('data', function(data) {
    log('Fehler: ' + data);
    });
    });
    }).connect({
    host: '10.100.10.12', // IP des RPi
    port: 22,
    username: 'root',
    password: 'root'
    });
    }
    function execaus2() {
    var conn = new Client();
    conn.on('ready', function() {
    conn.exec('/bin/send 00001 2 0', function(err, stream) {
    if (err) throw err;
    stream.on('close', function(code, signal) {
    conn.end();
    }).on('data', function(data) {
    log('Ausgabe: ' + data);
    }).stderr.on('data', function(data) {
    log('Fehler: ' + data);
    });
    });
    }).connect({
    host: '10.100.10.12', // IP des RPi
    port: 22,
    username: 'root',
    password: 'root'
    });
    }
    function execein3() {
    var conn = new Client();
    conn.on('ready', function() {
    conn.exec('/bin/send 00001 3 1', function(err, stream) {
    if (err) throw err;
    stream.on('close', function(code, signal) {
    conn.end();
    }).on('data', function(data) {
    log('Ausgabe: ' + data);
    }).stderr.on('data', function(data) {
    log('Fehler: ' + data);
    });
    });
    }).connect({
    host: '10.100.10.12', // IP des RPi
    port: 22,
    username: 'root',
    password: 'root'
    });
    }
    function execaus3() {
    var conn = new Client();
    conn.on('ready', function() {
    conn.exec('/bin/send 00001 3 0', function(err, stream) {
    if (err) throw err;
    stream.on('close', function(code, signal) {
    conn.end();
    }).on('data', function(data) {
    log('Ausgabe: ' + data);
    }).stderr.on('data', function(data) {
    log('Fehler: ' + data);
    });
    });
    }).connect({
    host: '10.100.10.12', // IP des RPi
    port: 22,
    username: 'root',
    password: 'root'
    });
    }
    function execein4() {
    var conn = new Client();
    conn.on('ready', function() {
    conn.exec('/bin/send 00001 4 1', function(err, stream) {
    if (err) throw err;
    stream.on('close', function(code, signal) {
    conn.end();
    }).on('data', function(data) {
    log('Ausgabe: ' + data);
    }).stderr.on('data', function(data) {
    log('Fehler: ' + data);
    });
    });
    }).connect({
    host: '10.100.10.12', // IP des RPi
    port: 22,
    username: 'root',
    password: 'root'
    });
    }
    function execaus4() {
    var conn = new Client();
    conn.on('ready', function() {
    conn.exec('/bin/send 00001 4 0', function(err, stream) {
    if (err) throw err;
    stream.on('close', function(code, signal) {
    conn.end();
    }).on('data', function(data) {
    log('Ausgabe: ' + data);
    }).stderr.on('data', function(data) {
    log('Fehler: ' + data);
    });
    });
    }).connect({
    host: '10.100.10.12', // IP des RPi
    port: 22,
    username: 'root',
    password: 'root'
    });
    }
    function execein5() {
    var conn = new Client();
    conn.on('ready', function() {
    conn.exec('/bin/send 00001 5 1', function(err, stream) {
    if (err) throw err;
    stream.on('close', function(code, signal) {
    conn.end();
    }).on('data', function(data) {
    log('Ausgabe: ' + data);
    }).stderr.on('data', function(data) {
    log('Fehler: ' + data);
    });
    });
    }).connect({
    host: '10.100.10.12', // IP des RPi
    port: 22,
    username: 'root',
    password: 'root'
    });
    }
    function execaus5() {
    var conn = new Client();
    conn.on('ready', function() {
    conn.exec('/bin/send 00001 5 0', function(err, stream) {
    if (err) throw err;
    stream.on('close', function(code, signal) {
    conn.end();
    }).on('data', function(data) {
    log('Ausgabe: ' + data);
    }).stderr.on('data', function(data) {
    log('Fehler: ' + data);
    });
    });
    }).connect({
    host: '10.100.10.12', // IP des RPi
    port: 22,
    username: 'root',
    password: 'root'
    });
    }


    Für die Steckdosen habe ich 5 Datenpunkte angelegt. Steckdosen 1-4 werden in VIS mit basic - Bulb on/off gesteuert und funktionieren auch.
    Steckdose 5 steuere ich über Blockly mit einem Timer, geht auch.
    Was ich allerdings nicht verstehe, Steckdose 1, 3, und 4 liefern in den Objekten 0/1, 2 und 5 jedoch true/false. Die einzelnen Blöcke im Script habe ich mit copy/paste angelegt und sind identisch.
    Sicherlich könnte man das Script vereinfachen, dies übersteigt aber mein Können und für mich ist wichtig, dass es funktioniert.
    Für die Zukunft würde mich schon interessieren, woher diese unterschiedlichen states kommen.
    steckdosen.png

    Vielen Dank im Voraus

    A 1 Antwort Letzte Antwort
    0
    • M mcfly11111

      Hallo,
      meine Kenntnisse in Javascript halten sich in Grenzen. Meine Scripte habe ich mir überwiegend aus Schnipseln gebastelt und auf meine Bedürfnisse angepasst. Ein Script allerdings, mit dem ich insgesamt 5 Funksteckdosen steuere, verstehe ich nicht.


      const Client = require('ssh2').Client;

      on({id: 'javascript.0.steckdosen.steckdose_1'}, function (obj) {
      if (getState("javascript.0.steckdosen.steckdose_1").val == 1)
      {
      execein1();
      } else {
      execaus1();
      }
      })
      on({id: 'javascript.0.steckdosen.steckdose_2'}, function (obj) {
      if (getState("javascript.0.steckdosen.steckdose_2").val == 1)
      {
      execein2();
      } else {
      execaus2();
      }
      })
      on({id: 'javascript.0.steckdosen.steckdose_3'}, function (obj) {
      if (getState("javascript.0.steckdosen.steckdose_3").val == 1)
      {
      execein3();
      } else {
      execaus3();
      }
      })
      on({id: 'javascript.0.steckdosen.steckdose_4'}, function (obj) {
      if (getState("javascript.0.steckdosen.steckdose_4").val == 1)
      {
      execein4();
      } else {
      execaus4();
      }
      })
      on({id: 'javascript.0.steckdosen.steckdose_5'}, function (obj) {
      if (getState("javascript.0.steckdosen.steckdose_5").val == 1)
      {
      execein5();
      } else {
      execaus5();
      }
      })
      function execein1() {
      var conn = new Client();
      conn.on('ready', function() {
      conn.exec('/bin/send 00001 1 1', function(err, stream) {
      if (err) throw err;
      stream.on('close', function(code, signal) {
      conn.end();
      }).on('data', function(data) {
      log('Ausgabe: ' + data);
      }).stderr.on('data', function(data) {
      log('Fehler: ' + data);
      });
      });
      }).connect({
      host: '10.100.10.12', // IP des RPi
      port: 22,
      username: 'root',
      password: 'root'
      });
      }
      function execaus1() {
      var conn = new Client();
      conn.on('ready', function() {
      conn.exec('/bin/send 00001 1 0', function(err, stream) {
      if (err) throw err;
      stream.on('close', function(code, signal) {
      conn.end();
      }).on('data', function(data) {
      log('Ausgabe: ' + data);
      }).stderr.on('data', function(data) {
      log('Fehler: ' + data);
      });
      });
      }).connect({
      host: '10.100.10.12', // IP des RPi
      port: 22,
      username: 'root',
      password: 'root'
      });
      }
      function execein2() {
      var conn = new Client();
      conn.on('ready', function() {
      conn.exec('/bin/send 00001 2 1', function(err, stream) {
      if (err) throw err;
      stream.on('close', function(code, signal) {
      conn.end();
      }).on('data', function(data) {
      log('Ausgabe: ' + data);
      }).stderr.on('data', function(data) {
      log('Fehler: ' + data);
      });
      });
      }).connect({
      host: '10.100.10.12', // IP des RPi
      port: 22,
      username: 'root',
      password: 'root'
      });
      }
      function execaus2() {
      var conn = new Client();
      conn.on('ready', function() {
      conn.exec('/bin/send 00001 2 0', function(err, stream) {
      if (err) throw err;
      stream.on('close', function(code, signal) {
      conn.end();
      }).on('data', function(data) {
      log('Ausgabe: ' + data);
      }).stderr.on('data', function(data) {
      log('Fehler: ' + data);
      });
      });
      }).connect({
      host: '10.100.10.12', // IP des RPi
      port: 22,
      username: 'root',
      password: 'root'
      });
      }
      function execein3() {
      var conn = new Client();
      conn.on('ready', function() {
      conn.exec('/bin/send 00001 3 1', function(err, stream) {
      if (err) throw err;
      stream.on('close', function(code, signal) {
      conn.end();
      }).on('data', function(data) {
      log('Ausgabe: ' + data);
      }).stderr.on('data', function(data) {
      log('Fehler: ' + data);
      });
      });
      }).connect({
      host: '10.100.10.12', // IP des RPi
      port: 22,
      username: 'root',
      password: 'root'
      });
      }
      function execaus3() {
      var conn = new Client();
      conn.on('ready', function() {
      conn.exec('/bin/send 00001 3 0', function(err, stream) {
      if (err) throw err;
      stream.on('close', function(code, signal) {
      conn.end();
      }).on('data', function(data) {
      log('Ausgabe: ' + data);
      }).stderr.on('data', function(data) {
      log('Fehler: ' + data);
      });
      });
      }).connect({
      host: '10.100.10.12', // IP des RPi
      port: 22,
      username: 'root',
      password: 'root'
      });
      }
      function execein4() {
      var conn = new Client();
      conn.on('ready', function() {
      conn.exec('/bin/send 00001 4 1', function(err, stream) {
      if (err) throw err;
      stream.on('close', function(code, signal) {
      conn.end();
      }).on('data', function(data) {
      log('Ausgabe: ' + data);
      }).stderr.on('data', function(data) {
      log('Fehler: ' + data);
      });
      });
      }).connect({
      host: '10.100.10.12', // IP des RPi
      port: 22,
      username: 'root',
      password: 'root'
      });
      }
      function execaus4() {
      var conn = new Client();
      conn.on('ready', function() {
      conn.exec('/bin/send 00001 4 0', function(err, stream) {
      if (err) throw err;
      stream.on('close', function(code, signal) {
      conn.end();
      }).on('data', function(data) {
      log('Ausgabe: ' + data);
      }).stderr.on('data', function(data) {
      log('Fehler: ' + data);
      });
      });
      }).connect({
      host: '10.100.10.12', // IP des RPi
      port: 22,
      username: 'root',
      password: 'root'
      });
      }
      function execein5() {
      var conn = new Client();
      conn.on('ready', function() {
      conn.exec('/bin/send 00001 5 1', function(err, stream) {
      if (err) throw err;
      stream.on('close', function(code, signal) {
      conn.end();
      }).on('data', function(data) {
      log('Ausgabe: ' + data);
      }).stderr.on('data', function(data) {
      log('Fehler: ' + data);
      });
      });
      }).connect({
      host: '10.100.10.12', // IP des RPi
      port: 22,
      username: 'root',
      password: 'root'
      });
      }
      function execaus5() {
      var conn = new Client();
      conn.on('ready', function() {
      conn.exec('/bin/send 00001 5 0', function(err, stream) {
      if (err) throw err;
      stream.on('close', function(code, signal) {
      conn.end();
      }).on('data', function(data) {
      log('Ausgabe: ' + data);
      }).stderr.on('data', function(data) {
      log('Fehler: ' + data);
      });
      });
      }).connect({
      host: '10.100.10.12', // IP des RPi
      port: 22,
      username: 'root',
      password: 'root'
      });
      }


      Für die Steckdosen habe ich 5 Datenpunkte angelegt. Steckdosen 1-4 werden in VIS mit basic - Bulb on/off gesteuert und funktionieren auch.
      Steckdose 5 steuere ich über Blockly mit einem Timer, geht auch.
      Was ich allerdings nicht verstehe, Steckdose 1, 3, und 4 liefern in den Objekten 0/1, 2 und 5 jedoch true/false. Die einzelnen Blöcke im Script habe ich mit copy/paste angelegt und sind identisch.
      Sicherlich könnte man das Script vereinfachen, dies übersteigt aber mein Können und für mich ist wichtig, dass es funktioniert.
      Für die Zukunft würde mich schon interessieren, woher diese unterschiedlichen states kommen.
      steckdosen.png

      Vielen Dank im Voraus

      A Offline
      A Offline
      Adnim
      schrieb am zuletzt editiert von
      #2

      @mcfly11111 sagte in Verständnisfrage:

      sername: 'root',
      password: 'root'

      passwort ist aber einfach :male-detective:

      womit hast du den die Datenpunkte angelegt? die müssen boolean sein? aber java übersetzt auch immer 0-1 ->an-aus

      1 Antwort Letzte Antwort
      0
      • C Offline
        C Offline
        charakterkopf
        schrieb am zuletzt editiert von
        #3

        Hi :)

        Neben den Datenpunkt kannst du ja den Datentyp des States einstellen:
        Stift Symbol drücken- > Und dann unter Art

        Logikwert (True, False)
        oder
        Zahl (0,1,2,.......)

        auswählen.

        Wenn du beim erstellen der Datenpunkte z.B. Gemischt ausgewählt hast verändert sich der Datenpunkt.

        Du schreibst per Script 0/1 rein. Bulb aber true, false. Dank der interpretation von Iobroker 0=false und 1 = true funktioniert es.

        1 Antwort Letzte Antwort
        0
        • M Offline
          M Offline
          mcfly11111
          schrieb am zuletzt editiert von
          #4

          Hi,
          war das Wochenende nicht zu Hause.
          Die Datenpunkte habe ich per script angelegt.


          createState('steckdosen.steckdose_1', 0, { type: 'number' });
          createState('steckdosen.steckdose_2', 0, { type: 'number' });
          createState('steckdosen.steckdose_3', 0, { type: 'number' });
          createState('steckdosen.steckdose_4', 0, { type: 'number' });
          createState('steckdosen.steckdose_5', 0, { type: 'number' });

          Geändert hab ich die auch schon, Zahl oder Logikwert. Sind jedenfalls immer identisch. Bisher keine Änderung.
          Jetzt sämtliche steckdosen-DP in den Objekten gelöscht und per script, wie oben, neu angelegt. Alle DP zeigen jetzt 0/1! Warum das vorher anders war, wird mir aber dennoch ein Rätsel bleiben.
          Das Passwort wird noch geändert. Stammt noch vom setup und ist einfacher einzugeben.

          Danke

          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

          281

          Online

          32.6k

          Benutzer

          82.0k

          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