Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. ioBroker Allgemein
    4. Pegel der Donau per Parser auslesen

    NEWS

    • Neues Video über Aliase, virtuelle Geräte und Kategorien

    • Wir empfehlen: Node.js 22.x

    • Neuer Blog: Fotos und Eindrücke aus Solingen

    Pegel der Donau per Parser auslesen

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

      @MyzerAT
      ja regex ist ein harte Nuss, auch ich muss mich da immer durchbeissen.
      regex101.com ist super zum testen und Beispielcode erzeugen (Code Generator)

      Als kleine Verbesserung würde ich nur die folgende Zeichenkette in all deinen Regeln verwenden
      und je nachdem was für ein Wert du zurück bekommen möchtest, den Num Wert anpassen.
      Der nachfolgende Ausdruck findet alle Werte, die in einem <td class="value"> feld sind (also insgesamt 4.
      Über den Num-Wert in der Maske kannst du dann auswäheln, gut ist, das das Ergebnis in der Maske auch gleich angezeigt wird. Achtung beim selektieren wird einb Leerzheichen hinter der letzten Klammer mitselektiert. Das darf nicht mit eingegeben werden, da dies dann zum Selektionsmuster dazugezält wird.

      "value">([^<]*)
      

      Zur Erklärung für die Zeichenkette (steht auf englisch etwas kryptisch auch in regex101 oben rechts.

      "value">
      

      sucht genau nach dieser zeichenfolge

      (
      

      alles was in Klammern steht wird als Parameter zurüggegeben, also da gehört dann auch das schliesende ) dazu

      [^<]
      

      identifiziert alle Zeichen bis auf <

      *
      

      Der Stern ist ein Multiplikator, der angibt, wie oft ein Zeichen gefunden werden soll

      Viel Spaß mit regex
      wenn du öfters in Texten intelligent mal was suchen sollst, dann lohnt sich das durchbeißen wirklich.

      1 Reply Last reply Reply Quote 1
      • MyzerAT
        MyzerAT last edited by MyzerAT

        So die wichtigsten Sachen für VIS was die Wasserpegel betrifft habe ich nun , jetzt muss ich noch ein Script machen was mich ab einem kritischen Wert informiert --> THX euch allen!

        4d715f90-d6db-431b-b494-aecd0ac5a58c-grafik.png

        #Edit#
        so script ist nun auch fertig

        162b98c9-f4d2-44bb-a68e-28004d743608-grafik.png

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

          @MyzerAT sagte in Pegel der Donau per Parser auslesen:

          machst mir die zeichenfolge inkl, Uhrzeit

          Das steht doch in diesem Post

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

            @Homoran

            das Datum, aber nicht die Zeit!

            wobei ich jetzt folgende Meldung bekomme

            host.RDJL_Home	2019-11-27 22:05:00.550	error	instance system.adapter.parser.0 terminated with code 156 ()
            

            ohne das ich was geändert hätte genau alle Minuten!

            #Edit#

            Ursache gefunden, hatte einen cron eingerichtet und das hat den Fehler verursacht
            d23cf398-11a2-4624-954e-3b5a4959014d-grafik.png
            hab ihn wieder rausgelöscht, habe ich deshalb gemacht weil irgend wie die Intervalle nicht gehen:

            9fe239cb-334d-466a-b6b3-182b876718b9-grafik.png

            hatte bei den Regeln jeweils 900000 eingestellt und er aktualisiert nicht die werte, 5000 finde ich doch ein wenig nieder, gibt es da was zu beachten ?!

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

              @MyzerAT sagte in Pegel der Donau per Parser auslesen:

              das Datum, aber nicht die Zeit!

              Die zeit hätte mit drin sein sollen, mache ich dir morgen wenn ich wieder am PC sitze.

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

                @MyzerAT auf keinen Fall 5000, das kann die Website lahmlegen.
                Viele Webseiten haben in den Nutzungsbedingungen sowieso drin stehen, dass maschinelles Auslesen verboten ist.

                Warum klappt den 900000 nicht?

                Dein "cron" ist für einen Neustart der Instanz

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

                  @Homoran

                  ich hatte eingestellt alle 15 Minuten, normal würde auch einmal die Stunde reichen, da die Werte auch auf der Webseite nur alle 60minuten aktualisiert werden. Da die 900000 nicht geklappt hatten, dachte ich mir, was soll's ich starte eben die Instanz alle 60 Minuten durch und das hat dann diesen Fehler ausgeworfen, warum auch immer!

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

                    @MyzerAT sagte in Pegel der Donau per Parser auslesen:

                    Da die 900000 nicht geklappt hatten,

                    Nochmal:
                    Warum hat das nicht geklappt?

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

                      weil auf der Seite die Werte sich geändert haben, zur vollen Stunde und in den Datenpunkten nicht und das über mehrere Stunden!

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

                        @MyzerAT sagte in Pegel der Donau per Parser auslesen:

                        und in den Datenpunkten nicht und das über mehrere Stunden!

                        Hat sich der zeitstempel geändert?

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

                          nein hat er nicht , auf das schau ich ja immer im Datenpunkt !

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

                            Dann stimmt irgendetwas nicht.

                            Ich nutze 360000, das klappt.
                            Ich weiß nicht ob es da einen Maximalwert gibt. Versuche es mal mit 360000

                            Dein cron wird wohl auf jede Minute eingestellt gewesen sein, statt jede Stunde.

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

                              @Homoran sagte in Pegel der Donau per Parser auslesen:

                              360000

                              habe es auf 360000 umgestellt, Und nein war nicht auf jede Minute, hatte extra bestimmte Stunden ausgewählt und dann alle alle 24 per einzeln anklicken aktiviert !

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

                                @Homoran sagte in Pegel der Donau per Parser auslesen:

                                @MyzerAT sagte in Pegel der Donau per Parser auslesen:

                                das Datum, aber nicht die Zeit!

                                Die zeit hätte mit drin sein sollen, mache ich dir morgen wenn ich wieder am PC sitze.

                                Die Zeit ist drin

                                PegelDonauDatum.png

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

                                  @MyzerAT sagte in Pegel der Donau per Parser auslesen:

                                  Und nein war nicht auf jede Minute, hatte extra bestimmte Stunden ausgewählt und dann alle alle 24 per einzeln anklicken aktiviert !

                                  Das heisst ja gar nichts.
                                  Aber ohne Screenshot wird das Rätselraten.

                                  Dein log meldete jede Minute einen Neustart, also wirst du den Cron so eingestellt haben.
                                  zu jeder Minute in den ausgewählten Stunden

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

                                    @MyzerAT sagte in Pegel der Donau per Parser auslesen:

                                    weil auf der Seite die Werte sich geändert haben

                                    Dann besteht noch eine Möglichkeit.
                                    Der Seitenbetreiber verhindert die automatische Auslesung und dein Werte stammten noch von dem Test mit dem extrahierten Quelltext?

                                    Aber auch das wird ohne weitere Infos zum Rätselraten

                                    1 Reply Last reply Reply Quote 1
                                    • MyzerAT
                                      MyzerAT last edited by

                                      es funktioniert eh, ich dachte es geht nicht da ich erwartet hatte zu vollen stunde wird aktualisiert und sehe jetztt das immer 8 minuten nach die aktuellen werte reinkommen, also funktioniert es , super dank dir für deine Geduld und Hilfe !!!!!

                                      Homoran 3 Replies Last reply Reply Quote 0
                                      • Homoran
                                        Homoran Global Moderator Administrators @MyzerAT last edited by

                                        @MyzerAT
                                        Ich habe das Ganze gerade versucht nachzustellen.

                                        Ich sehe auch, dass sich eigentlich nichts tut.
                                        Im log sehe ich auch nichts.

                                        Aber irgendwann passiert was - warum auch immer
                                        Mag sein, dass der Adapter in den Datenpunkten nichts einträgt wenn sich nichts ändert.

                                        Die Uhrzeit ist bei mir drin
                                        PegelDatum.png

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

                                          @MyzerAT sagte in Pegel der Donau per Parser auslesen:

                                          jetztt das immer 8 minuten nach

                                          Wie oft fragst du jetzt ab?

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

                                            @MyzerAT sagte in Pegel der Donau per Parser auslesen:

                                            da ich erwartet hatte zu vollen stunde wird aktualisiert

                                            Ist nicht so!

                                            Ich habe jetzt Stunden vor dem Bildschirm verbracht und die Website wird etwa 8 Minuten nach der vollen Stunde aktualisiert.
                                            Deswegen nochmal die Frage:

                                            @Homoran sagte in Pegel der Donau per Parser auslesen:

                                            Wie oft fragst du jetzt ab?

                                            Wenn es bei dir prompt um xx:08 aktualisiert fragst du wahrscheinlich immer noch alle 5 Sekunden (oder in einem anderen Sekundenbereich) ab und legst irgendwann die Website lahm.

                                            @Homoran sagte in Pegel der Donau per Parser auslesen:

                                            Mag sein, dass der Adapter in den Datenpunkten nichts einträgt wenn sich nichts ändert.

                                            Genau das passiert!
                                            ich habe die Instanz auf loglevel debug gestellt.

                                            Alle 15 Minuten (bei Intervall 900000) startet der Adapter:

                                            parser.0	2019-11-28 13:03:22.329	debug	(2308) States for current Interval (900000): ["parser.0.Pegel_Donau","parser.0.Pegelstand"]
                                            parser.0	2019-11-28 13:03:22.330	debug	(2308) Do Link: http://laendris.donaustationen.at/index.php?Tage=1&module_id=6&action=details&pegelstelle_id=1&l_laende_id=26
                                            parser.0	2019-11-28 13:03:22.331	debug	(2308) Request URL: http://laendris.donaustationen.at/index.php?Tage=1&module_id=6&action=details&pegelstelle_id=1&l_laende_id=26
                                            parser.0	2019-11-28 13:03:22.512	debug	(2308) Process ["parser.0.Pegel_Donau","parser.0.Pegelstand"] for link http://laendris.donaustationen.at/index.php?Tage=1&module_id=6&action=details&pegelstelle_id=1&l_laende_id=26
                                            

                                            Wie du siehst war mein 15-Minuten-Intervall um 13:03 beendet, zu dem Zeitpunkt hatte die Seite noch nicht aktualisiert.
                                            Das überprüft der Adapter:

                                            parser.0	2019-11-28 13:03:22.513	debug	(2308) analyseData CHECK for parser.0.Pegel_Donau, old=28.11.2019 12:00
                                            parser.0	2019-11-28 13:03:22.517	debug	(2308) analyseData CHECK for parser.0.Pegelstand, old=191
                                            

                                            Weitere 15 Minuten später waren dann die Werte aktualisiert. Jetzt schreibt der Adapter in den Datenpunkt:

                                            parser.0	2019-11-28 13:18:22.538	debug	(2308) analyseData for parser.0.Pegel_Donau, old=28.11.2019 12:00, new=28.11.2019 13:00
                                            parser.0	2019-11-28 13:18:22.594	debug	(2308) analyseData for parser.0.Pegelstand, old=191, new=189
                                            

                                            Bitte setze dein Aktualisierungsintervall auf einen hohen Wert!

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

                                            Support us

                                            ioBroker
                                            Community Adapters
                                            Donate
                                            FAQ Cloud / IOT
                                            HowTo: Node.js-Update
                                            HowTo: Backup/Restore
                                            Downloads
                                            BLOG

                                            812
                                            Online

                                            32.0k
                                            Users

                                            80.5k
                                            Topics

                                            1.3m
                                            Posts

                                            parser adapter
                                            6
                                            38
                                            1511
                                            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