Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Skripten / Logik
    4. [gelöst] RegEx für Parser anpassen, nur wie?

    NEWS

    • Neuer Blog: Fotos und Eindrücke aus Solingen

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

    • ioBroker goes Matter ... Matter Adapter in Stable

    [gelöst] RegEx für Parser anpassen, nur wie?

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

      Hallo,

      nachdem ich seit Jahren mit fhem arbeite, bin ich nun dabei, (vorerst auf einem Parallel-System) mit ioBroker zu beginnen.

      Meine Fortschritte sind soweit recht gut, über ein Problem stolpere ich aber im Moment bzgl Regex für den Parser.

      Ich lese den Stand des Stromzählers über Volkszähler aus, der gibt folgendes als reinen Text über eine URL zurück:

      { "version": "0.5.1", "generator": "vzlogger", "data": [ { "uuid": "2459dbe0-ca8b-11e5-bae0-056d798c5a23", "last": 1527755518367, "interval": -1, "protocol": "d0", "tuples": [ [ 1527755280000, 15787.12 ] ] } ] }
      

      Dabei ist die letzte Zahlenkolonne der Zählerstand (15787.12)

      Mittels Parser und Regex \d{5,6}.\d{2} bekomme ich den Zählerstand zurück… fast immer.

      Das Problem:

      Wenn der Zählerstand keine Dezimalstelle hat, wird er z.B. nur so ausgegeben: 15787

      In dem Moment greift Regex nicht und ich finde keine Lösung, ohne dass auch diverse andere Zahlenkolonnen aus dem Text erfasst werden.

      Hat jemand eine Idee, wie sich das verbessern lässt?

      Danke

      Gruß Gerd

      1 Reply Last reply Reply Quote 0
      • Jey Cee
        Jey Cee Developer last edited by

        Zum testen gehst du auf regex101.com

        Und was du suchst sind Gruppen und 'oder'.

        Das ist auf der Seite alles Dokumentiert rechts unten. Achtung du musst JavaScript auswählen auf der Seite.

        Gesendet von meinem m8 mit Tapatalk

        1 Reply Last reply Reply Quote 0
        • umbm
          umbm last edited by

          Danke für den Tip mit Gruppen und Oder

          Die Seite zum Testen kenne ich natürlich…;)

          1 Reply Last reply Reply Quote 0
          • ruhr70
            ruhr70 last edited by

            schaue ich mir nachher mal an

            Gesendet von iPhone mit Tapatalk

            1 Reply Last reply Reply Quote 0
            • ruhr70
              ruhr70 last edited by

              @umbm:

              Wenn der Zählerstand keine Dezimalstelle hat, wird er z.B. nur so ausgegeben: 15787 `

              Eine Variante:

              , (\d+.+\d) ]
              

              In Gruppe 1 ist dann das Ergebnis.

              1 Reply Last reply Reply Quote 0
              • umbm
                umbm last edited by

                Ich habe das nun über Nacht laufen lassen, um über mehrere Zählerstände ohne Dezimal zu kommen un es funktioniert perfekt.

                Vielen Dank

                1 Reply Last reply Reply Quote 0
                • ruhr70
                  ruhr70 last edited by

                  Das erste + kannst Du noch einsparen : :lol:

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

                  Support us

                  ioBroker
                  Community Adapters
                  Donate

                  807
                  Online

                  31.7k
                  Users

                  79.9k
                  Topics

                  1.3m
                  Posts

                  3
                  7
                  865
                  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