Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Skripten / Logik
    4. Temperaturwert aus einfacher HTML Seite Auslesen.

    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

    Temperaturwert aus einfacher HTML Seite Auslesen.

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

      Hallo zusammen,

      ich habe an meinem Arduino Uno mit Ethernet Spielt einen Temperatursensor angeschlossen, welcher seinen Wert auf einer HTML Seite anzeigt.

      Der Wert steht dabei immer an der exakten Stelle im Code.

      Kann ich durch ein Script den Wert an folgender Position im HTML Code auslesen, und in iO Broker so nutzen das ich ihn für weitere Scripts nutzen kann? Z.b. für eine Mitteilung wenn es zu kalt wird etc…

      Der HTML Code schaut folgendermaßen aus:````

      Aktuelle Temperatur:
      19.60
      (Crad)

      Also extremst einfach und dabei geht mir es nur um die Zahl sprich aktuell 19.60.
      
      Die Homepage sprich der Wert wird alle 5 Minuten von meinem Arduino aktualisiert.
      
      Ich habe hier im Forum ein Script gesehen wo die Werte einer Seite mit dem Pegel eines Sees ausgelesen werden kam damit jedoch nicht weiter.
      
      Mit freundlichen grüßen, und danke im Voraus ;)
      1 Reply Last reply Reply Quote 0
      • Homoran
        Homoran Global Moderator Administrators last edited by

        Nimm den parser-Adapter, gib die HTML-Adresse ein und nimm als Regex

        :\n([^\n]+)
        

        Num ist 0

        Gruß

        Rainer

        1 Reply Last reply Reply Quote 0
        • P
          pzudematrick last edited by

          Vielen Dank, für deine schnelle Antwort. Werde das morgen mal probieren und berichten.

          1 Reply Last reply Reply Quote 0
          • P
            pzudematrick last edited by

            Wie muss ich den Regex dann in meiner HTML Seite einbinden?

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

              Nicht in der Seite, im parser Adapter

              1 Reply Last reply Reply Quote 0
              • P
                pzudematrick last edited by

                Leider kommt nichts raus ?

                ~~![](</s><URL url=)http://patzeservers2016.ddns.net/gb/arbeitsplan/1.png" />

                ![](</s><URL url=)http://patzeservers2016.ddns.net/gb/arbeitsplan/2.png" />~~

                1 Reply Last reply Reply Quote 0
                • P
                  pzudematrick last edited by

                  Hab gerade entdeckt das in der Konfiguration der Wert erkannt wird. Also ist das Problem nur das er nicht angezeigt wird. An was kann das liegen?
                  8569_bildschirmfoto_2018-08-29_um_17.04.55.png

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

                    Leider kann ich deinen Screenshot nicht erkennen.

                    Steht da bool ???

                    da muss number stehen.

                    Ein Intervall von 100 Millisekunden ist auch ziemlich ambitioniert

                    Gruß

                    Rainer

                    1 Reply Last reply Reply Quote 0
                    • K
                      Karl_999 last edited by

                      @pzudematrick:

                      An was kann das liegen? `
                      Zum einen ist wohl hinter dem ":" noch ein Zeilenumbruch.

                      Daher würde ich erst einmal nur nach der Zahl parsen (es gibt keine zweite):

                      (\d+.\d+)
                      

                      Das wird aber keine negativen Zahlen zurückgeben.

                      Du kannst übrigen unter https://regex101.com/ selbst ganz einfach reguläre Ausdrücke testen.

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

                        @Karl_999:

                        Zum einen ist wohl hinter dem ":" noch ein Zeilenumbruch. `
                        Korrekt, steht auch im Regex, der ja auch das korrekte Ergebnis liefert.

                        @Karl_999:

                        (\d+.\d+) `
                        Dieser Regex war auch meine erste Lösung, aber sollte aus irgendeinem Grund einmal ein Ganzzahl ohne dezimaltrenner erscheinen führt das zu einem Fehler.

                        Gruß

                        Rainer

                        1 Reply Last reply Reply Quote 0
                        • K
                          Karl_999 last edited by

                          @Homoran:

                          Korrekt, steht auch im Regex, der ja auch das korrekte Ergebnis liefert. `
                          Das habe ich beim Überfliegen nicht gesehen gehabt. Da hast du natürlich recht.

                          @Homoran:

                          Karl_999 hat geschrieben: ↑

                          29.08.2018, 19:31

                           (\d+.\d+)
                          

                          Dieser Regex war auch meine erste Lösung, aber sollte aus irgendeinem Grund einmal ein Ganzzahl ohne dezimaltrenner erscheinen führt das zu einem Fehler. `
                          Das stimmt - zumindest nach https://regex101.com/r/4dNX3N/1 - nicht

                          Aber für den Fall kann man es auch so schreiben:

                          (\d+.?\d+)
                          

                          Und um auch negative negative Zahlen sauber zu parsen gibt es

                          (-?\d+.?\d+)
                          

                          Aber immer noch unter der Voraussetzung, dass in der Seite nur eine Zahl auftaucht.

                          1 Reply Last reply Reply Quote 0
                          • P
                            pzudematrick last edited by

                            Als aller erstes schon einmal danke für die Antworten und Hilfestellungen.

                            Leider immer noch gleiches Problem mir wird der Wert bei Objekte nicht angezeigt.

                            Im Adapter in den Einstellungen jedoch schon.

                            Habe noch einmal Bilder angehängt.

                            Mit freundlichen grüßen 😉 8569_bildschirmfoto_2018-08-29_um_21.41.49.png 8569_bildschirmfoto_2018-08-29_um_21.41.34.png

                            1 Reply Last reply Reply Quote 0
                            • P
                              pzudematrick last edited by

                              Habe Folgenden Code Verwendet:````
                              (-?\d+.?\d+)

                              1 Reply Last reply Reply Quote 0
                              • P
                                pzudematrick last edited by

                                Muss mich entschuldigen es funktioniert jetzt 😉

                                Meine nächste Frage wie bekomme ich es hin das Verschiedene Werte in verschiedenen Zeilen ausgelesen werden können?

                                Also in diesem Webserver sollen in Zukunft mehrer Werte stehen?

                                Danke im Voraus 😉

                                1 Reply Last reply Reply Quote 0
                                • K
                                  Karl_999 last edited by

                                  @pzudematrick:

                                  Meine nächste Frage wie bekomme ich es hin das Verschiedene Werte in verschiedenen Zeilen ausgelesen werden können?

                                  Also in diesem Webserver sollen in Zukunft mehrer Werte stehen? `
                                  Ich gehe davon aus, dass die Werte in einer Datei stehen.

                                  1. Sie müssen maschinell eindeutig identifizierbar sein. Also sollte eine eindeutige Identifikation zum Wert existieren. Das könnten z.B. "Aktuelle Temperatur", "Temperatur Pool" sein

                                  2. Die Parserausdrücke müssen darauf angepasst werden. Mein Ansatz reicht dann nicht mehr. Dann ist der von Hormoran beschriebene Weg passend. Er muss noch um den Namen ergänzt werden:

                                  Aktuelle Temperatur:\n([^\n]+)
                                  Pooltemperatur: :\n([^\n]+)
                                  

                                  Natürlich einzeln für jeden Wert

                                  1 Reply Last reply Reply Quote 0
                                  • P
                                    pzudematrick last edited by

                                    Die Daten stehen in einer HTML Seite, welche vom Arduino ständig Aktuell gehalten wird.

                                    Dort steht dann: Temperatur: 5.00

                                    Luftfeuchtigkeit: 51

                                    Feuchtigkeit: 12

                                    Diese Werte sollen in iO Broker genutzt werden können um Alarm zu schlagen wenn die Feuchtigkeit zu hoch ist oder Temperatur zu niedrig etc.. wie ich die unterschiedliche Werte in iO Broker bekomme ist noch mein Problem. Momentan steht nur eine Zahl dort soweit Funktioniert das auch aber wie geht es weiter wenn mehr darin steht?

                                    Gesendet von iPhone mit Tapatalk

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

                                      @pzudematrick:

                                      Also in diesem Webserver sollen in Zukunft mehrer Werte stehen? `

                                      @pzudematrick:

                                      Diese Werte sollen in iO Broker genutzt werden `
                                      Also nicht das, was du uns zur Verfügung gestellt hast?

                                      Dann stimmt nämlich nicht mehr was Karl postete
                                      @Karl_999:

                                      Daher würde ich erst einmal nur nach der Zahl parsen (es gibt keine zweite😞 `

                                      @pzudematrick:

                                      wie geht es weiter wenn mehr darin steht? `

                                      Dann nimmst du den Quelltext der Website, gibst ihn bei regex101.com ein und testest.

                                      Oder du wartest bis du die Website wirklich fertig hast und fragst dann nochmal.

                                      Gruß

                                      Rainer

                                      1 Reply Last reply Reply Quote 0
                                      • P
                                        pzudematrick last edited by

                                        Alles klar, werde heute weitere Werte integrieren und dir dann schreiben.

                                        Vielen Herzlichen Dank nochmals [emoji847]

                                        Gesendet von iPhone mit Tapatalk

                                        1 Reply Last reply Reply Quote 0
                                        • P
                                          pzudematrick last edited by

                                          So hier meine Fertige HTML Datei. Werter werden wie gesagt ständig vom Arduino erneuert der Rest bleibt alles wie es ist.

                                          
                                          Aktuelle Temperatur:
                                          24.60
                                           (Crad)
                                          
                                          Aktuelle Luftfeuchtigkeit:
                                          57.00
                                          %
                                          
                                          Aktuelle Helligkeit:
                                          24
                                          Aktuelle Bodenfeuchtigkeit: 0
                                          
                                          

                                          Jetzt fehlen lediglich die Regex Codes?

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

                                            Ist das wirklich fertig?

                                            fehlen da nicht noch 4 Zeilenumbrüche?

                                            dann nimmst du

                                            :\n([^\n,<]+)
                                            

                                            für die drei Werte musst du je eine Regel setzen, bei der du dann die NUM jeweils auf 0,1 oder 2 setzst.

                                            Gruß

                                            Rainer

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

                                            Support us

                                            ioBroker
                                            Community Adapters
                                            Donate

                                            894
                                            Online

                                            31.9k
                                            Users

                                            80.2k
                                            Topics

                                            1.3m
                                            Posts

                                            4
                                            25
                                            4555
                                            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