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

    @liv-in-sky also am besten wäre das Locked Symbol 🔒 wahrscheinlich ist die Bahn dann defekt oder über Winterzeit geschlossen...

    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
    #40

    @Alexxx2005 ich schau mal - bitte poste scripts im code tag

    Image 2.png

    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 Offline
      A Offline
      Alexxx2005
      schrieb am zuletzt editiert von
      #41

      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 1 Antwort Letzte Antwort
      1
      • 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

                              289

                              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