Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Tester
    4. Adapter - Parser (regEx)

    NEWS

    • ioBroker@Smart Living Forum Solingen, 14.06. - Agenda added

    • ioBroker goes Matter ... Matter Adapter in Stable

    • Monatsrückblick - April 2025

    Adapter - Parser (regEx)

    This topic has been deleted. Only users with topic management privileges can see it.
    • Diginix
      Diginix @Homoran last edited by

      @Homoran Ich bevorzuge eindeutige Matches so es denn unique Werte gibt mit denen das möglich ist. Wenn man mehrere Werte aus einer Quelle will, muss man so oder so mehrere Objekte mit jeweils einem RegEx erstellen. Man kann natürlich bei z.B. 3 Werten und einem universellen RegEx mit 3 Klammerpaaren dann mit Num 0-2 arbeiten, aber ich hab eben lieber 3 verschiedene RegEx die exakt nur da matchen wo einer der 3 Werte existiert.
      Je nach Quelldaten kann es aber sein dass man Num braucht.

      Homoran 1 Reply Last reply Reply Quote 0
      • Homoran
        Homoran Global Moderator Administrators @Diginix last edited by

        @Diginix
        ich eigentlich auch.

        Nur für Einsteiger mit dem Parser-Adapter kann es einfacher sein, den RegEx zu kopieren und die num einzustellen

        1 Reply Last reply Reply Quote 0
        • Q
          Qlink last edited by

          Ich habe jetzt soweit alle Werte.

          Einzig die geschätzte Laufzeit meiner USV ärgert mich etwas. Ich würde gerne 1 oder 2 Nachkommastellen ebenfalls auslesen, bekomme aber nur Stellen vor dem Komma:

          mit

          
          "Estimated Runtime"[^\:]+:\s\"(\d+)
          
           {
              "SensorApp": "HWiNFO",
              "SensorClass": "UPS",
              "SensorName": "Estimated Runtime",
              "SensorValue": "51,6833333333333",
              "SensorUnit": "min",
              "SensorUpdateTime": 1559130047
            },
          

          regex.PNG

          Homoran 1 Reply Last reply Reply Quote 0
          • Homoran
            Homoran Global Moderator Administrators @Qlink last edited by

            @Qlink
            Die zahl beinhaltet ein komma.

            Versuch mal als typ "zahl mit komma"

            1 Reply Last reply Reply Quote 0
            • Q
              Qlink last edited by

              Nummer mit Komma ist im Parser Adapter ausgewählt:

              parser2.PNG

              Diginix 1 Reply Last reply Reply Quote 0
              • Diginix
                Diginix @Qlink last edited by

                @Qlink \d matcht nur bei Ziffern. Gebrochene Zahlen enthalten aber Ziffern plus Dezimaltrennzeichen. Auch wenn dieser ein Punkt ist, würde \d nicht matchen. Alle Trennzeichen müssen explizit mit ins regex.

                So sollte es funktionieren:

                "Estimated Runtime"[^\:]+:\s\"(\d+,\d+)
                
                1 Reply Last reply Reply Quote 2
                • Q
                  Qlink last edited by

                  Super, danke so klappts auch mit den Nachkommastellen ! 🙂

                  Beste Grüße

                  1 Reply Last reply Reply Quote 0
                  • P
                    PatrickFro last edited by

                    Hallo zusammen,

                    ich komme mit dem Parser nicht zurecht. Ich versuche von der Seite https://abfahrten.hvv.de/75870033-9dd4-41c0-81bb-903c93fdc819 Bus-Nummer, Richtung und Abfahrzeit auszulesen. Ich habe dunkle Views erstellt, da passt die weiße Farbe einfach nicht rein. Leider schaffe ich jedoch nicht, mit dem Parser etwas auszulesen. Kann mir dabei jemand helfen?

                    Danke schon vorab!

                    OliverIO 1 Reply Last reply Reply Quote 0
                    • Diginix
                      Diginix last edited by

                      So wie es aussieht werden die Werte per Javascript in der Seite gesetzt. Ich weiß nicht ob der Parser das erst noch interpretiert oder ob der nur mit statischem html umgehen kann.

                      1 Reply Last reply Reply Quote 0
                      • P
                        PatrickFro last edited by

                        Schade... Gibt es denn eine andere Möglichkeit die Daten auszulesen? Oder zumindest die Farben der eingebundenen Webseite zu invertieren?

                        1 Reply Last reply Reply Quote 0
                        • H
                          hannoi last edited by

                          Kurze Verständnis Frage, ich parse auf der clever-tanken Seite einen Super Plus Wert z.B. Tanke

                          Mit dem RegEx

                          (?:4">)(\d+.\d.)
                          

                          bekomme ich auch über die regex101 Seite einen entsprechenden Match der auch wunderbar passt. Wenn ich mir nun den erzeugten Datenpunkt anschaue, finde ich dort nur den Wert ohne Punkt angezeigt:
                          Bildschirmfoto 2019-06-12 um 11.36.49.png

                          Ansonsten steht die Regel auf Rolle "Wert" und der Typ ist "Nummer mit Komma", wo hab ich den Denkfehler?

                          Danke für Hinweise.

                          Homoran 2 Replies Last reply Reply Quote 0
                          • Homoran
                            Homoran Global Moderator Administrators @hannoi last edited by

                            @hannoi sagte in Adapter - Parser (regEx):

                            der Typ ist "Nummer mit Komma", wo hab ich den Denkfehler?

                            Wo ist das Komma?

                            1 Reply Last reply Reply Quote 0
                            • H
                              hannoi last edited by

                              Genau das Komma suche ich in den Objekten 😕
                              In den Parser Settings habe ich es entsprechend als Typ "Nummer mit Komma" deklariert...

                              Homoran H 2 Replies Last reply Reply Quote 0
                              • Homoran
                                Homoran Global Moderator Administrators @hannoi last edited by

                                @hannoi sagte in Adapter - Parser (regEx):

                                Genau das Komma suche ich in den Objekten

                                Aber du hast doch auch kein Komma im Match, oder?

                                1 Reply Last reply Reply Quote 0
                                • H
                                  hannoi @hannoi last edited by

                                  Hier noch der Link mit dem Quellcode und dem Regex

                                  1 Reply Last reply Reply Quote 0
                                  • Homoran
                                    Homoran Global Moderator Administrators @hannoi last edited by

                                    @hannoi sagte in Adapter - Parser (regEx):

                                    finde ich dort nur den Wert ohne Punkt angezeigt:

                                    H 1 Reply Last reply Reply Quote 0
                                    • H
                                      hannoi last edited by

                                      Okay verstanden, dann ist das "Komma" nicht mit dem "Punkt" gleichzusetzen als Trennzeichen.

                                      Homoran 1 Reply Last reply Reply Quote 0
                                      • H
                                        hannoi @Homoran last edited by

                                        @Homoran
                                        Perfekt klappt! Dann war es mein Denkfehler!!! DANKE NOCH MAL 🙂

                                        1 Reply Last reply Reply Quote 0
                                        • Homoran
                                          Homoran Global Moderator Administrators @hannoi last edited by

                                          @hannoi sagte in Adapter - Parser (regEx):

                                          Okay verstanden, dann ist das "Komma" nicht mit dem "Punkt" gleichzusetzen als Trennzeichen.

                                          So ist es.

                                          Wenn das Regex ein Komma hat nimmt man Zahl mit KOMMA

                                          1 Reply Last reply Reply Quote 0
                                          • OliverIO
                                            OliverIO @PatrickFro last edited by OliverIO

                                            @PatrickFro

                                            Die Alternative ist per Skript und JQuery eigentlich noch einfacher.
                                            Die Seite ruft die Daten als JSON ab. Ich habe dir hier mal den cURL-Befehl kopiert, mit dem der Abruf auf einer Linux-Console direkt funktioniert. Über die Developer-Tools von chrome und Firefox kannst du dir das direkt anschauen.

                                            curl 'https://abfahrten.hvv.de/api/monitors/75870033-9dd4-41c0-81bb-903c93fdc819' -H 'Pragma: no-cache' -H 'DNT: 1' -H 'Accept-Encoding: gzip, deflate, br' -H 'Accept-Language: de-DE,de;q=0.9,en-US;q=0.8,en;q=0.7' -H 'User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/75.0.3770.80 Safari/537.36' -H 'Content-Type: application/vnd.api+json' -H 'Accept: application/json, text/plain, */*' -H 'Cache-Control: no-cache' -H 'Referer: https://abfahrten.hvv.de/75870033-9dd4-41c0-81bb-903c93fdc819' -H 'Cookie: BT_sdc=eyJldF9jb2lkIjoiTkEiLCJyZnIiOiJodHRwczovL2ZvcnVtLmlvYnJva2VyLm5ldC8iLCJ0aW1lIjoxNTYwMjkxODIwNTY3LCJwaSI6MCwiZXVybCI6Imh0dHBzOi8vYWJmYWhydGVuLmh2di5kZS83NTg3MDAzMy05ZGQ0LTQxYzAtODFiYi05MDNjOTNmZGM4MTkiLCJyZXR1cm5pbmciOjAsImV0Y2NfY21wIjoiTkEiLCJzbXMiOm51bGwsIm5vV1MiOiJBdzNVS2IifQ%3D%3D; _et_coid=ff32f3a7e7a0381366c02efa37fc81ef' -H 'Connection: keep-alive' --compressed
                                            

                                            Darüber hinaus bieten die direkt auch eine API nach Antrag an: https://www.hvv.de/de/fahrplaene/abruf-fahrplaninfos/datenabruf
                                            und über open-data scheint es auch was zu geben https://www.opendata-oepnv.de/pages/api
                                            ein node-lib gibt es auch, aber nur mit den beantragten Zugangsdaten https://github.com/lionralfs/hvv

                                            1 Reply Last reply Reply Quote 0
                                            • First post
                                              Last post

                                            Support us

                                            ioBroker
                                            Community Adapters
                                            Donate

                                            482
                                            Online

                                            31.7k
                                            Users

                                            79.8k
                                            Topics

                                            1.3m
                                            Posts

                                            43
                                            268
                                            99678
                                            Loading More Posts
                                            • Oldest to Newest
                                            • Newest to Oldest
                                            • Most Votes
                                            Reply
                                            • Reply as topic
                                            Log in to reply
                                            Community
                                            Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen
                                            The ioBroker Community 2014-2023
                                            logo