Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Skripten / Logik
    4. JavaScript
    5. [Script] Ordnerstruktur auslesen

    NEWS

    • ioBroker@Smart Living Forum Solingen, 14.06. - Agenda added

    • ioBroker goes Matter ... Matter Adapter in Stable

    • Monatsrückblick - April 2025

    [Script] Ordnerstruktur auslesen

    This topic has been deleted. Only users with topic management privileges can see it.
    • Z
      znyde last edited by

      Hallo zusammen,

      ich lese mithilfe JS meinen MQTT Ordner aus um daraus ein JSON Objekt zu erstellen...

      Ordnerstrukrur:
      mqtt.0.hersteller.generation.stadt.strasse.nummer.datenpunkte.weiteredatenpunkte.... (in so einem ordner liegen gerne 200 datenpunkte)

      $('mqtt.0.hersteller.generation.*').each(function(id, i) {  //MQTT Ordnerstruktur durchsuchen
         // console.log(id)
          let stadt = id.split('.')[4];
          let strasse = id.split('.')[5];
          let nr = id.split('.')[6];
          if(devices.indexOf(stadt) == -1) devices.push(stadt); //Variablen mit gleichen namen entfernen
          if(devices.indexOf(strasse) == -1) devices.push(strasse);  //Variablen mit gleichen namen entfernen
          if(devices.indexOf(nr) == -1) devices.push(nr);  //Variablen mit gleichen namen entfernen
      });
      // array zusammensetzen
      for(var i=0; i< devices.length;i++)
      {
          if(i%3==0)
                  {
          devices2.push(devices[i]+"."+devices[i+1]+"."+ devices[i+2]); // zusammensetzen stadt.strasse.nr
                  }
               
      }
      
       setState("0_userdata.0.hersteller.generation.anlagen", JSON.stringify(devices2));
      

      jetzt kommt es aber vor dass ich im Bereich Stadt zwei Strassen habe und das ganze leider nicht mehr so funktioniert... d.h. das array verschiebt sich...

      hat hier jemand eine Idee?

      VG
      Dome

      paul53 1 Reply Last reply Reply Quote 0
      • paul53
        paul53 @znyde last edited by paul53

        @znyde
        Weshalb so kompliziert in 2 Schritten? Vorschlag:

        const devices = [];
        $('mqtt.0.hersteller.generation.*').each(function(id, i) {  //MQTT Ordnerstruktur durchsuchen
           // console.log(id)
            id = id.split('.');
            let adresse = id[4] + '.' + id[5] + '.' + id[6];
            if(devices.indexOf(adresse) == -1) devices.push(adresse); //Variablen mit gleichen namen entfernen
        });
        setState("0_userdata.0.hersteller.generation.anlagen", JSON.stringify(devices), true);
        
        1 Reply Last reply Reply Quote 1
        • Z
          znyde last edited by

          Natürlich 🤦‍♂️ wie dumm von mir

          Danke klappt bestens

          1 Reply Last reply Reply Quote 0
          • First post
            Last post

          Support us

          ioBroker
          Community Adapters
          Donate

          807
          Online

          31.7k
          Users

          79.8k
          Topics

          1.3m
          Posts

          2
          3
          257
          Loading More Posts
          • Oldest to Newest
          • Newest to Oldest
          • Most Votes
          Reply
          • Reply as topic
          Log in to reply
          Community
          Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen
          The ioBroker Community 2014-2023
          logo