Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Skripten / Logik
    4. Frage zu "regex" (ist doch ganz schön komplex)

    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

    Frage zu "regex" (ist doch ganz schön komplex)

    This topic has been deleted. Only users with topic management privileges can see it.
    • bahnuhr
      bahnuhr Forum Testing Most Active last edited by

      Hallo,
      Danke für die schnelle Antwort. Klappt aber nicht.

      Eingefügt habe ich:

      
      var re = /#FFFFFF">\ ((\d|\.)+)/g;
      var z = re.exec(d);
      var results = [];
      while(z != null) {
      	console.log(z[1]);
        results[results.length] = z[1];
        z = re.exec(d);
      }
      
      log ("z= " + z )
      console.log("results= " + results);
      

      Als Antwort im log:
      1a41cec2-8c00-4e41-877a-a28440560900-grafik.png

      mfg

      1 Reply Last reply Reply Quote 0
      • bahnuhr
        bahnuhr Forum Testing Most Active last edited by

        So, ich noch mal.

        Wenn ich dein Script ausführe:
        a30995a1-4a46-4578-a81e-86c9d7521ee6-grafik.png

        kommt bei mir auch das gewünschte Ergebnis:
        5ce5a484-8d91-4d7e-9066-4f35426c11b1-grafik.png

        Klappt also soweit.

        Füge ich den Script-Schnipsel in mein anderes Script (für den eigentlichen Zweck):

        Piko();
        
         function Piko() {
            if (logging) log("Piko 5.5 auslesen");
                request('http://' + NameAnlage + ':' + PassAnlage +'@' + IPAnlage, function (error, response, body) {
                    d = body.toString();
                    log ("d= " + d);
        
        var re = /#FFFFFF">\ ((\d|\.)+)/g;
        var z = re.exec(d);
        var results = [];
        while(z != null) {
        	console.log(z[1]);
          results[results.length] = z[1];
          z = re.exec(d);
        }
        console.log("results= " + results);
                });
         }
        

        kommt:
        a0c6cc72-ea3b-4b88-b90c-5423bc47aefc-grafik.png

        unten bei results nichts.

        Ich vermute es liegt irgendwie an "unterschiedlichen Formaten".

        Ist denn "d = body.toString();" kein String?

        Oder warum wird da nichts angezeigt.

        1 Reply Last reply Reply Quote 0
        • bahnuhr
          bahnuhr Forum Testing Most Active last edited by

          Also, ich bekomme es nicht hin.
          Habe auch einen thread hier gefunden:
          https://forum.iobroker.net/topic/8690/status-vom-kostal-wechselrichter-auslesen/23
          wo Rainer (homoran) und andere einige regex kundtun.
          Nur irgendwie stelle ich mich hier zu blöd an.

          Weder per Script noch per parser bekomme ich die Werte angezeigt.

          Vielleicht hat noch jemand einen Tipp für mich.

          mfg

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

            @bahnuhr
            Wenn meine von dir verlinkten regex im parser Adapter nichts bringen, gibt es zwei Möglichkeiten.

            Entweder du hast doch die neue Firmware
            Oder du gibst etwas falsch ein (z.b. die ip ohne zugangsdaten)

            bahnuhr 1 Reply Last reply Reply Quote 0
            • bahnuhr
              bahnuhr Forum Testing Most Active @Homoran last edited by

              @Homoran sagte in Frage zu "regex" (ist doch ganz schön komplex):

              Entweder du hast doch die neue Firmware

              Nein, ich hab die alte.
              (hab ich auch schon mehrfach erwähnt und ist ja auch an meinem alten cheerio Script ersichtlich.

              @Homoran sagte in Frage zu "regex" (ist doch ganz schön komplex):

              Oder du gibst etwas falsch ein (z.b. die ip ohne zugangsdaten)

              Nein, wie oben ersichtlich bekomme ich ja einen string geliefert.
              Außerdem hat es ja 2 Jahre funktioniert.

              Meine Vermutung:
              Durch das Update wurde irgendwas geändert und cheerio läuft nun nicht mehr.
              Und dafür suche ich ja ne Alternative.
              Aber vielleicht kann man ja die Änderung wieder so ändern, dass cheerio wieder läuft.

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

                @bahnuhr sagte in Frage zu "regex" (ist doch ganz schön komplex):

                und cheerio läuft nun nicht mehr.

                und was hat das mit dem parser-Adapter zu tun?

                bahnuhr 1 Reply Last reply Reply Quote 0
                • bahnuhr
                  bahnuhr Forum Testing Most Active @Homoran last edited by

                  @Homoran sagte in Frage zu "regex" (ist doch ganz schön komplex):

                  @bahnuhr sagte in Frage zu "regex" (ist doch ganz schön komplex):

                  und cheerio läuft nun nicht mehr.

                  und was hat das mit dem parser-Adapter zu tun?

                  Tut mir leid, versteh deine Frage nicht.

                  regex kann man doch sowohl per script als auch mit dem parser darstellen.

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

                    @bahnuhr
                    meine Frage bezog sich ausschließlich auf den parser-Adapter:

                    @Homoran sagte in Frage zu "regex" (ist doch ganz schön komplex):

                    Wenn meine von dir verlinkten regex im parser Adapter nichts bringen

                    1 Reply Last reply Reply Quote 0
                    • bahnuhr
                      bahnuhr Forum Testing Most Active last edited by

                      Na gut Rainer, dann halt parser.

                      In parser hab ich folgendes eingegeben:
                      3372acc6-0538-42a2-918b-edc422d16702-grafik.png

                      Bei klick rechts auf bearbeiten, kommt:
                      9be0f6f1-829b-440d-8458-54bbfeb7fb69-grafik.png

                      Unten im Ergebnis (und somit auch im Objekt) steht nichts.

                      Wenn ich nun diesen Text (in der Mitte) kopiere nach regex101 kommt:
                      b9578b8f-c2a0-4775-97c1-2ef3228e6bfb-grafik.png

                      Wie ersichtlich werden die einzelne Werte korrekt ausgelesen.
                      Nur im Adapter parser kommt nichts.

                      Für mich stellt sich die Frage:
                      Warum klappt das auf der webseite regex101 aber nicht im Adapter parser ?

                      Vielleicht kannst du das nachvollziehen und hast eine Idee für mich.

                      Danke.

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

                        @bahnuhr sagte in Frage zu "regex" (ist doch ganz schön komplex):

                        Warum klappt das auf der webseite regex101 aber nicht im Adapter parser ?

                        es gibt leider verschiedene Parser "treiber"
                        Es funktioniert nicht immer bei regex101 und in dem Adapter.

                        Leider habe ich ja die alte Version nicht mehr und kann es daher nicht selber testen, aber ich werde versuchen dir zu helfen

                        EDIT: nimm mal die "...." aus der Klammer

                        1 Reply Last reply Reply Quote 0
                        • bahnuhr
                          bahnuhr Forum Testing Most Active last edited by

                          ... rausgenommen.

                          2ff07b56-6781-4d73-8690-39dff91e616f-grafik.png

                          keine Veränderung

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

                            @bahnuhr
                            nicht rausnehmen -> vor die Klammer
                            Die Punkte stehen für Leerzeichen - das ist dann keine Number

                            1 Reply Last reply Reply Quote 0
                            • bahnuhr
                              bahnuhr Forum Testing Most Active last edited by

                              so?
                              399ab27e-55ad-496a-a25f-d5032ff045b2-grafik.png

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

                                @bahnuhr
                                Ja 😞

                                Kannst du mir mal den Quelltext schicken, dann versuche ich es mal

                                1 Reply Last reply Reply Quote 0
                                • bahnuhr
                                  bahnuhr Forum Testing Most Active last edited by

                                  na klar
                                  bitte schön

                                  <!DOCtype HTML PUBLIC "-//W3C//Dtd HTML 4.0 Transitional//EN">
                                  <html>
                                  <head>
                                  <meta HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=ISO-8859-1">
                                  <meta name="Generator" CONTENT="ChrisB">
                                  <title>PV Webserver</title>
                                  </head>
                                  <body nof="(MB=(DefaultMasterborder, 65, 60, 150, 10), L=(HomeLayout, 700, 600))" bgcolor="#EAF7F7" text="#000000" link="#0033CC" vlink="#990099" alink="#FF0000" topmargin=0 leftmargin=0 marginwidth=0 marginheight=0>
                                  <form method="post" action="">
                                  <table cellspacing="0" cellpadding="0" width="770" nof="ly">
                                  <tr><td height="5"></td></tr>
                                  <tr><td width="190" height="55"></td>
                                  <td width="400">
                                    <font face="Arial,Helvetica,Geneva,Sans-serif,sans-serif" size="+3">
                                    PIKO 5.5
                                  <br><font size="+1">                 
                                    PV_Mueller (255)
                                  </font>
                                  </font>
                                  </td>
                                  <td><img alt="Logo" height="42" width="130" src="KSE.gif"></td>
                                  </tr>
                                  </table>
                                  
                                  <font face="Arial,Helvetica,Geneva,Sans-serif,sans-serif">
                                  <table Border="0" width="100%"><tr>
                                  <td width="150"></td>
                                  <td> <hr> </td>
                                  </tr></table>
                                  <table cellspacing="0" cellpadding="0" width="770">
                                  <tr><td></td></tr>
                                  <tr>
                                  <td width="190"></td>
                                  <td colspan="2">
                                    <b>AC-Leistung</b></td>
                                  <td>&nbsp</td>
                                  <td>
                                    <b>Energie</b></td></tr>
                                  <tr><td height="10"></td></tr>
                                  
                                  <tr>
                                  <td width="190"></td>
                                  <td width="100">
                                    aktuell</td>
                                  <td width="70" align="right" bgcolor="#FFFFFF">
                                    1665</td>
                                  <td width="140">&nbsp W</td>
                                  <td width="100">
                                    Gesamtenergie</td>
                                  <td width="70" align="right" bgcolor="#FFFFFF">
                                    31661</td>
                                  <td width="50">&nbsp kWh</td>
                                  <td>&nbsp</td></tr>
                                  <tr height="2"><td></td></tr>
                                  <tr>
                                  <td width="190"></td>
                                  <td width="100">
                                    &nbsp</td>
                                  <td width="70" align="right">
                                    &nbsp</td>
                                  <td width="140">&nbsp</td>
                                  <td width="100">
                                    Tagesenergie</td>
                                  <td width="70" align="right" bgcolor="#FFFFFF">
                                    3.32</td>
                                  <td width="50">&nbsp kWh</td>
                                  <td>&nbsp</td></tr>
                                  <tr height="5"><td></td></tr>
                                  <tr>
                                  <td width="190"></td>
                                  <td width="100">
                                    Status</td>
                                  <td colspan="4">
                                    Einspeisen MPP</td>
                                  <td>&nbsp</td></tr>
                                  <tr height="8"><td></td></tr>
                                  <tr><td colspan="7">
                                  <table align="top" width="100%"><tr>
                                  <td width="182"></td>
                                  <td><hr size="1"></font></td></tr>
                                  <tr><td height="5"></td></tr></table>
                                  </td></tr>
                                  <tr>
                                  <td width="190"></td>
                                  <td colspan="2">
                                    <b>PV-Generator</b></td>
                                  <td width="140">&nbsp</td>
                                  <td colspan="2">
                                    <b>Ausgangsleistung</b></td>
                                  <td width="30">&nbsp</td>
                                  <td>&nbsp</td></tr>
                                  <tr><td height="10"></td></tr>
                                  <tr>
                                  <td width="190"></td>
                                  <td width="100">
                                    <u>String 1</u></td>
                                  <td width="70">&nbsp</td>
                                  <td width="140">&nbsp</td>
                                  <td width="95">
                                    <u>L1</u></td>
                                  <td width="70">&nbsp</td>
                                  <td width="30">&nbsp</td>
                                  <td>&nbsp</td></tr>
                                  <tr>
                                  <td width="190"></td>
                                  <td width="100">
                                    Spannung</td>
                                  <td width="70" align="right" bgcolor="#FFFFFF">
                                    595</td>
                                  <td width="140">&nbsp V</td>
                                  <td width="100">
                                    Spannung</td>
                                  <td width="70" align="right" bgcolor="#FFFFFF">
                                    236</td>
                                  <td width="30">&nbsp V</td>
                                  <td>&nbsp</td></tr>
                                  <tr height="2"><td></td></tr>
                                  <tr valign="top" align="left">
                                  <td width="190">&nbsp</td>
                                  <td width="100">
                                    Strom</td>
                                  <td width="70" align="right" bgcolor="#FFFFFF">
                                    1.61</td>
                                  <td width="140">&nbsp A</td>
                                  <td width="100">
                                    Leistung</td>
                                  <td width="70" align="right" bgcolor="#FFFFFF">
                                    560</td>
                                  <td width="30">&nbsp W</td>
                                  <td>&nbsp</td></tr>
                                  <tr height="22"><td></td></tr>
                                  <tr>
                                  <td width="190"></td>
                                  <td width="100">
                                    <u>String 2</u></td>
                                  <td width="70">&nbsp</td>
                                  <td width="140">&nbsp</td>
                                  <td width="100">
                                    <u>L2</u></td>
                                  <td width="70">&nbsp</td>
                                  <td width="30">&nbsp</td>
                                  <td>&nbsp</td></tr>
                                  <tr>
                                  <td width="190"></td>
                                  <td width="100">
                                    Spannung</td>
                                  <td width="70" align="right" bgcolor="#FFFFFF">
                                    594</td>
                                  <td width="140">&nbsp V</td>
                                  <td width="100">
                                    Spannung</td>
                                  <td width="70" align="right" bgcolor="#FFFFFF">
                                    234</td>
                                  <td width="30">&nbsp V</td>
                                  <td>&nbsp</td></tr>
                                  <tr height="2"><td></td></tr>
                                  <tr valign="top" align="left">
                                  <td width="190">&nbsp</td>
                                  <td width="100">
                                    Strom</td>
                                  <td width="70" align="right" bgcolor="#FFFFFF">
                                    1.29</td>
                                  <td width="140">&nbsp A</td>
                                  <td width="100">
                                    Leistung</td>
                                  <td width="70" align="right" bgcolor="#FFFFFF">
                                    549</td>
                                  <td width="30">&nbsp W</td>
                                  <td>&nbsp</td></tr>
                                  <tr height="22"><td></td></tr>
                                  <tr>
                                  <td width="190"></td>
                                  <td width="100">
                                    <u>String 3</u></td>
                                  <td width="70">&nbsp</td>
                                  <td width="140">&nbsp</td>
                                  <td width="100">
                                    <u>L3</u></td>
                                  <td width="70">&nbsp</td>
                                  <td width="30">&nbsp</td>
                                  <td>&nbsp</td></tr>
                                  <tr>
                                  <td width="190"></td>
                                  <td width="100">
                                    Spannung</td>
                                  <td width="70" align="right" bgcolor="#FFFFFF">
                                    0</td>
                                  <td width="140">&nbsp
                                    V</td>
                                  <td width="95">
                                    Spannung</td>
                                  <td width="70" align="right" bgcolor="#FFFFFF">
                                    236</td>
                                  <td width="30">&nbsp V</td>
                                  <td>&nbsp</td></tr>
                                  <tr height="2"><td></td></tr>
                                  <tr valign="top" align="left">
                                  <td width="190">&nbsp</td>
                                  <td width="95">
                                    Strom</td>
                                  <td width="70" align="right" bgcolor="#FFFFFF">
                                    0.00</td>
                                  <td width="140">&nbsp
                                  A</td>
                                  <td width="95">
                                    Leistung</td>
                                  <td width="70" align="right" bgcolor="#FFFFFF">
                                    552</td>
                                  <td width="30">&nbsp W</td>
                                  <td>&nbsp</td></tr>
                                  
                                  <tr><td height="15"></td></tr>
                                  <tr><td colspan="7">
                                  <table align="top" width="100%">
                                  <tr><td width="182"></td>
                                  <td><hr size="1"></font></td>
                                  </tr><tr><td height="5"></td></tr></table>
                                  </td></tr></table>
                                  <table cellspacing="0" cellpadding="0" width="770">
                                  <tr><td width="190"></td>
                                  <td><font face="Arial,Helvetica,Geneva,Sans-serif">
                                  <b>RS485 Kommunikation</b></td></tr>
                                  <tr><td height="8"></td></tr>
                                  <tr><td width="190"></td>
                                  <td><font face="Arial,Helvetica,Geneva,Sans-serif">
                                  Wechselrichter&nbsp
                                  <input type="Text" name="edWrNr" value="255" size="3" maxlength="3">
                                  <input type="submit" value="Anzeigen/Aktualisieren">
                                  </td></tr><tr><td height="10"></td></tr>
                                  </table>
                                  </td></tr></table></font>
                                  
                                  <hr>
                                  <table cellspacing="0" cellpadding="0" width="770">
                                  <tr><td height="5"></td></tr>
                                  <tr><td width="190"></td>
                                  <td width="330">
                                  <font face="Arial,Helvetica,Geneva,Sans-serif,sans-serif">
                                  <a href="LogDaten.dat">Historie</a>
                                  &nbsp &nbsp &nbsp
                                  <a href="Info.fhtml">Infoseite</a></font></td>
                                  <td align="right">
                                  <font face="Arial,Helvetica,Geneva,Sans-serif,sans-serif">
                                  <a href="Solar2.fhtml">Einstellungen</a></font></td>
                                  <td width="50"></td>
                                  </tr></table></font>
                                  </form>
                                  </body>
                                  </html>
                                  
                                  
                                  1 Reply Last reply Reply Quote 0
                                  • bahnuhr
                                    bahnuhr Forum Testing Most Active last edited by

                                    das war jetzt der Text den parser in dem "Kästchen" hatte.

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

                                      @bahnuhr
                                      Ja!

                                      ich habe eine "Lösung"
                                      weiß aber selber nicht warum:

                                      #FFFFFF">[^\d]+([^<]+)
                                      

                                      EDIT: nochmal geändert - jetzt weiß ich auch warum es so klappt

                                      1 Reply Last reply Reply Quote 1
                                      • bahnuhr
                                        bahnuhr Forum Testing Most Active last edited by

                                        @Homoran sagte in Frage zu "regex" (ist doch ganz schön komplex):

                                        #FFFFFF">[^\d]+([^<]+)

                                        Danke, ich probiers aus.
                                        Ist schon komisch das ganze.

                                        @Homoran sagte in Frage zu "regex" (ist doch ganz schön komplex):

                                        EDIT: nochmal geändert - jetzt weiß ich auch warum es so klappt

                                        Sag doch auch mal wie.

                                        P.S.
                                        Ich probier dies dann auch mal in einem Script aus.

                                        1 Reply Last reply Reply Quote 0
                                        • bahnuhr
                                          bahnuhr Forum Testing Most Active last edited by

                                          Jaaaaaaaaa

                                          Es klappt sowohl mit Parser als auch im Script.

                                          Warum das so ist würde mich doch interessieren.
                                          Für evtl. zukünftiges.

                                          P.S.
                                          Hast ein Bier gut !

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

                                            @bahnuhr sagte in Frage zu "regex" (ist doch ganz schön komplex):

                                            Warum das so ist würde mich doch interessieren.

                                            iobroker mag kein \n

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

                                            Support us

                                            ioBroker
                                            Community Adapters
                                            Donate

                                            428
                                            Online

                                            31.9k
                                            Users

                                            80.2k
                                            Topics

                                            1.3m
                                            Posts

                                            javascript
                                            3
                                            25
                                            739
                                            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