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. ioBroker Allgemein
  4. [gelöst] Adapter - Parser / Wartezeiten auslesen

NEWS

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

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

  • Weihnachtsangebot 2025! 🎄
    BluefoxB
    Bluefox
    25
    1
    2.4k

[gelöst] Adapter - Parser / Wartezeiten auslesen

Geplant Angeheftet Gesperrt Verschoben ioBroker Allgemein
parser adapter
53 Beiträge 5 Kommentatoren 4.0k Aufrufe 5 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.
  • A Alexxx2005

    Ah so ist's richtig :-)

    var cacheSelector = $('state[id=parser.0.*]');
    var cacheSelector = $('[id=parser.0.*]');
    schedule( "*/03 * * * * *",  function () {   
    var sortArr=[];
    var htmlString ="<table><tr><td>Bahn   </td><td>Wartezeit   </td><td>   </td></tr>";
    //console.log(cacheSelector);
    var counter =0;
    cacheSelector.each(function(id, i) {
    counter = counter+1
    var devicename = getObject(id).common.name;
    var ip = id.replace(/_/g, ".");
    var ip = ip.replace(/parser.0./g, "");
    // log(id + " : " + devicename + " : " + ip );
    var devicenameName=devicename;
    devicename="Park.Wartezeit"+counter.toString()+".BahnName";
    createState(devicename, 'empty', { name: 'Name der Bahn', desc: '', type: 'string', role: '',read: true, write: true });
    setStateDelayed(devicename, devicenameName, 800);
    devicename="Park.Wartezeit"+counter.toString()+".Bahn";
    setStateDelayed(devicename, ip, 800);
    createState('empty', { name: 'Bahn', desc: '', type: 'string', role: '',read: true, write: true });
    var wert2 = getState(id).val;
    var wert1 = getState(id).val;
    if (wert2) wert2 = "✅";
    if (!wert2) wert2= "❌";
    let help = [ip,wert1,wert2];
    sortArr.push(help);
    //log(sortArr[0]);
    });
    function numSort(a, b) { 
     return parseInt(b[1]) - parseInt(a[1]);
    } 
    sortArr.sort(numSort);
          for (var i=0; i<sortArr.length;i++) {
              htmlString=htmlString+"<tr><td>" + sortArr[i][0] + "   </td><td>" + sortArr[i][1] + "   </td><td>" + sortArr[i][2] +  "</td></tr>";
          }      
    //htmlString=htmlString.concat("<tr><td>" + devicenameName + "   </td><td>" + ip + "   </td><td>" + wert1 + "</td></tr>");
    //log(counter);
    createState('Park.StringHTML', 0, {name: 'StringHTML', desc: '', type: 'string', role: '',read: true, write: true });
    createState('Park.Anzahl', 0, { name: 'Anzahl', desc: 'Anzahl der Geräte', type: 'number', unit: '', min: '0', max: '255', role: '',read: true, write: true });
    setStateDelayed('Park.Anzahl', counter, 800);
    setStateDelayed('Park.StringHTML', htmlString.concat("</table>"), 800);
    });
    

    liv-in-skyL Offline
    liv-in-skyL Offline
    liv-in-sky
    schrieb am zuletzt editiert von liv-in-sky
    #42

    @Alexxx2005

    ok neuer test

    
    
    schedule( "*/20 * * * * *", function () {
    var cacheSelector = $('[id=parser.0.*]');
    var sortArr=[];
    var htmlString ="<table><tr><td>Bahn </td><td>Wartezeit </td><td> </td><td>&ensp;&ensp;&ensp;</td><td>Bahn &ensp;&ensp;&ensp;</td><td>Wartezeit </td><td> </td></tr>";/*+
                           "<tr>&ensp;<td></td><td></td><td></td><td></td><td></td><td></td></tr>" */;
    //console.log(cacheSelector);
    var counter =0;
    
    cacheSelector.each(function(id, i) {
    
    counter = counter+1
    
    var devicename = getObject(id).common.name;
    
    var ip = id.replace(/_/g, ".");
    
    var ip = ip.replace(/parser.0./g, "");
    
    
    var ip = id.replace(/_/g, ".");
    var ip = ip.replace(/parser.0./g, "");
    // log(id + " : " + devicename + " : " + ip );
    var devicenameName=devicename;
    
    devicename="Park.Wartezeit"+counter.toString()+".BahnName";
    createState(devicename, 'empty', { name: 'Name der Bahn', desc: '', type: 'string', role: '',read: true, write: true });
    setStateDelayed(devicename, devicenameName, 800);
    devicename="Park.Wartezeit"+counter.toString()+".Bahn";
    setStateDelayed(devicename, ip, 800);
    createState(devicename,'empty', { name: 'Bahn', desc: '', type: 'string', role: '',read: true, write: true });
    var wert1;
    var wert2;
    if ( getState(id).val==null) {wert1= "🔒"; wert2="999999";} 
    else {
         
         var wert2 = getState(id).val;
         var wert1 = getState(id).val;
         if (wert1) wert1 = "✅";
         if (!wert1) wert1= "❌";
    }
    let help = [ip,wert2,wert1];
    sortArr.push(help);
    
    });
    function numSort(a, b) {
    return parseInt(a[1]) - parseInt(b[1]);
    }
    sortArr.sort(numSort);
    for (var i=0; i<sortArr.length;i++) {   
       if (sortArr[i][1]!="999999") {
       if(i%2==0) {htmlString=htmlString+"<tr><td>" + sortArr[i][0] + "</td><td>&ensp;&ensp;&ensp;" + sortArr[i][1] + "&ensp;&ensp;&ensp;</td><td>" + sortArr[i][2]+"&ensp;&ensp;&ensp;"+"<td>&ensp;&ensp;&ensp;</td>" ;}// +"</td>"         + " <td>"        + " </td><td>"   + "</td></tr>";}
       else{htmlString=htmlString+      "<td>" + sortArr[i][0]  + " </td><td>&ensp;&ensp;&ensp;"   + sortArr[i][1]  + "&ensp;&ensp;&ensp;</td><td>"   + sortArr[i][2] + "</td></tr>"}}
       else{
           if(i%2==0) {htmlString=htmlString+"<tr><td>" + sortArr[i][0] + "</td><td>&ensp;&ensp;&ensp;" + "out" + "&ensp;&ensp;&ensp;</td><td>" + sortArr[i][2]+"&ensp;&ensp;&ensp;" ;}// +"</td>"         + " <td>"        + " </td><td>"   + "</td></tr>";}
       else{htmlString=htmlString+      "<td>" + sortArr[i][0]  + " </td><td>&ensp;&ensp;&ensp;"   + "out"  + "&ensp;&ensp;&ensp;</td><td>"   + sortArr[i][2] + "</td></tr>"}
    
       }
    
    }
    //htmlString=htmlString.concat("<tr><td>" + devicenameName + " </td><td>" + ip + " </td><td>" + wert1 + "</td></tr>");
    //log(counter);
    createState('Park.StringHTML', 0, {name: 'StringHTML', desc: '', type: 'string', role: '',read: true, write: true });
    createState('Park.Anzahl', 0, { name: 'Anzahl', desc: 'Anzahl der Geräte', type: 'number', unit: '', min: '0', max: '255', role: '',read: true, write: true });
    setStateDelayed('Park.Anzahl', counter, 800);
    setStateDelayed('Park.StringHTML', htmlString.concat("</table>"), 800);
    });
    

    ich habe mal versucht, das ganze in 2 tabellen nebeneinander darzustellen - weiß nicht ob das gefällt ?

    test3.gif

    nach einem gelösten Thread wäre es sinnvoll dies in der Überschrift des ersten Posts einzutragen [gelöst]-... Bitte benutzt das Voting rechts unten im Beitrag wenn er euch geholfen hat. Forum-Tools: PicPick https://picpick.app/en/download/ und ScreenToGif https://www.screentogif.com/downloads.html

    A 1 Antwort Letzte Antwort
    0
    • liv-in-skyL liv-in-sky

      @Alexxx2005

      ok neuer test

      
      
      schedule( "*/20 * * * * *", function () {
      var cacheSelector = $('[id=parser.0.*]');
      var sortArr=[];
      var htmlString ="<table><tr><td>Bahn </td><td>Wartezeit </td><td> </td><td>&ensp;&ensp;&ensp;</td><td>Bahn &ensp;&ensp;&ensp;</td><td>Wartezeit </td><td> </td></tr>";/*+
                             "<tr>&ensp;<td></td><td></td><td></td><td></td><td></td><td></td></tr>" */;
      //console.log(cacheSelector);
      var counter =0;
      
      cacheSelector.each(function(id, i) {
      
      counter = counter+1
      
      var devicename = getObject(id).common.name;
      
      var ip = id.replace(/_/g, ".");
      
      var ip = ip.replace(/parser.0./g, "");
      
      
      var ip = id.replace(/_/g, ".");
      var ip = ip.replace(/parser.0./g, "");
      // log(id + " : " + devicename + " : " + ip );
      var devicenameName=devicename;
      
      devicename="Park.Wartezeit"+counter.toString()+".BahnName";
      createState(devicename, 'empty', { name: 'Name der Bahn', desc: '', type: 'string', role: '',read: true, write: true });
      setStateDelayed(devicename, devicenameName, 800);
      devicename="Park.Wartezeit"+counter.toString()+".Bahn";
      setStateDelayed(devicename, ip, 800);
      createState(devicename,'empty', { name: 'Bahn', desc: '', type: 'string', role: '',read: true, write: true });
      var wert1;
      var wert2;
      if ( getState(id).val==null) {wert1= "🔒"; wert2="999999";} 
      else {
           
           var wert2 = getState(id).val;
           var wert1 = getState(id).val;
           if (wert1) wert1 = "✅";
           if (!wert1) wert1= "❌";
      }
      let help = [ip,wert2,wert1];
      sortArr.push(help);
      
      });
      function numSort(a, b) {
      return parseInt(a[1]) - parseInt(b[1]);
      }
      sortArr.sort(numSort);
      for (var i=0; i<sortArr.length;i++) {   
         if (sortArr[i][1]!="999999") {
         if(i%2==0) {htmlString=htmlString+"<tr><td>" + sortArr[i][0] + "</td><td>&ensp;&ensp;&ensp;" + sortArr[i][1] + "&ensp;&ensp;&ensp;</td><td>" + sortArr[i][2]+"&ensp;&ensp;&ensp;"+"<td>&ensp;&ensp;&ensp;</td>" ;}// +"</td>"         + " <td>"        + " </td><td>"   + "</td></tr>";}
         else{htmlString=htmlString+      "<td>" + sortArr[i][0]  + " </td><td>&ensp;&ensp;&ensp;"   + sortArr[i][1]  + "&ensp;&ensp;&ensp;</td><td>"   + sortArr[i][2] + "</td></tr>"}}
         else{
             if(i%2==0) {htmlString=htmlString+"<tr><td>" + sortArr[i][0] + "</td><td>&ensp;&ensp;&ensp;" + "out" + "&ensp;&ensp;&ensp;</td><td>" + sortArr[i][2]+"&ensp;&ensp;&ensp;" ;}// +"</td>"         + " <td>"        + " </td><td>"   + "</td></tr>";}
         else{htmlString=htmlString+      "<td>" + sortArr[i][0]  + " </td><td>&ensp;&ensp;&ensp;"   + "out"  + "&ensp;&ensp;&ensp;</td><td>"   + sortArr[i][2] + "</td></tr>"}
      
         }
      
      }
      //htmlString=htmlString.concat("<tr><td>" + devicenameName + " </td><td>" + ip + " </td><td>" + wert1 + "</td></tr>");
      //log(counter);
      createState('Park.StringHTML', 0, {name: 'StringHTML', desc: '', type: 'string', role: '',read: true, write: true });
      createState('Park.Anzahl', 0, { name: 'Anzahl', desc: 'Anzahl der Geräte', type: 'number', unit: '', min: '0', max: '255', role: '',read: true, write: true });
      setStateDelayed('Park.Anzahl', counter, 800);
      setStateDelayed('Park.StringHTML', htmlString.concat("</table>"), 800);
      });
      

      ich habe mal versucht, das ganze in 2 tabellen nebeneinander darzustellen - weiß nicht ob das gefällt ?

      test3.gif

      A Offline
      A Offline
      Alexxx2005
      schrieb am zuletzt editiert von
      #43

      @liv-in-sky

      doch das ist super , sieht gut aus. Es zeigt bei mir nur die oberen drei rechten Spalten zu weit links an , es da noch ein kleiner Bug im "htmlstring" oder warum zeigt es die drei markierten Bahnen so an ?

      Bug.PNG

      Grüße Alex

      HomoranH liv-in-skyL 3 Antworten Letzte Antwort
      0
      • A Alexxx2005

        @liv-in-sky

        doch das ist super , sieht gut aus. Es zeigt bei mir nur die oberen drei rechten Spalten zu weit links an , es da noch ein kleiner Bug im "htmlstring" oder warum zeigt es die drei markierten Bahnen so an ?

        Bug.PNG

        Grüße Alex

        HomoranH Nicht stören
        HomoranH Nicht stören
        Homoran
        Global Moderator Administrators
        schrieb am zuletzt editiert von
        #44

        @Alexxx2005 sagte in Adapter - Parser soll Wartezeiten auslesen:

        Es zeigt bei mir nur die oberen drei rechten Spalten zu weit links an

        ich tippe darauf, dass es an dem Schloss - icon, resp. der dazugehörigen Formatierung liegt

        kein Support per PN! - Fragen im Forum stellen - es gibt fast nichts, was nicht auch für andere interessant ist.

        Benutzt das Voting rechts unten im Beitrag wenn er euch geholfen hat.

        der Installationsfixer: curl -fsL https://iobroker.net/fix.sh | bash -

        1 Antwort Letzte Antwort
        0
        • A Alexxx2005

          @liv-in-sky

          doch das ist super , sieht gut aus. Es zeigt bei mir nur die oberen drei rechten Spalten zu weit links an , es da noch ein kleiner Bug im "htmlstring" oder warum zeigt es die drei markierten Bahnen so an ?

          Bug.PNG

          Grüße Alex

          liv-in-skyL Offline
          liv-in-skyL Offline
          liv-in-sky
          schrieb am zuletzt editiert von
          #45

          @Alexxx2005 ich überprüfe nochmal - falls du was am script geändert hast, bitte wieder posten, damit ich damit arbeiten kann, sonst musst du wieder nachträglich ändern

          nur zur sicherheit - die werte stimmen alle ? es geht nur um die formatierung ?

          nach einem gelösten Thread wäre es sinnvoll dies in der Überschrift des ersten Posts einzutragen [gelöst]-... Bitte benutzt das Voting rechts unten im Beitrag wenn er euch geholfen hat. Forum-Tools: PicPick https://picpick.app/en/download/ und ScreenToGif https://www.screentogif.com/downloads.html

          1 Antwort Letzte Antwort
          0
          • A Alexxx2005

            @liv-in-sky

            doch das ist super , sieht gut aus. Es zeigt bei mir nur die oberen drei rechten Spalten zu weit links an , es da noch ein kleiner Bug im "htmlstring" oder warum zeigt es die drei markierten Bahnen so an ?

            Bug.PNG

            Grüße Alex

            liv-in-skyL Offline
            liv-in-skyL Offline
            liv-in-sky
            schrieb am zuletzt editiert von liv-in-sky
            #46

            @Alexxx2005 du kannst mal zum test das schloss mit einem haken austauschen und nachsehen, ob das problem bleibt - somit könnten wir das icon ausschließem ( @Homoran )

            nach einem gelösten Thread wäre es sinnvoll dies in der Überschrift des ersten Posts einzutragen [gelöst]-... Bitte benutzt das Voting rechts unten im Beitrag wenn er euch geholfen hat. Forum-Tools: PicPick https://picpick.app/en/download/ und ScreenToGif https://www.screentogif.com/downloads.html

            A 1 Antwort Letzte Antwort
            0
            • liv-in-skyL liv-in-sky

              @Alexxx2005 du kannst mal zum test das schloss mit einem haken austauschen und nachsehen, ob das problem bleibt - somit könnten wir das icon ausschließem ( @Homoran )

              A Offline
              A Offline
              Alexxx2005
              schrieb am zuletzt editiert von Alexxx2005
              #47

              @Homoran

              beim Haken oder X ist es gleich

              bug2.PNG

              @liv-in-sky

              im Skript habe ich nur bei Zeile 54/55 das Wort "out" entfernt

              Zeile54.PNG

              und die Sortierung (b und a) in Zeile 46 sonst ist alles genau gleich wie das
              wo du gepostet hast :-)

              Grüße Alex

              liv-in-skyL 2 Antworten Letzte Antwort
              0
              • A Alexxx2005

                @Homoran

                beim Haken oder X ist es gleich

                bug2.PNG

                @liv-in-sky

                im Skript habe ich nur bei Zeile 54/55 das Wort "out" entfernt

                Zeile54.PNG

                und die Sortierung (b und a) in Zeile 46 sonst ist alles genau gleich wie das
                wo du gepostet hast :-)

                Grüße Alex

                liv-in-skyL Offline
                liv-in-skyL Offline
                liv-in-sky
                schrieb am zuletzt editiert von
                #48

                @Alexxx2005ok - teste gerade - komme schon auf die spur :-)

                nach einem gelösten Thread wäre es sinnvoll dies in der Überschrift des ersten Posts einzutragen [gelöst]-... Bitte benutzt das Voting rechts unten im Beitrag wenn er euch geholfen hat. Forum-Tools: PicPick https://picpick.app/en/download/ und ScreenToGif https://www.screentogif.com/downloads.html

                A 1 Antwort Letzte Antwort
                0
                • liv-in-skyL liv-in-sky

                  @Alexxx2005ok - teste gerade - komme schon auf die spur :-)

                  A Offline
                  A Offline
                  Alexxx2005
                  schrieb am zuletzt editiert von
                  #49

                  @liv-in-sky

                  ja das denke ich mir , habe nun die Tage auch einiges gelernt, hilft mir dann auch wieder wo anders...

                  1 Antwort Letzte Antwort
                  0
                  • A Alexxx2005

                    @Homoran

                    beim Haken oder X ist es gleich

                    bug2.PNG

                    @liv-in-sky

                    im Skript habe ich nur bei Zeile 54/55 das Wort "out" entfernt

                    Zeile54.PNG

                    und die Sortierung (b und a) in Zeile 46 sonst ist alles genau gleich wie das
                    wo du gepostet hast :-)

                    Grüße Alex

                    liv-in-skyL Offline
                    liv-in-skyL Offline
                    liv-in-sky
                    schrieb am zuletzt editiert von
                    #50

                    @Alexxx2005 tausche mal diesen block aus:

                    sortArr.sort(numSort);
                    for (var i=0; i<sortArr.length;i++) {   
                       if (sortArr[i][1]!="999999") {
                       if(i%2==0)     {htmlString=htmlString+"<tr><td>" + sortArr[i][0] + "</td><td>&ensp;&ensp;&ensp;" + sortArr[i][1] + "&ensp;&ensp;&ensp;</td><td>" + sortArr[i][2]+"&ensp;&ensp;&ensp;"+"<td>&ensp;&ensp;&ensp;</td>" ;}// +"</td>"         + " <td>"        + " </td><td>"   + "</td></tr>";}
                       else{htmlString=htmlString+      "<td>" + sortArr[i][0]  + " </td><td>&ensp;&ensp;&ensp;"   + sortArr[i][1]  + "&ensp;&ensp;&ensp;</td><td>"   + sortArr[i][2] + "</td></tr>"}}
                       else{
                           if(i%2==0) {htmlString=htmlString+"<tr><td>" + sortArr[i][0] + "</td><td>&ensp;&ensp;&ensp;" + "" + "&ensp;&ensp;&ensp;</td><td>" + sortArr[i][2]+"&ensp;&ensp;&ensp;"+"<td>&ensp;&ensp;&ensp;" ;}// +"</td>"         + " <td>"        + " </td><td>"   + "</td></tr>";}
                       else{htmlString=htmlString+      "<td>"+ sortArr[i][0]  + " </td><td>&ensp;&ensp;&ensp;"   + ""  + "&ensp;&ensp;&ensp;</td><td>"   + sortArr[i][2] + "</td></tr>"}
                    
                       }
                    

                    nach einem gelösten Thread wäre es sinnvoll dies in der Überschrift des ersten Posts einzutragen [gelöst]-... Bitte benutzt das Voting rechts unten im Beitrag wenn er euch geholfen hat. Forum-Tools: PicPick https://picpick.app/en/download/ und ScreenToGif https://www.screentogif.com/downloads.html

                    A 1 Antwort Letzte Antwort
                    1
                    • liv-in-skyL liv-in-sky

                      @Alexxx2005 tausche mal diesen block aus:

                      sortArr.sort(numSort);
                      for (var i=0; i<sortArr.length;i++) {   
                         if (sortArr[i][1]!="999999") {
                         if(i%2==0)     {htmlString=htmlString+"<tr><td>" + sortArr[i][0] + "</td><td>&ensp;&ensp;&ensp;" + sortArr[i][1] + "&ensp;&ensp;&ensp;</td><td>" + sortArr[i][2]+"&ensp;&ensp;&ensp;"+"<td>&ensp;&ensp;&ensp;</td>" ;}// +"</td>"         + " <td>"        + " </td><td>"   + "</td></tr>";}
                         else{htmlString=htmlString+      "<td>" + sortArr[i][0]  + " </td><td>&ensp;&ensp;&ensp;"   + sortArr[i][1]  + "&ensp;&ensp;&ensp;</td><td>"   + sortArr[i][2] + "</td></tr>"}}
                         else{
                             if(i%2==0) {htmlString=htmlString+"<tr><td>" + sortArr[i][0] + "</td><td>&ensp;&ensp;&ensp;" + "" + "&ensp;&ensp;&ensp;</td><td>" + sortArr[i][2]+"&ensp;&ensp;&ensp;"+"<td>&ensp;&ensp;&ensp;" ;}// +"</td>"         + " <td>"        + " </td><td>"   + "</td></tr>";}
                         else{htmlString=htmlString+      "<td>"+ sortArr[i][0]  + " </td><td>&ensp;&ensp;&ensp;"   + ""  + "&ensp;&ensp;&ensp;</td><td>"   + sortArr[i][2] + "</td></tr>"}
                      
                         }
                      

                      A Offline
                      A Offline
                      Alexxx2005
                      schrieb am zuletzt editiert von
                      #51

                      @liv-in-sky

                      That's it :clap:

                      Somit wäre es komplett :

                      schedule( "*/20 * * * * *", function () {
                      var cacheSelector = $('[id=parser.0.*]');
                      var sortArr=[];
                      var htmlString ="<table><tr><td>Bahn </td><td>Wartezeit </td><td> </td><td>&ensp;&ensp;&ensp;</td><td>Bahn &ensp;&ensp;&ensp;</td><td>Wartezeit </td><td> </td></tr>";/*+
                                            "<tr>&ensp;<td></td><td></td><td></td><td></td><td></td><td></td></tr>" */;
                      //console.log(cacheSelector);
                      var counter =0;
                      
                      cacheSelector.each(function(id, i) {
                      
                      counter = counter+1
                      
                      var devicename = getObject(id).common.name;
                      
                      var ip = id.replace(/_/g, ".");
                      
                      var ip = ip.replace(/parser.0./g, "");
                      
                      
                      var ip = id.replace(/_/g, ".");
                      var ip = ip.replace(/parser.0./g, "");
                      // log(id + " : " + devicename + " : " + ip );
                      var devicenameName=devicename;
                      
                      devicename="Park.Wartezeit"+counter.toString()+".BahnName";
                      createState(devicename, 'empty', { name: 'Name der Bahn', desc: '', type: 'string', role: '',read: true, write: true });
                      setStateDelayed(devicename, devicenameName, 800);
                      devicename="Park.Wartezeit"+counter.toString()+".Bahn";
                      setStateDelayed(devicename, ip, 800);
                      createState(devicename,'empty', { name: 'Bahn', desc: '', type: 'string', role: '',read: true, write: true });
                      var wert1;
                      var wert2;
                      if ( getState(id).val==null) {wert1= "🔒"; wert2="999999";} 
                      else {
                          
                          var wert2 = getState(id).val;
                          var wert1 = getState(id).val;
                          if (wert1) wert1 = "✅";
                          if (!wert1) wert1= "❌";
                      }
                      let help = [ip,wert2,wert1];
                      sortArr.push(help);
                      
                      });
                      function numSort(a, b) {
                      return parseInt(b[1]) - parseInt(a[1]);
                      }
                      sortArr.sort(numSort);
                      for (var i=0; i<sortArr.length;i++) {   
                        if (sortArr[i][1]!="999999") {
                        if(i%2==0)     {htmlString=htmlString+"<tr><td>" + sortArr[i][0] + "</td><td>&ensp;&ensp;&ensp;" + sortArr[i][1] + "&ensp;&ensp;&ensp;</td><td>" + sortArr[i][2]+"&ensp;&ensp;&ensp;"+"<td>&ensp;&ensp;&ensp;</td>" ;}// +"</td>"         + " <td>"        + " </td><td>"   + "</td></tr>";}
                        else{htmlString=htmlString+      "<td>" + sortArr[i][0]  + " </td><td>&ensp;&ensp;&ensp;"   + sortArr[i][1]  + "&ensp;&ensp;&ensp;</td><td>"   + sortArr[i][2] + "</td></tr>"}}
                        else{
                            if(i%2==0) {htmlString=htmlString+"<tr><td>" + sortArr[i][0] + "</td><td>&ensp;&ensp;&ensp;" + "" + "&ensp;&ensp;&ensp;</td><td>" + sortArr[i][2]+"&ensp;&ensp;&ensp;"+"<td>&ensp;&ensp;&ensp;" ;}// +"</td>"         + " <td>"        + " </td><td>"   + "</td></tr>";}
                        else{htmlString=htmlString+      "<td>"+ sortArr[i][0]  + " </td><td>&ensp;&ensp;&ensp;"   + ""  + "&ensp;&ensp;&ensp;</td><td>"   + sortArr[i][2] + "</td></tr>"}
                      
                        }
                      }
                      //htmlString=htmlString.concat("<tr><td>" + devicenameName + " </td><td>" + ip + " </td><td>" + wert1 + "</td></tr>");
                      //log(counter);
                      createState('Park.StringHTML', 0, {name: 'StringHTML', desc: '', type: 'string', role: '',read: true, write: true });
                      createState('Park.Anzahl', 0, { name: 'Anzahl', desc: 'Anzahl der Geräte', type: 'number', unit: '', min: '0', max: '255', role: '',read: true, write: true });
                      setStateDelayed('Park.Anzahl', counter, 800);
                      setStateDelayed('Park.StringHTML', htmlString.concat("</table>"), 800);
                      });
                      

                      Danke nochmal für alles !

                      liv-in-skyL 1 Antwort Letzte Antwort
                      0
                      • A Alexxx2005

                        @liv-in-sky

                        That's it :clap:

                        Somit wäre es komplett :

                        schedule( "*/20 * * * * *", function () {
                        var cacheSelector = $('[id=parser.0.*]');
                        var sortArr=[];
                        var htmlString ="<table><tr><td>Bahn </td><td>Wartezeit </td><td> </td><td>&ensp;&ensp;&ensp;</td><td>Bahn &ensp;&ensp;&ensp;</td><td>Wartezeit </td><td> </td></tr>";/*+
                                              "<tr>&ensp;<td></td><td></td><td></td><td></td><td></td><td></td></tr>" */;
                        //console.log(cacheSelector);
                        var counter =0;
                        
                        cacheSelector.each(function(id, i) {
                        
                        counter = counter+1
                        
                        var devicename = getObject(id).common.name;
                        
                        var ip = id.replace(/_/g, ".");
                        
                        var ip = ip.replace(/parser.0./g, "");
                        
                        
                        var ip = id.replace(/_/g, ".");
                        var ip = ip.replace(/parser.0./g, "");
                        // log(id + " : " + devicename + " : " + ip );
                        var devicenameName=devicename;
                        
                        devicename="Park.Wartezeit"+counter.toString()+".BahnName";
                        createState(devicename, 'empty', { name: 'Name der Bahn', desc: '', type: 'string', role: '',read: true, write: true });
                        setStateDelayed(devicename, devicenameName, 800);
                        devicename="Park.Wartezeit"+counter.toString()+".Bahn";
                        setStateDelayed(devicename, ip, 800);
                        createState(devicename,'empty', { name: 'Bahn', desc: '', type: 'string', role: '',read: true, write: true });
                        var wert1;
                        var wert2;
                        if ( getState(id).val==null) {wert1= "🔒"; wert2="999999";} 
                        else {
                            
                            var wert2 = getState(id).val;
                            var wert1 = getState(id).val;
                            if (wert1) wert1 = "✅";
                            if (!wert1) wert1= "❌";
                        }
                        let help = [ip,wert2,wert1];
                        sortArr.push(help);
                        
                        });
                        function numSort(a, b) {
                        return parseInt(b[1]) - parseInt(a[1]);
                        }
                        sortArr.sort(numSort);
                        for (var i=0; i<sortArr.length;i++) {   
                          if (sortArr[i][1]!="999999") {
                          if(i%2==0)     {htmlString=htmlString+"<tr><td>" + sortArr[i][0] + "</td><td>&ensp;&ensp;&ensp;" + sortArr[i][1] + "&ensp;&ensp;&ensp;</td><td>" + sortArr[i][2]+"&ensp;&ensp;&ensp;"+"<td>&ensp;&ensp;&ensp;</td>" ;}// +"</td>"         + " <td>"        + " </td><td>"   + "</td></tr>";}
                          else{htmlString=htmlString+      "<td>" + sortArr[i][0]  + " </td><td>&ensp;&ensp;&ensp;"   + sortArr[i][1]  + "&ensp;&ensp;&ensp;</td><td>"   + sortArr[i][2] + "</td></tr>"}}
                          else{
                              if(i%2==0) {htmlString=htmlString+"<tr><td>" + sortArr[i][0] + "</td><td>&ensp;&ensp;&ensp;" + "" + "&ensp;&ensp;&ensp;</td><td>" + sortArr[i][2]+"&ensp;&ensp;&ensp;"+"<td>&ensp;&ensp;&ensp;" ;}// +"</td>"         + " <td>"        + " </td><td>"   + "</td></tr>";}
                          else{htmlString=htmlString+      "<td>"+ sortArr[i][0]  + " </td><td>&ensp;&ensp;&ensp;"   + ""  + "&ensp;&ensp;&ensp;</td><td>"   + sortArr[i][2] + "</td></tr>"}
                        
                          }
                        }
                        //htmlString=htmlString.concat("<tr><td>" + devicenameName + " </td><td>" + ip + " </td><td>" + wert1 + "</td></tr>");
                        //log(counter);
                        createState('Park.StringHTML', 0, {name: 'StringHTML', desc: '', type: 'string', role: '',read: true, write: true });
                        createState('Park.Anzahl', 0, { name: 'Anzahl', desc: 'Anzahl der Geräte', type: 'number', unit: '', min: '0', max: '255', role: '',read: true, write: true });
                        setStateDelayed('Park.Anzahl', counter, 800);
                        setStateDelayed('Park.StringHTML', htmlString.concat("</table>"), 800);
                        });
                        

                        Danke nochmal für alles !

                        liv-in-skyL Offline
                        liv-in-skyL Offline
                        liv-in-sky
                        schrieb am zuletzt editiert von
                        #52

                        @Alexxx2005 gerne

                        schau mal in meine signatur - zum thread beenden

                        nach einem gelösten Thread wäre es sinnvoll dies in der Überschrift des ersten Posts einzutragen [gelöst]-... Bitte benutzt das Voting rechts unten im Beitrag wenn er euch geholfen hat. Forum-Tools: PicPick https://picpick.app/en/download/ und ScreenToGif https://www.screentogif.com/downloads.html

                        1 Antwort Letzte Antwort
                        0
                        • HomoranH Homoran

                          @Alexxx2005

                          nimm Badge[^>]*>(\d*) als RegEx für alle und verändere Num für die entsprechenden Bahnen von 0 bis 27

                          A Offline
                          A Offline
                          Alexxx2005
                          schrieb am zuletzt editiert von Alexxx2005
                          #53

                          @Homoran said in [gelöst] Adapter - Parser / Wartezeiten auslesen:

                          Badge[^>]>(\d)

                          Wenn ich "Heute geöffnet" auslesen möchte wie springe ich in eine Zweite Gruppe ?

                          Heute bis[^>]*>(\d*:)
                          

                          ergibt "19" aber wie komme ich dann auf 19:00 ?

                          gibt es dazu eine Doku ?

                          Grüße Alex

                          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
                          FAQ Cloud / IOT
                          HowTo: Node.js-Update
                          HowTo: Backup/Restore
                          Downloads
                          BLOG

                          297

                          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