Weiter zum Inhalt
  • Home
  • Aktuell
  • Tags
  • 0 Ungelesen 0
  • Kategorien
  • Unreplied
  • Beliebt
  • GitHub
  • Docu
  • Hilfe
Skins
  • Hell
  • Brite
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dunkel
  • 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

  • Neues YouTube-Video: Visualisierung im Devices-Adapter
    BluefoxB
    Bluefox
    13
    1
    1.7k

  • Neuer ioBroker-Blog online: Monatsrückblick März/April 2026
    BluefoxB
    Bluefox
    8
    1
    2.3k

  • Verwendung von KI bitte immer deutlich kennzeichnen
    HomoranH
    Homoran
    11
    1
    1.2k

Parser Ergebnis aus interner Url

Geplant Angeheftet Gesperrt Verschoben Einsteigerfragen
8 Beiträge 3 Kommentatoren 695 Aufrufe 2 Beobachtet
  • Ä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 -
      Benutzt das Voting rechts unten im Beitrag wenn er euch geholfen hat.
      Das Forum freut sich über eine Spende. Benutzt dazu den Spendenbutton oben rechts. Danke!
      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

                  Hey! Du scheinst an dieser Unterhaltung interessiert zu sein, hast aber noch kein Konto.

                  Hast du es satt, bei jedem Besuch durch die gleichen Beiträge zu scrollen? Wenn du dich für ein Konto anmeldest, kommst du immer genau dorthin zurück, wo du zuvor warst, und kannst dich über neue Antworten benachrichtigen lassen (entweder per E-Mail oder Push-Benachrichtigung). Du kannst auch Lesezeichen speichern und Beiträge positiv bewerten, um anderen Community-Mitgliedern deine Wertschätzung zu zeigen.

                  Mit deinem Input könnte dieser Beitrag noch besser werden 💗

                  Registrieren Anmelden
                  Antworten
                  • In einem neuen Thema antworten
                  Anmelden zum Antworten
                  • Älteste zuerst
                  • Neuste zuerst
                  • Meiste Stimmen


                  Support us

                  ioBroker
                  Community Adapters
                  Donate

                  537

                  Online

                  32.9k

                  Benutzer

                  83.2k

                  Themen

                  1.3m

                  Beiträge
                  Community
                  Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen | Einwilligungseinstellungen
                  ioBroker Community 2014-2026
                  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