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. Einsteigerfragen
  4. Parser Ergebnis aus interner Url

NEWS

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

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

  • Weihnachtsangebot 2025! 🎄
    BluefoxB
    Bluefox
    25
    1
    2.5k

Parser Ergebnis aus interner Url

Geplant Angeheftet Gesperrt Verschoben Einsteigerfragen
8 Beiträge 3 Kommentatoren 546 Aufrufe 2 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.
  • Marc_el_KM Offline
    Marc_el_KM Offline
    Marc_el_K
    schrieb am zuletzt editiert von Marc_el_K
    #1

    Hallo zusammen,

    ich bekomme etwas nicht gelöst und konnte dazu auch noch keine entsprechende Frage hier im Forum finden:

    Ich habe einen Service auf meinem Raspberry installiert, auf welchem auch der iobroker mit dem Parser läuft.

    Die Seite der Config zum Service erreiche ich unter http://IP_VOM_IOBROKER:PORT/

    Auf dieser Seite steht die Versionsnummer:

    Version: 1.8.4,
    

    Der Quelltext zeigt an:

    info.innerText = `Version: ${data.version}, 
    

    Meine Regular Expression funktioniert leider nicht:

    Version: ([A-Za-z0-9]+(\.[A-Za-z0-9]+)+),
    

    Kann mir jemand helfen, was ich falsch mache? Vielen Dank :-)

    HomoranH OliverIOO 2 Antworten Letzte Antwort
    0
    • Marc_el_KM Marc_el_K

      Hallo zusammen,

      ich bekomme etwas nicht gelöst und konnte dazu auch noch keine entsprechende Frage hier im Forum finden:

      Ich habe einen Service auf meinem Raspberry installiert, auf welchem auch der iobroker mit dem Parser läuft.

      Die Seite der Config zum Service erreiche ich unter http://IP_VOM_IOBROKER:PORT/

      Auf dieser Seite steht die Versionsnummer:

      Version: 1.8.4,
      

      Der Quelltext zeigt an:

      info.innerText = `Version: ${data.version}, 
      

      Meine Regular Expression funktioniert leider nicht:

      Version: ([A-Za-z0-9]+(\.[A-Za-z0-9]+)+),
      

      Kann mir jemand helfen, was ich falsch mache? Vielen Dank :-)

      HomoranH Nicht stören
      HomoranH Nicht stören
      Homoran
      Global Moderator Administrators
      schrieb am zuletzt editiert von
      #2

      @marc_el_k sagte in Parser Ergebnis aus interner Url:

      Meine Regular Expression funktioniert leider nicht:

      ist das

      @marc_el_k sagte in Parser Ergebnis aus interner Url:

      Der Quelltext zeigt an:

      der vollständige Quelltext?

      was willst du davon ausgeben?

      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
      • Marc_el_KM Marc_el_K

        Hallo zusammen,

        ich bekomme etwas nicht gelöst und konnte dazu auch noch keine entsprechende Frage hier im Forum finden:

        Ich habe einen Service auf meinem Raspberry installiert, auf welchem auch der iobroker mit dem Parser läuft.

        Die Seite der Config zum Service erreiche ich unter http://IP_VOM_IOBROKER:PORT/

        Auf dieser Seite steht die Versionsnummer:

        Version: 1.8.4,
        

        Der Quelltext zeigt an:

        info.innerText = `Version: ${data.version}, 
        

        Meine Regular Expression funktioniert leider nicht:

        Version: ([A-Za-z0-9]+(\.[A-Za-z0-9]+)+),
        

        Kann mir jemand helfen, was ich falsch mache? Vielen Dank :-)

        OliverIOO Offline
        OliverIOO Offline
        OliverIO
        schrieb am zuletzt editiert von
        #3

        @marc_el_k

        Der parser sieht das html
        Und nicht das was angezeigt wird.
        Der Browser interpretiert das html und zeigt es an.

        Meine Adapter und Widgets
        TVProgram, SqueezeboxRPC, OpenLiga, RSSFeed, MyTime,, pi-hole2, vis-json-template, skiinfo, vis-mapwidgets, vis-2-widgets-rssfeed
        Links im Profil

        Marc_el_KM 1 Antwort Letzte Antwort
        0
        • OliverIOO OliverIO

          @marc_el_k

          Der parser sieht das html
          Und nicht das was angezeigt wird.
          Der Browser interpretiert das html und zeigt es an.

          Marc_el_KM Offline
          Marc_el_KM Offline
          Marc_el_K
          schrieb am zuletzt editiert von
          #4

          @oliverio Danke, aahh das ist das Problem.

          In dem Parser Adapter gibt es auf dem Stiftsymbol die Einstellung "Analysiere HTML".

          Hier nahm ich an, dass man dieses aktiviert, wenn man anhand des Quellcodes sucht, somit hatte ich es deaktiviert und erhofft, dass dadurch der Output gelesen wird.

          Habt ihr noch eine andere Idee, wie ich an den Wert komme?

          OliverIOO 1 Antwort Letzte Antwort
          0
          • Marc_el_KM Marc_el_K

            @oliverio Danke, aahh das ist das Problem.

            In dem Parser Adapter gibt es auf dem Stiftsymbol die Einstellung "Analysiere HTML".

            Hier nahm ich an, dass man dieses aktiviert, wenn man anhand des Quellcodes sucht, somit hatte ich es deaktiviert und erhofft, dass dadurch der Output gelesen wird.

            Habt ihr noch eine andere Idee, wie ich an den Wert komme?

            OliverIOO Offline
            OliverIOO Offline
            OliverIO
            schrieb am zuletzt editiert von OliverIO
            #5

            @marc_el_k

            wenn du mal den quelltext posten würdest, dann könnte man dir helfen.
            es muss leider der vollständige sein, da man ansonsten das regex nicht valide aufbauen kann

            quelltext erhälst du wenn du auf der seite rechte maustaste machst und "seitenwquelltext anzeigen" auswählst.

            wenn du selbst das regex erstellen willst, dann kann man ganz gut regex101.com verwenden

            Meine Adapter und Widgets
            TVProgram, SqueezeboxRPC, OpenLiga, RSSFeed, MyTime,, pi-hole2, vis-json-template, skiinfo, vis-mapwidgets, vis-2-widgets-rssfeed
            Links im Profil

            Marc_el_KM 1 Antwort Letzte Antwort
            0
            • OliverIOO OliverIO

              @marc_el_k

              wenn du mal den quelltext posten würdest, dann könnte man dir helfen.
              es muss leider der vollständige sein, da man ansonsten das regex nicht valide aufbauen kann

              quelltext erhälst du wenn du auf der seite rechte maustaste machst und "seitenwquelltext anzeigen" auswählst.

              wenn du selbst das regex erstellen willst, dann kann man ganz gut regex101.com verwenden

              Marc_el_KM Offline
              Marc_el_KM Offline
              Marc_el_K
              schrieb am zuletzt editiert von
              #6

              @oliverio Ja, sehr gern

              
              <!DOCTYPE html>
              <html lang="en">
              <head>
                  <meta charset="utf-8">
                  <meta name="viewport" content="width=device-width, user-scalable=yes, initial-scale=1, maximum-scale=1">
                  <meta http-equiv="X-UA-Compatible" content="ie=edge">
              
                  <title>go2rtc</title>
              
                  <style>
                      body {
                          font-family: Arial, Helvetica, sans-serif;
                          background-color: white;
                      }
              
                      table {
                          background-color: white;
                          text-align: left;
                          border-collapse: collapse;
                      }
              
                      table td, table th {
                          border: 1px solid black;
                          padding: 5px 5px;
                      }
              
                      table tbody td {
                          font-size: 13px;
                      }
              
                      table thead {
                          background: #CFCFCF;
                          background: linear-gradient(to bottom, #dbdbdb 0%, #d3d3d3 66%, #CFCFCF 100%);
                          border-bottom: 3px solid black;
                      }
              
                      table thead th {
                          font-size: 15px;
                          font-weight: bold;
                          color: black;
                          text-align: center;
                      }
              
                      label {
                          display: flex;
                          align-items: center;
                      }
              
                      .controls {
                          display: flex;
                          padding: 5px;
                      }
              
                      .controls > label {
                          margin-left: 10px;
                      }
                  </style>
              </head>
              <body>
              <script src="main.js"></script>
              <div class="info"></div>
              <div class="controls">
                  <button>stream</button>
                  <label><input type="checkbox" name="webrtc" checked>webrtc</label>
                  <label><input type="checkbox" name="mse" checked>mse</label>
                  <label><input type="checkbox" name="hls" checked>hls</label>
                  <label><input type="checkbox" name="mjpeg" checked>mjpeg</label>
              </div>
              <table>
                  <thead>
                  <tr>
                      <th><label><input id="selectall" type="checkbox">Name</label></th>
                      <th>Online</th>
                      <th>Commands</th>
                  </tr>
                  </thead>
                  <tbody id="streams">
                  </tbody>
              </table>
              <script>
                  const templates = [
                      '<a href="stream.html?src={name}">stream</a>',
                      '<a href="links.html?src={name}">links</a>',
                      '<a href="#" data-name="{name}">delete</a>',
                  ];
              
                  document.querySelector('.controls > button')
                      .addEventListener('click', () => {
                          const url = new URL('stream.html', location.href);
              
                          const streams = document.querySelectorAll('#streams input');
                          streams.forEach(i => {
                              if (i.checked) url.searchParams.append('src', i.name);
                          });
              
                          if (!url.searchParams.has('src')) return;
              
                          let mode = document.querySelectorAll('.controls input');
                          mode = Array.from(mode).filter(i => i.checked).map(i => i.name).join(',');
              
                          window.location.href = `${url}&mode=${mode}`;
                      });
              
                  const tbody = document.getElementById('streams');
                  tbody.addEventListener('click', ev => {
                      if (ev.target.innerText !== 'delete') return;
              
                      ev.preventDefault();
              
                      const url = new URL('api/streams', location.href);
                      const src = decodeURIComponent(ev.target.dataset.name);
                      url.searchParams.set('src', src);
                      fetch(url, {method: 'DELETE'}).then(reload);
                  });
              
                  document.getElementById('selectall').addEventListener('change', ev => {
                      document.querySelectorAll('#streams input').forEach(el => {
                          el.checked = ev.target.checked;
                      });
                  });
              
                  function reload() {
                      const url = new URL('api/streams', location.href);
                      fetch(url, {cache: 'no-cache'}).then(r => r.json()).then(data => {
                          tbody.innerHTML = '';
              
                          for (const [name, value] of Object.entries(data)) {
                              const online = value && value.consumers ? value.consumers.length : 0;
                              const src = encodeURIComponent(name);
                              const links = templates.map(link => {
                                  return link.replace('{name}', src);
                              }).join(' ');
              
                              const tr = document.createElement('tr');
                              tr.dataset['id'] = name;
                              tr.innerHTML =
                                  `<td><label><input type="checkbox" name="${name}">${name}</label></td>` +
                                  `<td><a href="api/streams?src=${src}">${online} / info</a></td>` +
                                  `<td>${links}</td>`;
                              tbody.appendChild(tr);
                          }
                      });
                  }
              
                  const url = new URL('api', location.href);
                  fetch(url, {cache: 'no-cache'}).then(r => r.json()).then(data => {
                      const info = document.querySelector('.info');
                      info.innerText = `Version: ${data.version}, Config: ${data.config_path}`;
                  });
              
                  reload();
              </script>
              </body>
              </html>
              
              
              OliverIOO 1 Antwort Letzte Antwort
              0
              • Marc_el_KM Marc_el_K

                @oliverio Ja, sehr gern

                
                <!DOCTYPE html>
                <html lang="en">
                <head>
                    <meta charset="utf-8">
                    <meta name="viewport" content="width=device-width, user-scalable=yes, initial-scale=1, maximum-scale=1">
                    <meta http-equiv="X-UA-Compatible" content="ie=edge">
                
                    <title>go2rtc</title>
                
                    <style>
                        body {
                            font-family: Arial, Helvetica, sans-serif;
                            background-color: white;
                        }
                
                        table {
                            background-color: white;
                            text-align: left;
                            border-collapse: collapse;
                        }
                
                        table td, table th {
                            border: 1px solid black;
                            padding: 5px 5px;
                        }
                
                        table tbody td {
                            font-size: 13px;
                        }
                
                        table thead {
                            background: #CFCFCF;
                            background: linear-gradient(to bottom, #dbdbdb 0%, #d3d3d3 66%, #CFCFCF 100%);
                            border-bottom: 3px solid black;
                        }
                
                        table thead th {
                            font-size: 15px;
                            font-weight: bold;
                            color: black;
                            text-align: center;
                        }
                
                        label {
                            display: flex;
                            align-items: center;
                        }
                
                        .controls {
                            display: flex;
                            padding: 5px;
                        }
                
                        .controls > label {
                            margin-left: 10px;
                        }
                    </style>
                </head>
                <body>
                <script src="main.js"></script>
                <div class="info"></div>
                <div class="controls">
                    <button>stream</button>
                    <label><input type="checkbox" name="webrtc" checked>webrtc</label>
                    <label><input type="checkbox" name="mse" checked>mse</label>
                    <label><input type="checkbox" name="hls" checked>hls</label>
                    <label><input type="checkbox" name="mjpeg" checked>mjpeg</label>
                </div>
                <table>
                    <thead>
                    <tr>
                        <th><label><input id="selectall" type="checkbox">Name</label></th>
                        <th>Online</th>
                        <th>Commands</th>
                    </tr>
                    </thead>
                    <tbody id="streams">
                    </tbody>
                </table>
                <script>
                    const templates = [
                        '<a href="stream.html?src={name}">stream</a>',
                        '<a href="links.html?src={name}">links</a>',
                        '<a href="#" data-name="{name}">delete</a>',
                    ];
                
                    document.querySelector('.controls > button')
                        .addEventListener('click', () => {
                            const url = new URL('stream.html', location.href);
                
                            const streams = document.querySelectorAll('#streams input');
                            streams.forEach(i => {
                                if (i.checked) url.searchParams.append('src', i.name);
                            });
                
                            if (!url.searchParams.has('src')) return;
                
                            let mode = document.querySelectorAll('.controls input');
                            mode = Array.from(mode).filter(i => i.checked).map(i => i.name).join(',');
                
                            window.location.href = `${url}&mode=${mode}`;
                        });
                
                    const tbody = document.getElementById('streams');
                    tbody.addEventListener('click', ev => {
                        if (ev.target.innerText !== 'delete') return;
                
                        ev.preventDefault();
                
                        const url = new URL('api/streams', location.href);
                        const src = decodeURIComponent(ev.target.dataset.name);
                        url.searchParams.set('src', src);
                        fetch(url, {method: 'DELETE'}).then(reload);
                    });
                
                    document.getElementById('selectall').addEventListener('change', ev => {
                        document.querySelectorAll('#streams input').forEach(el => {
                            el.checked = ev.target.checked;
                        });
                    });
                
                    function reload() {
                        const url = new URL('api/streams', location.href);
                        fetch(url, {cache: 'no-cache'}).then(r => r.json()).then(data => {
                            tbody.innerHTML = '';
                
                            for (const [name, value] of Object.entries(data)) {
                                const online = value && value.consumers ? value.consumers.length : 0;
                                const src = encodeURIComponent(name);
                                const links = templates.map(link => {
                                    return link.replace('{name}', src);
                                }).join(' ');
                
                                const tr = document.createElement('tr');
                                tr.dataset['id'] = name;
                                tr.innerHTML =
                                    `<td><label><input type="checkbox" name="${name}">${name}</label></td>` +
                                    `<td><a href="api/streams?src=${src}">${online} / info</a></td>` +
                                    `<td>${links}</td>`;
                                tbody.appendChild(tr);
                            }
                        });
                    }
                
                    const url = new URL('api', location.href);
                    fetch(url, {cache: 'no-cache'}).then(r => r.json()).then(data => {
                        const info = document.querySelector('.info');
                        info.innerText = `Version: ${data.version}, Config: ${data.config_path}`;
                    });
                
                    reload();
                </script>
                </body>
                </html>
                
                
                OliverIOO Offline
                OliverIOO Offline
                OliverIO
                schrieb am zuletzt editiert von OliverIO
                #7

                @marc_el_k sagte in Parser Ergebnis aus interner Url:

                    const url = new URL('api', location.href);
                    fetch(url, {cache: 'no-cache'}).then(r => r.json()).then(data => {
                        const info = document.querySelector('.info');
                        info.innerText = `Version: ${data.version}, Config: ${data.config_path}`;
                    });
                

                evtl ist es dir selbst aufgefallen, das der gesuchte text da gar nicht auftaucht
                er wird durch das obige skript dynamisch geladen.

                in zeile 1 siehst du, das da eine url gebildet wird.
                an die url, die bei dir oben in der adressleiste steht (location.href) musst du noch
                /api dran hängen. dann nochmal seitenquelltext abrufen und hier posten

                Meine Adapter und Widgets
                TVProgram, SqueezeboxRPC, OpenLiga, RSSFeed, MyTime,, pi-hole2, vis-json-template, skiinfo, vis-mapwidgets, vis-2-widgets-rssfeed
                Links im Profil

                1 Antwort Letzte Antwort
                0
                • Marc_el_KM Offline
                  Marc_el_KM Offline
                  Marc_el_K
                  schrieb am zuletzt editiert von Marc_el_K
                  #8

                  @oliverio Ja, das ist mir aufgefallen.

                  Danke, für den Tipp mit der api. Nun erhalte ich, folgenden Inhalt angezeigt:

                  {
                    "config_path": "/usr/local/bin/go2rtc.yaml",
                    "host": "xxx.xxx.xxx.xxx:1984",
                    "rtsp": {
                      "listen": ":8554",
                      "default_query": "video&audio",
                      "PacketSize": 0
                    },
                    "version": "1.8.4"
                  }
                  

                  Mit kann ich schon mal Zeile 9 abfragen. Kann man noch auf 1.8.4 einkürzen?

                  "[A-Za-z]+"[^"]*"[0-9]*\.[0-9]+[0-9]*\.[0-9]+"
                  

                  EDIT:

                  GEht mit

                  "version"\s*:\s*"(\d+\.\d+\.\d+)"
                  
                  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

                  608

                  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