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. Javscript mehrere Objekte auslesen und verarbeiten

NEWS

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

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

  • Weihnachtsangebot 2025! 🎄
    BluefoxB
    Bluefox
    25
    1
    2.1k

Javscript mehrere Objekte auslesen und verarbeiten

Geplant Angeheftet Gesperrt Verschoben JavaScript
javascript
2 Beiträge 2 Kommentatoren 371 Aufrufe 2 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.
  • D Offline
    D Offline
    DerT
    Forum Testing
    schrieb am zuletzt editiert von
    #1

    Hallo Zusammen,

    ich würde gerne mehrere Zustände auf einmal auslesen und verarbeiten.
    Das Script soll mit einer gewissen Verzögerung meine 433Mhz Steckdosen schalten.
    Das brauche ich, da manchmal das Signal nicht korrekt ankommt und ich es so einfach wiederholt sende.
    Nun habe ich ein Array mit den aktuellen Steckdosen definiert.
    Das funktioniert soweit auch.
    Ich würde das ganze aber gerne dynamischen machen und nicht jede neue Steckdose immer hinzufügen müssen. (Fehlerquellen minimieren)
    Also möchte ich einfach ein Array erzeugen welches alle States beinhaltet die unter dem Ordner "OwnDevices.0.433mhzPlugs." liegen.

    So sieht meine aktuelle Struktur aus.
    2cf1161e-e2b5-419e-9582-675fe3a946b5-image.png

    Diese kann aber nach belieben angepasst werden.

    Und so sieht mein aktuelles Script aus.
    Gibt es außerdem eine Möglichkeit den Pfad des aktuellen Scriptes auszulesen?

    Danke und Gruß

    T

    var ThisScript = "javascript.0.scriptEnabled.Licht.433Mhz.433MhzRetrigger";
    var StartTime = getState(ThisScript).lc;
    var Duration = 20000; //20 Sekunden
    var EndTime = StartTime + Duration;
    var PlugRootFolder = "OwnDevices.0.433mhzPlugs.";
    var Plugspathes = ["10011.PlugA", "10011.PlugB", "10011.PlugC"];
    var delay = 0;
    
    for (var i = 0; i <= 3; i++) {
        Plugspathes.forEach(function (Plugpath) {
            var PlugId = PlugRootFolder + Plugpath;
            var PlugState = getState(PlugId).val;
    
            setTimeout(function () {
                SendCommand(PlugId, PlugState);
                
            }, delay);
    
            delay += 1000;
        });
    };
    
    setTimeout(function () {
        stopScript(); //No Error, it stops this script
    }, delay);
    
    
    //************************ Functions *********************
    function SendCommand(PlugId, state) {
        var ssh = 'ssh pi@****************** "';
        var path = '/home/pi/programs/433Utils/RPi_utils/./codesend ';
        if (state) {
            var Code = getState(PlugId + '.CodeOn').val;
        }
        else {
            var Code = getState(PlugId + '.CodeOff').val;
        };
        var command = ssh + path + Code + '"';
        log ("Send Command: " + command)
        exec(command);
    };
    //************************ Functions *********************
    
    paul53P 1 Antwort Letzte Antwort
    0
    • D DerT

      Hallo Zusammen,

      ich würde gerne mehrere Zustände auf einmal auslesen und verarbeiten.
      Das Script soll mit einer gewissen Verzögerung meine 433Mhz Steckdosen schalten.
      Das brauche ich, da manchmal das Signal nicht korrekt ankommt und ich es so einfach wiederholt sende.
      Nun habe ich ein Array mit den aktuellen Steckdosen definiert.
      Das funktioniert soweit auch.
      Ich würde das ganze aber gerne dynamischen machen und nicht jede neue Steckdose immer hinzufügen müssen. (Fehlerquellen minimieren)
      Also möchte ich einfach ein Array erzeugen welches alle States beinhaltet die unter dem Ordner "OwnDevices.0.433mhzPlugs." liegen.

      So sieht meine aktuelle Struktur aus.
      2cf1161e-e2b5-419e-9582-675fe3a946b5-image.png

      Diese kann aber nach belieben angepasst werden.

      Und so sieht mein aktuelles Script aus.
      Gibt es außerdem eine Möglichkeit den Pfad des aktuellen Scriptes auszulesen?

      Danke und Gruß

      T

      var ThisScript = "javascript.0.scriptEnabled.Licht.433Mhz.433MhzRetrigger";
      var StartTime = getState(ThisScript).lc;
      var Duration = 20000; //20 Sekunden
      var EndTime = StartTime + Duration;
      var PlugRootFolder = "OwnDevices.0.433mhzPlugs.";
      var Plugspathes = ["10011.PlugA", "10011.PlugB", "10011.PlugC"];
      var delay = 0;
      
      for (var i = 0; i <= 3; i++) {
          Plugspathes.forEach(function (Plugpath) {
              var PlugId = PlugRootFolder + Plugpath;
              var PlugState = getState(PlugId).val;
      
              setTimeout(function () {
                  SendCommand(PlugId, PlugState);
                  
              }, delay);
      
              delay += 1000;
          });
      };
      
      setTimeout(function () {
          stopScript(); //No Error, it stops this script
      }, delay);
      
      
      //************************ Functions *********************
      function SendCommand(PlugId, state) {
          var ssh = 'ssh pi@****************** "';
          var path = '/home/pi/programs/433Utils/RPi_utils/./codesend ';
          if (state) {
              var Code = getState(PlugId + '.CodeOn').val;
          }
          else {
              var Code = getState(PlugId + '.CodeOff').val;
          };
          var command = ssh + path + Code + '"';
          log ("Send Command: " + command)
          exec(command);
      };
      //************************ Functions *********************
      
      paul53P Offline
      paul53P Offline
      paul53
      schrieb am zuletzt editiert von
      #2

      @DerT sagte:

      Gibt es außerdem eine Möglichkeit den Pfad des aktuellen Scriptes auszulesen?

      Variable name.

      Bitte verzichtet auf Chat-Nachrichten, denn die Handhabung ist grauenhaft !
      Produktiv: RPi 2 mit S.USV, HM-MOD-RPI und SLC-USB-Stick mit root fs

      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

      696

      Online

      32.6k

      Benutzer

      82.1k

      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