Ankündigung

Einklappen
Keine Ankündigung bisher.

Webseiten auswerten

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

    HS/FS Webseiten auswerten

    Hallo,

    ich mache eine Abfrage einer Webseite und bekommen folgenden Resopnse bei einer einfachen Anfrage wenn ich diese in ein iKO schreibe:

    HTTP/1.0 200 OK Content-Type: application/json; charset=utf-8 {"ENERGY":{"GUI_BAT_DATA_FUEL_CHARGE":"fl_41B39782"}

    Ich möchte aber eigentlich nur den Bereich 41B39782 auswerten.
    Was muss ich bei einer Komplexen Web Abfrage in Regulären Ausdruck eintragen, damit alles andere wegfällt. Mein bisheriger Eintrag funktioniert nicht.

    .*\:\{.*GUI_BAT_DATA_FUEL_CHARGE"\:"fl_([0-9A-F]{,})}

    Danke

    #2
    Die Seite https://regex101.com/ kennst du? Du hast u.a. in der Kette [0-9A-F] den * Qualifier vergessen.

    Kommentar


      #3
      Hallo,

      die seite habe ich gesehen, werde aber nicht richt schlau draus. wo muss da noch ein Stern rein?

      Kommentar


        #4
        Servus be1001

        Ich bin selbst noch nicht dazugekommen die RegEx zu optimieren. Will dann aber auch die Dokumentation in dem Zuge verbessern.

        Kannst Du mal folgende RegEx bei Deinem HS testen?

        Code:
        (?<="GUI_BAT_DATA_FUEL_CHARGE":"fl_)[A-F0-9]+
        Wichtig ist, dass Du in der Debug-Seite einen „Work=1“ bekommst, das habe ich im anderen Thread bereits geschrieben.

        Eventuell alles von Hand nochmal tippen um etwaige Formatierungsfehler durch Copy/Paste zu vermeiden.

        Kommentar


          #5
          Wieso überhaupt so kompliziert mit dem Regex? Geht doch ganz einfach mit einer ganz normalen Webabfrage

          Beliebige Daten
          Text CHARGE":"fl_
          Wert als Klartext - hier den KO rein
          Text "}
          Beliebige Daten

          Grüße

          Olaf


          Möchte den Komfort meiner Installation nicht mehr missen!

          Kommentar


            #6
            Hallo,

            aktuelle sieht das so bei mir aus. (unten) Das mit (?<="GUI_BAT_DATA_FUEL_CHARGE":"fl_)[A-F0-9]+ werde ich heute Nachmittag testen.
            Bei einer einfachen Webabfrage habe ich einen Work = 1, bei einer komplexen Webabfrage habe ich Work= 0. Einziger Unterschied ist er Reguläre Ausdruck.
            Sonst sind die Abfragen gleich.


            image.png

            image.png

            Kommentar


              #7
              Anbei der Test: Work=0
              06.03.2023 13:24:24 (IP: 172.24.174.100) (Port: 80)
              (Send: 124) 0x50 0x4f 0x53 0x54 0x20 0x2f 0x6c 0x61 0x6c 0x61 0x2e 0x63 0x67 0x69 0x20 0x48 0x54 0x54 0x50 0x2f 0x31 0x2e 0x31 0xd 0xa 0x48 0x6f 0x73 0x74 0x3a 0x20 0x31 0x37 0x32 0x2e 0x32 0x34 0x2e 0x31 0x37 0x34 0x2e 0x31 0x30 0x30 0xd 0xa 0x43 0x6f 0x6e 0x74 0x65 0x6e 0x74 0x2d 0x54 0x79 0x70 0x65 0x3a 0x20 0x61 0x70 0x70 0x6c 0x69 0x63 0x61 0x74 0x69 0x6f 0x6e 0x2f 0x6a 0x73 0x6f 0x6e 0xd 0xa 0xd 0xa 0x7b 0x22 0x45 0x4e 0x45 0x52 0x47 0x59 0x22 0x3a 0x7b 0x22 0x47 0x55 0x49 0x5f 0x42 0x41 0x54 0x5f 0x44 0x41 0x54 0x41 0x5f 0x46 0x55 0x45 0x4c 0x5f 0x43 0x48 0x41 0x52 0x47 0x45 0x22 0x3a 0x22 0x22 0x7d 0xd 0xa
              POST /lala.cgi HTTP/1.1
              Host: 172.24.174.100
              Content-Type: application/json

              {"ENERGY":{"GUI_BAT_DATA_FUEL_CHARGE":""}

              (Recv: 118) 0x48 0x54 0x54 0x50 0x2f 0x31 0x2e 0x30 0x20 0x32 0x30 0x30 0x20 0x4f 0x4b 0xd 0xa 0x43 0x6f 0x6e 0x74 0x65 0x6e 0x74 0x2d 0x54 0x79 0x70 0x65 0x3a 0x20 0x61 0x70 0x70 0x6c 0x69 0x63 0x61 0x74 0x69 0x6f 0x6e 0x2f 0x6a 0x73 0x6f 0x6e 0x3b 0x20 0x63 0x68 0x61 0x72 0x73 0x65 0x74 0x3d 0x75 0x74 0x66 0x2d 0x38 0xd 0xa 0xd 0xa 0x7b 0x22 0x45 0x4e 0x45 0x52 0x47 0x59 0x22 0x3a 0x7b 0x22 0x47 0x55 0x49 0x5f 0x42 0x41 0x54 0x5f 0x44 0x41 0x54 0x41 0x5f 0x46 0x55 0x45 0x4c 0x5f 0x43 0x48 0x41 0x52 0x47 0x45 0x22 0x3a 0x22 0x66 0x6c 0x5f 0x34 0x32 0x37 0x34 0x45 0x35 0x45 0x30 0x22 0x7d
              HTTP/1.0 200 OK
              Content-Type: application/json; charset=utf-8

              {"ENERGY":{"GUI_BAT_DATA_FUEL_CHARGE":"fl_4274E 5E0 "}
              (Gesamt: 1) (Work: 0) (Typ: RegExp) (OK: 0)

              Kommentar


                #8
                Hightech - Du hast natürlich Recht! Keine Ahnung wieso ich damals so kompliziert gedacht habe. 🙈🙈🙈

                Ich werde das mal testen und entsprechend umbauen. be1001 ausser Du kommst vor mir dazu. Die Lösung steht oben von Hightech beschrieben

                Kommentar


                  #9
                  Hallo,

                  entweder ich bin zu blöd oder ich habe Tomaten auf den Augen. Ich sehe die Lösung nicht.🍅
                  Christian

                  Kommentar


                    #10
                    Hi Christian,

                    Post #5: https://knx-user-forum.de/forum/öffe...06#post1852806

                    Kommentar


                      #11
                      Hightech danke nochmals für "das Augen öffnen" - so geht es natürlich wesentlich einfacher. Die RegEx für eine Einzelabfrage war auch derart komplex, dass ich jeden Wert einzeln auswerten musste

                      Nun konnte ich wieder zurück auf eine einzelne Abfrage wo alle Werte abfragt und auswertet
                      Spannend war aber, dass ich die Content-Length in den Headern definieren musste, sonst ging es nicht..


                      be1001 Christian, nachstehend die Dokumentation wie es in der Auswertung nun geht.


                      Wie oben beschrieben habe ich die Abfrage ALLER Datenpunkte in eine Abfrage gesteckt:

                      Wichtig: Content-Length musste ich als Header dazu geben, ebenso ändert sich die JSON Abfrage wie folgt

                      Code:
                      {"ENERGY":{"GUI_HOUSE_POW":"","GUI_GRID_POW":"","GUI_INVERTER_POWER":"","GUI_BAT_DATA_POWER":"","GUI_BAT_DATA_FUEL_CHARGE":""}}
                      01.png


                      Im Bereich der Auswertung (Einfache!) stellt es sich wie folgt dar:

                      02.png


                      Läuft schon einige Stunden sehr stabil bei mir. Das schön daran, es ist nur mehr eine Abfrage (also Ressourcensparen) aber auch die Werte werden nun zeitgleich dargestellt.
                      Zuletzt geändert von sti87; 07.03.2023, 20:38. Grund: typo in code zeile

                      Kommentar


                        #12
                        Hallo,

                        habe es nach Deinen Angaben eingerichtet, aber leider kommen keine Daten an. Fehlt da nicht noch eine { Klammer?

                        image.pngimage.pngimage.png

                        Kommentar


                          #13
                          Ja, die fehlt. Komisch, ist beim einfügen wohl was untergegangen. Es muss so aussehen wie am Screenshot von mir.

                          Werde den Beitrag oben anpassen

                          Kommentar


                            #14
                            Es kommen daten an, sie werden aber nicht ins iko geschrieben.
                            image.png

                            Kommentar


                              #15
                              Beim 3. Block wo Text ausgewertet wird, hast Du einen Strichpunkt anstelle eines Kommas.

                              Code:
                              ",
                              nicht
                              Code:
                              ";

                              Kommentar

                              Lädt...
                              X