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

    • Neuer Blog: Fotos und Eindrücke aus Solingen

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

    • ioBroker goes Matter ... Matter Adapter in Stable

    Adapter - Parser (regEx)

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

      @Homoran:

      Leider muss ich mich nochmal melden.

      Mit der ganzen Aktion wollte ich den Status meines Wechselrichters loggen, weil es anscheinend zu Störungen kam. Dies war heute morgen wieder der Fall, da stand dann in dem Datenpunkt nur "St" :shock:

      In der WebUI stand dann wo hier Einspeisen MPP steht Störung Isolationsfehler.

      WR_WebUI.jpg

      Dies wollte ich loggen.

      Parser_WR_States.jpg

      Aber auch dort steht nur "St" und sonst nichts.

      Ich nehme an, dass der Umlaut ö das Problem erzeugt.

      Leider habe ich von dem Zeitpunkt keinen Seitenquelltext, sondern nur von gerade eben:

      ! ````
      ! <title>PV Webserver</title>
      ! <form method="post" action="">
      ! | |
      ! | |

      PIKO 5.5

      ! Helios (255)
      |
      |
      ! |

      ! * * *
      ! |
      ! | |
      ! |

      AC-Leistung |
        |

      Energie |

      ! | |
      ! |

      aktuell |

      1278 |
        W |

      Gesamtenergie |

      27319 |
        kWh |
        |

      ! | |
      ! |

      |

      |
        |

      Tagesenergie |

      13.98 |
        kWh |
        |

      ! | |
      ! |

      Status |

      Einspeisen MPP |
        |

      ! | |
      ! |
      ! |

      ! * * *
      ! |
      ! | |
      ! |
      ! |

      PV-Generator |
        |

      Ausgangsleistung |
        |
        |

      ! | |
      ! |

      <u>String 1</u> |
        |
        |

      <u>L1</u> |
        |
        |
        |

      ! |

      Spannung |

      324 |
        V |

      Spannung |

      230 |
        V |
        |

      ! | |
      !   |

      Strom |

      1.97 |
        A |

      Leistung |

      428 |
        W |
        |

      ! | |
      ! |

      <u>String 2</u> |
        |
        |

      <u>L2</u> |
        |
        |
        |

      ! |

      Spannung |

      347 |
        V |

      Spannung |

      230 |
        V |
        |

      ! | |
      !   |

      Strom |

      2.14 |
        A |

      Leistung |

      427 |
        W |
        |

      ! | |
      ! |

      <u>String 3</u> |
        |
        |

      <u>L3</u> |
        |
        |
        |

      ! |

      Spannung |

      0 |
       
      V |

      Spannung |

      224 |
        V |
        |

      ! | |
      !   |

      Strom |

      0.00 |
       
      A |

      Leistung |

      423 |
        W |
        |

      ! | |
      ! |
      ! | |

      ! * * *
      ! |
      ! | |
      ! |
      ! | |
      RS485 Kommunikation |
      ! | |
      ! | |
      Wechselrichter |
      | |
      ! * * *
      ! | |
      ! | |

      Historie
           
      Infoseite |

      Einstellungen

      ! </form>
      ! ````

      im Parser Adapter lese ich den Status aus mit

      ((?:\s+\w+)+)
      

      Das klappte mit den Standard zuständen beim online regex-tester problemlos.

      EDIT: Habe gerade bei regex101.com manuell "Einspeiden MPP" gegen "Störung Isolationsfehler" ausgetauscht, da ergibt der RegEx auch nur "St"

      Kann mir da bitte noch einmal jemand unter die Arme greifen?

      EDIT2: Nach einigem googeln klappt es jetzt hoffentlich mit

      (?:\s+([a-zA-Z äöüÄÖÜ]+))
      

      Gruß

      Rainer `

      Hallo,

      ich habe auch einen PIKO Wechselrichter 4.2 Ver. 3.7

      Wie auch Rainer das gemacht hat, hab ich soweit verstanden, also den Status auslesen.

      Hat auch soweit auf anhieb funktioniert.

      Aber wie werden alle anderen Daten ausgelesen? Aktuelle Leistung, Gesamtenergie usw.?

      Ich muss zugeben, ich bin absolut kein RegEx Profi, und scheitere an den eingaben…

      Kann mir hier vielleicht jemand helfen?

      Danke schonmal!

      ! ````
      ! <title>PV Webserver</title>
      ! <form method="post" action="">
      ! | |
      ! | |

      PIKO 4.2

      >!

      ! * * *
      ! |
      ! | |
      ! |

      AC-Leistung |
        |

      Energie |

      ! | |
      ! |

      aktuell |

      138 |
        W |

      Gesamtenergie |

      31349 |
        kWh |
        |

      ! | |
      ! |

      |

      |
        |

      Tagesenergie |

      0.03 |
        kWh |
        |

      ! | |
      ! |

      Status |

      Einspeisen MPP |
        |

      ! | |
      ! |
      ! |

      ! * * *
      ! |
      ! | |
      ! |
      ! |

      PV-Generator |
        |

      Ausgangsleistung |
        |
        |

      ! | |
      ! |

      <u>String 1</u> |
        |
        |

      <u>L1</u> |
        |
        |
        |

      ! |

      Spannung |

      677 |
        V |

      Spannung |

      221 |
        V |
        |

      ! | |
      !   |

      Strom |

      0.25 |
        A |

      Leistung |

      138 |
        W |
        |

      ! | |
      ! |

      <u>String 2</u> |
        |
        |

      <u>L2</u> |
        |
        |
        |

      ! |

      Spannung |

      0 |
        V |

      Spannung |

      226 |
        V |
        |

      ! | |
      !   |

      Strom |

      0.00 |
        A |

      Leistung |

      0 |
        W |
        |

      ! | |
      ! |

      <u>L3</u>
      >!
      |
      
      |
      
      |
      

      Spannung |

      228 |
        V |
        |

      ! | |
      !   |

      |
      
      |
      

      |

      Leistung |

      0 |
        W |
        |

      ! | |
      ! |
      ! | |

      ! * * *
      ! |
      ! | |
      ! |
      ! | |
      RS485 Kommunikation |
      ! | |
      ! | |
      Wechselrichter |
      | |

      ! |

      ! * * *
      ! |
      ! | |
      ! PV-Generatornt>
      ! Einstellungen
      </form>
      ! ````

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

        @blackplanet333:

        Wie auch Rainer das gemacht hat, hab ich soweit verstanden ….

        ...

        Aber wie werden alle anderen Daten ausgelesen? Aktuelle Leistung, Gesamtenergie usw.?

        Ich muss zugeben, ich bin absolut kein RegEx Profi, und scheitere an den eingaben... ` für mich klingt das irgendwie nach einem Wiedeerspruch 8-)

        Schau doch mal hier vorbei https://danielfett.de/de/tutorials/tuto … ausdrucke/

        Das ist eine Klasse Erläuterung von RegEx.

        Zusammen mit Rainers Beispiel solltest Du zum Ziel kommen können.

        1 Reply Last reply Reply Quote 0
        • A
          amnesia106 last edited by

          würde mich anschliessen bei dem Kostal Problem:

          Gesamtenergie.*\n.*\n*\s*\s(\d*)
          

          Bringt das richtige Ergebnis, jedoch wird es nicht in das Objekt geschrieben.

          https://regex101.com/r/4ctx9q/1
          1744_1.jpg
          1744_2.jpg

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

            Wie sieht denn eure Zeile im Parser-Adapter aus?

            gebt ihr bei der IP-Adresse die credentials mit?

            wie oft ruft der Parser die Seite auf?

            Gruß

            Rainer

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

              @amnesia106:

              Bringt das richtige Ergebnis, jedoch wird es nicht in das Objekt geschrieben.

              https://regex101.com/r/4ctx9q/1 ` Was ist denn wenn du die "Rolle" von Datenpunkt "Gesamtenergie" von "state" auf "value" änderst?

              Hat der Datenpunkt als Art/Type "Zahl" oder "Logikwert"?

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

                Ich denke eher dass die settings im Parser-Adapter für diesen Regex falsch sind. (u.a. Rolle und Typ)

                Gruß

                Rainer

                1 Reply Last reply Reply Quote 0
                • A
                  amnesia106 last edited by

                  Im Parser wäre Rolle „Wert“- Typ „Number“

                  Ich hab schon alle Rollen usw. durchgetestet. Aber was nebenbei- wenn das Ergebnis im Parser stimmt,

                  Ist das regex richtig? Also liegt es nur noch an der Verarbeitung in Iobroker?

                  Ich hab jetzt alle Rollen und Typen durchgetestet. Er schreibt keinen Wert:

                  Device Error wenn ich mit der Maus auf dem Wert bleibe, in dem kleinen Fenster was da kommt(Objekte Reiter) mehr nicht.

                  Der Status wird einwandfrei ausgelesen. (Gleiche URL)

                  URL ist:http://pvserver:passwort@192.168.2.250/index.fhtml

                  An der falschen URL kann es nicht liegen. Da der Status ja auch über die gleiche URL ausgelesen wird.

                  So langsam bin ich am Ende mit meinen Ideen

                  €: das ist das webinterface: @homoran- ich habe es von deinem Post (gleiches Thema Seite 4) übernommen, da es das gleiche ist, und genauso aussieht. Langsam habe ich den Verdacht, dass es an den Kästchen liegt, wo der Wert von der PV reingeschrieben wird. Der Status steht nämlich so „einfach“ ohne solch ein wertekästchen.. aber du hattest ja mal gesagt, dass du deinen auslesen konntest.

                  Trotzdem alles kurios, da das Ergebnis im parser richtig angezeigt wird. Als String, Json, number- bekomme ich das richtige Ergebnis.
                  1744_32f62f67-9792-4af8-9af8-ffe8ff2c39f5.jpeg

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

                    @amnesia106:

                    aber du hattest ja mal gesagt, dass du deinen auslesen konntest. `
                    Ich hatte über den parser nur den Status, die anderen Werte hatte ich über ein shell script in die CCU als SysVar und über hm-Rega in ioBroker 😉

                    Bitte klicke bei dem State in den Objekten mal rechts den Bleistift an, wähle dann den Reiter RAW (nur Experten) und poste den Inhalt.

                    Gruß

                    Rainer

                    1 Reply Last reply Reply Quote 0
                    • A
                      amnesia106 last edited by

                      RAW von Gesamtenergie im Spoiler:

                      ! ````
                      {
                      "from": "system.adapter.admin.0",
                      "ts": 1519326754876,
                      "common": {
                      "name": "Gesamtenergie",
                      "unit": "",
                      "type": "number",
                      "role": "value",
                      "write": false,
                      "read": true
                      },
                      "native": {
                      "link": "http://pvserver:mondeo@192.168.2.250/index.fhtml",
                      "regex": "Gesamtenergie.\n.\s*\s([0-9]*)",
                      "interval": "",
                      "substitute": "",
                      "factor": 1,
                      "offset": 0,
                      "item": 0,
                      "substituteOld": false,
                      "comma": false
                      },
                      "acl": {
                      "object": 1636,
                      "owner": "system.user.admin",
                      "ownerGroup": "system.group.administrator",
                      "state": 1636
                      },
                      "_id": "parser.0.Gesamtenergie",
                      "type": "state"
                      }

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

                        Du hast "write" auf false … da wird es schwer etwas in den Datenpunkt reinzuschreiben 😉

                        1 Reply Last reply Reply Quote 0
                        • A
                          amnesia106 last edited by

                          Das macht der Adapter automatisch. Ich hab da nichts umgestellt, Moment ich ändere und berichte.

                          €: bringt nix- parser fährt nicht mehr hoch danach. Außerdem steht Einspeisen MPP auch nur auf lesen true und es funktioniert. Wenn ihr euch eure parser Objekte anschaut stehen die bestimmt auch nur auf lesen true.

                          Also weiter gehts. 🙂

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

                            Ich hätte auch auf das write = false getippt, aber tatsächlich, bei mir steht da auch false: Das bedeutet nur, dass du unter Objekte nicht manuell ändern kannst.

                            Aber postet doch bitte, bitte endlich mal eure Parser Adaptereinstellungen!

                            Gruß

                            Rainer

                            1 Reply Last reply Reply Quote 0
                            • A
                              amnesia106 last edited by

                              Update:

                              Ich habe es geschafft die aktuelle Leistung über regex getestet über #FFFFF auszulesen. Da aber viele Werte mit FFFFF auslesbar sind muss ich es hinterher über nen NUM im parser Parlamentarierin.

                              Sprich aktuell ist NUM0 - aktuelle Leistung.

                              Gehe ich aber auf NUM1 - Gibt er mir Anfangs die Gesamtenergie aus.

                              Was auch soweit richtig ist. Ich habe zum Test ein 5sek Polling eingestellt.

                              Sie da: aktuelle Leistung ändert sich prima alle 5 sek. Aber: die gesamtenergie springt immer ein FFFFF wert weiter aus der html.

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

                                @amnesia106:

                                Das macht der Adapter automatisch. Ich hab da nichts umgestellt, Moment ich ändere und berichte.

                                €: bringt nix- parser fährt nicht mehr hoch danach. Außerdem steht Einspeisen MPP auch nur auf lesen true und es funktioniert. Wenn ihr euch eure parser Objekte anschaut stehen die bestimmt auch nur auf lesen true.

                                Also weiter gehts. 🙂 ` Du hast vollkommen wahr :shock: 8-)

                                Allerdings hat mein Parser kein Problem damit, wenn ich wirte=true setze

                                hmm, ich bin ratlos …

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

                                  @amnesia106:

                                  ich es hinterher über nen NUM im parser Parlamentarierin. `
                                  DANKE!

                                  deshalb wollte ich die Konfig sehen!!!!

                                  http://forum.iobroker.net/viewtopic.php … UM#p126201

                                  Gruß

                                  Rainer

                                  1 Reply Last reply Reply Quote 0
                                  • N
                                    nibblerrick last edited by

                                    Ich probiere gerade den Adapter aus, das Meiste klappt auch, ich habe aber ein seltsames Problem:

                                    https://regex101.com/r/oyqcAe/1/

                                    Hier kann man den Text sehen und sehen, dass es dort funktioniert.

                                    Vortag</td>.?\n?.?(-?\d+.?\d+)<

                                    Den ".?\n?.?"-Teil habe ich mit "?" gemacht, falls der iobroker-Parser mit den Zeilenumbruechen und Leerzeichen anders umgeht, macht aber keinen Unterschied, ob die "?" drin sind.

                                    Ich tippe am Ende des Parsereintrags auf bearbeiten (Bleistift) und das entsprechende Fenster oeffnet sich, Seite wird geladen, kein Ergebnis angezeigt.

                                    Stelle ich auf Number(,) um, gibt es ein Ergebnis. Stelle ich wieder auf Number um, gibt es das Ergebnis. Am Anfang macht auf der "playbutton" nicht, nach Umstellen geht er zum Ergebnis im Text.

                                    Ich habe das Gestern schon mit andern Eintraegen der Seite gehabt, gleiches Verhalten, da ich da allerdings die beiden relevanten Werte durch "**" filtern konnte habe ich nur darauf gefiltert und den ersten und zweiten ermittelten Werte (Num=0 und =1) genommen. Das war dann in der gleichen Zeile alles und sobald man auf den Bleistift drueckt gibt es auch das Ergebnis.

                                    Es scheint mir, dass der da irgendwie mit dem was ueber einen Zeilenumbruch hinausgeht ein Problem hat, ich kann nur nicht nachvollziehen was fuer eines.

                                    Jemand ne Idee?** 3803_firefox_2018-02-24_10-31-50.png
                                    3803_firefox_2018-02-24_10-32-26.png
                                    3803_firefox_2018-02-24_10-32-35.png

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

                                      Ich habe mal den RegEx so gemacht, wie ich es machen würde (Was natürlich nichts heißt):

                                      Vortag<\/td>\n.+(-?\d+\.\d+)<
                                      

                                      und bekomme damit zumindest im Regex101 auch ein Ergebnis.

                                      Wie kommst du auf ein Problem mit dem Zeilenumbruch? damit habe ich im Parser noch nie Probleme gehabt.

                                      ich tippe eher auf die "Leerzeichen" vor dem nächsten . Sind ggf. TAB

                                      Gruß

                                      Rainer

                                      1 Reply Last reply Reply Quote 0
                                      • N
                                        nibblerrick last edited by

                                        Ich meinte mit ueber den Zeilenumbruch hinaus einfach alles zwischen dem Ende der Zeile und den naechsten Buchstaben also Zeilenumbruch und/oder whitespace for dem naechsten.

                                        Habe deine Variante auch probiert, aber exakt das gleiche Verhalten wie bei meiner Variante.

                                        1 Reply Last reply Reply Quote 0
                                        • B
                                          bigtwinch last edited by

                                          Guten Tag

                                          Kann mir jemand mit regEX helfen? Ich bin ein totaler Anfänger.

                                          regEX ist für einen Epson WF-7620 Tintenstand.

                                          Wie kann ich den wert für auslesen.

                                          Source ist eine html page mit ul statements siehe example:

                                          example:

                                          • BK

                                          • ….

                                            Gruss

                                            Christian

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

                                            Hallo und Willkommen im Forum!

                                            ich bräuchte den ganzen Quelltext.

                                            bitte in spoiler und code-Tags posten

                                            Gruß

                                            Rainer

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

                                            Support us

                                            ioBroker
                                            Community Adapters
                                            Donate

                                            647
                                            Online

                                            31.7k
                                            Users

                                            79.8k
                                            Topics

                                            1.3m
                                            Posts

                                            43
                                            268
                                            100069
                                            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