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

  • Monatsrückblick Januar/Februar 2026 ist online!
    BluefoxB
    Bluefox
    13
    1
    150

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

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

[gelöst] Adapter - Parser / Wartezeiten auslesen

Geplant Angeheftet Gesperrt Verschoben ioBroker Allgemein
parser adapter
53 Beiträge 5 Kommentatoren 4.0k Aufrufe 5 Watching
  • Älteste zuerst
  • Neuste zuerst
  • Meiste Stimmen
Antworten
  • In einem neuen Thema antworten
Anmelden zum Antworten
Dieses Thema wurde gelöscht. Nur Nutzer mit entsprechenden Rechten können es sehen.
  • A Alexxx2005

    @liv-in-sky

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

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

    ioBroker freut sich auch über eine Spende für das Forum. Benutzt dazu den Spendenbutton im Header. Danke!

    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

                      251

                      Online

                      32.7k

                      Benutzer

                      82.4k

                      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