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

                      530

                      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