Skip to content
  • Home
  • Recent
  • Tags
  • 0 Unread 0
  • Categories
  • Unreplied
  • Popular
  • 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

  • Default (No Skin)
  • No Skin
Collapse
ioBroker Logo

Community Forum

donate donate
  1. ioBroker Community Home
  2. Deutsch
  3. ioBroker Allgemein
  4. [gelöst] Adapter - Parser / Wartezeiten auslesen

NEWS

  • Monatsrückblick Januar/Februar 2026 ist online!
    BluefoxB
    Bluefox
    17
    1
    562

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

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

[gelöst] Adapter - Parser / Wartezeiten auslesen

Scheduled Pinned Locked Moved ioBroker Allgemein
parser adapter
53 Posts 5 Posters 4.2k Views 5 Watching
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • liv-in-skyL liv-in-sky

    @Alexxx2005 das null ist irgendwie falsch - da müßte 0 stehen - dann würde es auch sortiert werden

    paste mal dein momentanes script

    HomoranH Offline
    HomoranH Offline
    Homoran
    Global Moderator Administrators
    wrote on last edited by
    #33

    @liv-in-sky sagte in Adapter - Parser soll Wartezeiten auslesen:

    da müßte 0 stehen

    unendlich wäre sinnvoller ;-)

    kein Support per PN! - Fragen im Forum stellen -
    Benutzt das Voting rechts unten im Beitrag wenn er euch geholfen hat.
    Das Forum freut sich über eine Spende. Benutzt dazu den Spendenbutton im Header. Danke!
    der Installationsfixer: curl -fsL https://iobroker.net/fix.sh | bash -

    liv-in-skyL 1 Reply Last reply
    0
    • HomoranH Homoran

      @liv-in-sky sagte in Adapter - Parser soll Wartezeiten auslesen:

      da müßte 0 stehen

      unendlich wäre sinnvoller ;-)

      liv-in-skyL Offline
      liv-in-skyL Offline
      liv-in-sky
      wrote on last edited by
      #34

      @Homoran unendlich oder "not available"

      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

      HomoranH 1 Reply Last reply
      0
      • liv-in-skyL liv-in-sky

        @Homoran unendlich oder "not available"

        HomoranH Offline
        HomoranH Offline
        Homoran
        Global Moderator Administrators
        wrote on last edited by
        #35

        @liv-in-sky
        Wenn es in Zahlen ausgedrückt werden soll ist bei geschlossen die Wartezeit unendlich oder pragmatich 999(9999) je nach anzahl der Stellen

        kein Support per PN! - Fragen im Forum stellen -
        Benutzt das Voting rechts unten im Beitrag wenn er euch geholfen hat.
        Das Forum freut sich über eine Spende. Benutzt dazu den Spendenbutton im Header. Danke!
        der Installationsfixer: curl -fsL https://iobroker.net/fix.sh | bash -

        liv-in-skyL 1 Reply Last reply
        0
        • HomoranH Homoran

          @liv-in-sky
          Wenn es in Zahlen ausgedrückt werden soll ist bei geschlossen die Wartezeit unendlich oder pragmatich 999(9999) je nach anzahl der Stellen

          liv-in-skyL Offline
          liv-in-skyL Offline
          liv-in-sky
          wrote on last edited by
          #36

          @Homoran jo - da hast du wohl recht

          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 Reply Last reply
          0
          • liv-in-skyL liv-in-sky

            @Alexxx2005 und zeige mal, was in den parser.0 datenpunkten steht - ist da schon de fehler vom parsen ? "null" ist ein "fehler" und bedeutet nicht 0

            den müßte man dann noch abfangen im script

            A Offline
            A Offline
            Alexxx2005
            wrote on last edited by Alexxx2005
            #37

            @liv-in-sky

            parser.PNG

            Das "Null" steht drin weil die Bahn heute nicht geloggt wird kp.
            Sie erscheint auch nicht auf der Homepage , wenn ich z.b. einen
            falschen Link eingebe kommt ebenfalls "Null"

            Dachte man kann beim parser bei Ersatz eine Ersatzzahl definieren
            aber das funktioniert nicht.

            Grüße Alex

            liv-in-skyL 1 Reply Last reply
            0
            • A Alexxx2005

              @liv-in-sky

              parser.PNG

              Das "Null" steht drin weil die Bahn heute nicht geloggt wird kp.
              Sie erscheint auch nicht auf der Homepage , wenn ich z.b. einen
              falschen Link eingebe kommt ebenfalls "Null"

              Dachte man kann beim parser bei Ersatz eine Ersatzzahl definieren
              aber das funktioniert nicht.

              Grüße Alex

              liv-in-skyL Offline
              liv-in-skyL Offline
              liv-in-sky
              wrote on last edited by
              #38

              @Alexxx2005 soll den eine solche "null"-bahn überhaupt in der tabelle erscheinben oder soll sie mit einem bestimmten wert bzw. bild erscheinen 🔐 oder🔒 oder ⏳ oder r♾️ siehe https://emojipedia.org/objects/

              poste noch das script

              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 Reply Last reply
              0
              • liv-in-skyL liv-in-sky

                @Alexxx2005 soll den eine solche "null"-bahn überhaupt in der tabelle erscheinben oder soll sie mit einem bestimmten wert bzw. bild erscheinen 🔐 oder🔒 oder ⏳ oder r♾️ siehe https://emojipedia.org/objects/

                poste noch das script

                A Offline
                A Offline
                Alexxx2005
                wrote on last edited by Homoran
                #39

                @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 1 Reply Last reply
                0
                • 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
                  wrote on last edited by 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 Reply Last reply
                  0
                  • A Offline
                    A Offline
                    Alexxx2005
                    wrote on last edited by
                    #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 Reply Last reply
                    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
                      wrote on last edited by 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 Reply Last reply
                      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
                        wrote on last edited by
                        #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 Replies Last reply
                        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 Offline
                          HomoranH Offline
                          Homoran
                          Global Moderator Administrators
                          wrote on last edited by
                          #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 -
                          Benutzt das Voting rechts unten im Beitrag wenn er euch geholfen hat.
                          Das Forum freut sich über eine Spende. Benutzt dazu den Spendenbutton im Header. Danke!
                          der Installationsfixer: curl -fsL https://iobroker.net/fix.sh | bash -

                          1 Reply Last reply
                          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
                            wrote on last edited by
                            #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 Reply Last reply
                            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
                              wrote on last edited by 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 Reply Last reply
                              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
                                wrote on last edited by 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 Replies Last reply
                                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
                                  wrote on last edited by
                                  #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 Reply Last reply
                                  0
                                  • liv-in-skyL liv-in-sky

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

                                    A Offline
                                    A Offline
                                    Alexxx2005
                                    wrote on last edited by
                                    #49

                                    @liv-in-sky

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

                                    1 Reply Last reply
                                    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
                                      wrote on last edited by
                                      #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 Reply Last reply
                                      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
                                        wrote on last edited by
                                        #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 Reply Last reply
                                        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
                                          wrote on last edited by
                                          #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 Reply Last reply
                                          0
                                          Reply
                                          • Reply as topic
                                          Log in to reply
                                          • Oldest to Newest
                                          • Newest to Oldest
                                          • Most Votes


                                          Support us

                                          ioBroker
                                          Community Adapters
                                          Donate
                                          FAQ Cloud / IOT
                                          HowTo: Node.js-Update
                                          HowTo: Backup/Restore
                                          Downloads
                                          BLOG

                                          301

                                          Online

                                          32.7k

                                          Users

                                          82.6k

                                          Topics

                                          1.3m

                                          Posts
                                          Community
                                          Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen | Einwilligungseinstellungen
                                          ioBroker Community 2014-2025
                                          logo
                                          • Login

                                          • Don't have an account? Register

                                          • Login or register to search.
                                          • First post
                                            Last post
                                          0
                                          • Home
                                          • Recent
                                          • Tags
                                          • Unread 0
                                          • Categories
                                          • Unreplied
                                          • Popular
                                          • GitHub
                                          • Docu
                                          • Hilfe