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. ioBroker Allgemein
  4. Wert parsen von einer Webseite

NEWS

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

  • Verwendung von KI bitte immer deutlich kennzeichnen
    HomoranH
    Homoran
    10
    1
    549

  • Monatsrückblick Januar/Februar 2026 ist online!
    BluefoxB
    Bluefox
    18
    1
    1.1k

Wert parsen von einer Webseite

Geplant Angeheftet Gesperrt Verschoben ioBroker Allgemein
8 Beiträge 4 Kommentatoren 621 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.
  • S Offline
    S Offline
    Smartin
    schrieb am zuletzt editiert von
    #1

    Moin,
    ich bräuchte mal eure Hilfe ...
    Also, ich habe z.B. folgenden Text vom Quelltext einer Internetseite

    <div class="styled__Price-sc-dgnucy-7 hrukSM">4.019,199 €</div>
    

    Mit

    (?<=<div class="styled__Price-sc-dgnucy-7 hrukSM">)[\s\S]*?(?=<\/)
    

    im Parser Adapter erhalte ich in ioBroker dann den Wert "4.019,199 €".
    Soweit so gut.
    Wie muss ich weiter vorgehen, um

    • den Wert ohne den Tausender Punkt
    • dafür in der Dezimaltrennung einen Punkt anstatt des Kommas
    • den ganzen Wert ohne das " €"
      zu erhalten?
      Es soll letztendlich nur der nackte Wert "4019,199" entstehen.
      Kann man das vielleicht schon im RegEx des Parser Adapters lösen oder muss der Wert noch durch weitere Schritte bearbeitet werden?
      Für Hilfe wäre ich echt dankbar.

    Danke im voraus und Gruß aus dem hohen Norden

    paul53P OliverIOO 2 Antworten Letzte Antwort
    0
    • S Smartin

      Moin,
      ich bräuchte mal eure Hilfe ...
      Also, ich habe z.B. folgenden Text vom Quelltext einer Internetseite

      <div class="styled__Price-sc-dgnucy-7 hrukSM">4.019,199 €</div>
      

      Mit

      (?<=<div class="styled__Price-sc-dgnucy-7 hrukSM">)[\s\S]*?(?=<\/)
      

      im Parser Adapter erhalte ich in ioBroker dann den Wert "4.019,199 €".
      Soweit so gut.
      Wie muss ich weiter vorgehen, um

      • den Wert ohne den Tausender Punkt
      • dafür in der Dezimaltrennung einen Punkt anstatt des Kommas
      • den ganzen Wert ohne das " €"
        zu erhalten?
        Es soll letztendlich nur der nackte Wert "4019,199" entstehen.
        Kann man das vielleicht schon im RegEx des Parser Adapters lösen oder muss der Wert noch durch weitere Schritte bearbeitet werden?
        Für Hilfe wäre ich echt dankbar.

      Danke im voraus und Gruß aus dem hohen Norden

      paul53P Offline
      paul53P Offline
      paul53
      schrieb am zuletzt editiert von paul53
      #2

      @smartin sagte: Es soll letztendlich nur der nackte Wert "4019,199" entstehen.

      Als Zahl oder als String? Die Wandlung nach Zahl macht ein kleines Skript:

      const idSrc = '0_userdata.0.abc'; // String "4.019,199 €"
      const idDst = '0_userdata.0.xyz'; // Zahl
      
      on(idSrc, function(dp) {
          setState(idDst, parseFloat(dp.state.val.replace('.', '').replace(',', '.')), true);
      });
      

      Bitte verzichtet auf Chat-Nachrichten, denn die Handhabung ist grauenhaft !
      Produktiv: RPi 2 mit S.USV, HM-MOD-RPI und SLC-USB-Stick mit root fs

      S 1 Antwort Letzte Antwort
      0
      • paul53P paul53

        @smartin sagte: Es soll letztendlich nur der nackte Wert "4019,199" entstehen.

        Als Zahl oder als String? Die Wandlung nach Zahl macht ein kleines Skript:

        const idSrc = '0_userdata.0.abc'; // String "4.019,199 €"
        const idDst = '0_userdata.0.xyz'; // Zahl
        
        on(idSrc, function(dp) {
            setState(idDst, parseFloat(dp.state.val.replace('.', '').replace(',', '.')), true);
        });
        
        S Offline
        S Offline
        Smartin
        schrieb am zuletzt editiert von
        #3

        @paul53
        Hallo, danke für die Antwort.
        Stimmt, hatte ich vergessen zu erwähnen. Ich habe den Wert bisher immer als String über ne andere Quelle bekommen und mein Script zur Weiterverarbeitung daher auch entsprechend geschrieben. Insofern wäre ein String natürlich streßloser, weil ich dann nicht viel ändern muss.
        Kann man das auch so einfach lösen wie bei Zahl?

        paul53P 1 Antwort Letzte Antwort
        0
        • S Smartin

          @paul53
          Hallo, danke für die Antwort.
          Stimmt, hatte ich vergessen zu erwähnen. Ich habe den Wert bisher immer als String über ne andere Quelle bekommen und mein Script zur Weiterverarbeitung daher auch entsprechend geschrieben. Insofern wäre ein String natürlich streßloser, weil ich dann nicht viel ändern muss.
          Kann man das auch so einfach lösen wie bei Zahl?

          paul53P Offline
          paul53P Offline
          paul53
          schrieb am zuletzt editiert von paul53
          #4

          @smartin sagte: Kann man das auch so einfach lösen wie bei Zahl?

          const idSrc = '0_userdata.0.abc'; // String "4.019,199 €"
          const idDst = '0_userdata.0.xyz'; // String "4019.199"
          
          on(idSrc, function(dp) {
              setState(idDst, dp.state.val.replace('.', '').replace(',', '.').replace(' €',''), true);
          });
          

          Bitte verzichtet auf Chat-Nachrichten, denn die Handhabung ist grauenhaft !
          Produktiv: RPi 2 mit S.USV, HM-MOD-RPI und SLC-USB-Stick mit root fs

          1 Antwort Letzte Antwort
          1
          • S Smartin

            Moin,
            ich bräuchte mal eure Hilfe ...
            Also, ich habe z.B. folgenden Text vom Quelltext einer Internetseite

            <div class="styled__Price-sc-dgnucy-7 hrukSM">4.019,199 €</div>
            

            Mit

            (?<=<div class="styled__Price-sc-dgnucy-7 hrukSM">)[\s\S]*?(?=<\/)
            

            im Parser Adapter erhalte ich in ioBroker dann den Wert "4.019,199 €".
            Soweit so gut.
            Wie muss ich weiter vorgehen, um

            • den Wert ohne den Tausender Punkt
            • dafür in der Dezimaltrennung einen Punkt anstatt des Kommas
            • den ganzen Wert ohne das " €"
              zu erhalten?
              Es soll letztendlich nur der nackte Wert "4019,199" entstehen.
              Kann man das vielleicht schon im RegEx des Parser Adapters lösen oder muss der Wert noch durch weitere Schritte bearbeitet werden?
              Für Hilfe wäre ich echt dankbar.

            Danke im voraus und Gruß aus dem hohen Norden

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

            @smartin

            Warum ist dein Regex mit lookbehind und lookahead.
            Es würde auch einfach das folgende reichen.
            Im Parseradapter dann einfach Number (,) als Typ eintragen.
            Dann speichert der parseradapter den Wert direkt als Number ohne javascript

            <div class="styled__Price-sc-dgnucy-7 hrukSM">([\d\,\.]+) €<\/div>
            

            Eine Anleitung um das selbst nachzuvollziehen hatte ich hier mal geschrieben
            https://forum.iobroker.net/topic/8379/einlesen-von-aktienkursen/81?_=1687886883098

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

            S 1 Antwort Letzte Antwort
            1
            • OliverIOO OliverIO

              @smartin

              Warum ist dein Regex mit lookbehind und lookahead.
              Es würde auch einfach das folgende reichen.
              Im Parseradapter dann einfach Number (,) als Typ eintragen.
              Dann speichert der parseradapter den Wert direkt als Number ohne javascript

              <div class="styled__Price-sc-dgnucy-7 hrukSM">([\d\,\.]+) €<\/div>
              

              Eine Anleitung um das selbst nachzuvollziehen hatte ich hier mal geschrieben
              https://forum.iobroker.net/topic/8379/einlesen-von-aktienkursen/81?_=1687886883098

              S Offline
              S Offline
              Smartin
              schrieb am zuletzt editiert von
              #6

              @oliverio
              "Warum ist dein Regex mit lookbehind und lookahead."
              Weil ich so ein richtiger RegEx Held bin und eigentlich keine Ahnung habe, was ich da tue 😂
              Alles zusammen geklaut und gebastelt bis es einigermaßen funktionierte ...
              Danke für das auf die Sprünge helfen!
              Mit Deinem RegEx ist das €-Zeichen jetzt gleich weg. Allerdings lasse ich ihn auf String, dann war es hinterher (s.o.) leichter in mein Script einzubauen.
              Ich habe jetzt sozusagen eine Mischung aus deinem RegEx und dem Script von @paul53 eingebaut, funktioniert super!

              Allerdings musste ich alle Regeln im Parser unter neuem Namen neu anlegen, weil die Datenpunkte im Objekte-Tab auf einmal nicht mehr aktualisiert wurden. Keine Ahnung was da passiert war, im Log konnte ich sehen, dass die Werte aktualisiert werden, aber der jeweilige Datenpunkt im Objekte-Tab blieb stur beim alten Wert. Auch eine De- und dann Neuinstallation des Parsers hat nichts gebracht, sobald ich eine Regel mit dem alten Namen neu angelegt habe, hat er sich den alten festgefrorenen Wert wieder reingeholt und ihn auch nicht aktualisiert. Die gleiche Regel mit einem neuen Namen hat er ganz normal aktualisiert.
              Alles bezüglich meiner oben gestellten Fragen funktioniert also nun wie es soll, allerdings wüsste ich schon gerne wie ich die alten Einstellungen noch herauslöschen kann. Auch weil ich die alten Namen der Regeln schon gerne wieder verwenden würde.
              Parser beenden, dann das Verzeichnis "iobroker.parser" unter /opt/iobroker/node_modules/ umbenennen und dann den Parser neu installieren? Oder gibt es eine Art "Cache löschen" Funktion, welche die alte Daten des Adapters in die Tonne tritt?
              Vielleicht weiß noch jemand etwas dazu.

              Auf jeden Fall schon mal vielen Dank für die tolle Hilfe bei den Ursprungsfragen!

              1 Antwort Letzte Antwort
              0
              • OliverIOO Offline
                OliverIOO Offline
                OliverIO
                schrieb am zuletzt editiert von
                #7

                @smartin
                Das ist seltsames Verhalten
                Evtl weiß @Homoran noch was.

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

                HomoranH 1 Antwort Letzte Antwort
                0
                • OliverIOO OliverIO

                  @smartin
                  Das ist seltsames Verhalten
                  Evtl weiß @Homoran noch was.

                  HomoranH Offline
                  HomoranH Offline
                  Homoran
                  Global Moderator Administrators
                  schrieb am zuletzt editiert von
                  #8

                  @oliverio sagte in Wert parsen von einer Webseite:

                  Evtl weiß @Homoran noch was.

                  wozu genau?

                  @smartin sagte in Wert parsen von einer Webseite:

                  Regeln im Parser unter neuem Namen neu anlegen, weil die Datenpunkte im Objekte-Tab auf einmal nicht mehr aktualisiert wurden

                  kenne ich auch, wenn nachträglich der Typ geändert wurde.
                  Allerdings nur für diese eine Regel.
                  Löschen dieser Regel und Neuanlegen (auch mit gleichem Namen) hat bei mir bisher immer geklappt.

                  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

                  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
                  FAQ Cloud / IOT
                  HowTo: Node.js-Update
                  HowTo: Backup/Restore
                  Downloads
                  BLOG

                  306

                  Online

                  32.8k

                  Benutzer

                  82.9k

                  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