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.8k

  • 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.
  • liv-in-skyL liv-in-sky

    @Homoran unendlich oder "not available"

    HomoranH Nicht stören
    HomoranH Nicht stören
    Homoran
    Global Moderator Administrators
    schrieb am zuletzt editiert von
    #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 - 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 -

    liv-in-skyL 1 Antwort Letzte Antwort
    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
      schrieb am zuletzt editiert von
      #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 Antwort Letzte Antwort
      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
        schrieb am zuletzt editiert von 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 Antwort Letzte Antwort
        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
          schrieb am zuletzt editiert von
          #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 Antwort Letzte Antwort
          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
            schrieb am zuletzt editiert von 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 Antwort Letzte Antwort
            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
              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

                                        687

                                        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