Ankündigung

Einklappen
Keine Ankündigung bisher.

Webseite parsen - Wie geht das mit Edomi?

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

    Webseite parsen - Wie geht das mit Edomi?

    Moin zusammen,

    ich entwickel mich langsam zu einem eingefleischten Edomi Fan

    Aber eins hab ich noch net hinbekommen: Wie parse ich eine Webseite mit Edomi?
    In der Konfig unter Http/Udp/Shell eintragen ist ja schön und gut, aber dort kann ich ja nicht angeben, was geparst werden soll.

    Hat da jemand nen heißen Tipp?

    Viele Grüße
    Nils

    #2
    Hi,

    LBS erstellen und dort kannst du deine Seite parsen.

    Gruß

    Kommentar


      #3
      Ich hatte es befürchtet. Ok, da bleibt dann nichts, muss ich mich mit PHP auseinander setzen

      Kommentar


        #4
        Sieh Dir mal den 19000210 "Nibe Uplink" von basaltnischl an, da wird genau das gemacht.

        Kommentar


          #5
          Ich kann dir aber nachher auch mal einen schicken. Da frage ich ein Stiebel Eltron ISG an meiner Wärmepumpe ab.

          gruß

          Kommentar


            #6
            Das wäre echt super, dann brauch ich das Rad nicht gleich neu erfinden

            Kommentar


              #7
              Schick mir mal deine Email per pn

              Kommentar


                #8
                benji
                An deinem ISG LBS wäre ich auch interessiert, noch mache ich das über CAN und dem Wiregate aber weiß wie lange der noch läuft...

                Kommentar


                  #9
                  Hi,

                  der Baustein ist noch nicht ganz fertig. Zudem ist er ausgelegt auf ein ISG an einer Luftwärme WPL. Wenn du eine WPF hast müsste man noch paar werte anpassen. Könnte dir ihn zukommen lassen wenn du mir deine Email schickst. Dann kannst du wenigstens mal reinschauen.

                  Gruß

                  Kommentar


                    #10
                    Guten Abend,
                    im Gira HS kann man ja Webseiten auswerten.

                    Hier in Edomi habe ich gelernt heißt das wohl (parsen/auslesen).
                    Also muss man, wenn ich richtig alles gelesen habe, für das
                    auslesen einer Webseite einen LBS (Logikbaustein) erstellen.
                    Die vorhandenen LBS habe ich mal versucht zu lesen, fällt
                    mir aber noch schwer.

                    Für meinen Ort hat ein, ich sach mal so, Wetterprofi eine tolle
                    Wetterstation aufgebaut:
                    http://www.wetterstation-hannover.de/html/current.html

                    Diese Auswertung für den LBS erfolgt ja dann im Logikbaustein im ‚
                    ###[EXEX]### Teil.

                    Nun mein Problem: Könnte mir jemand für z.B. Lufttemperatur aktuell
                    18,6°C den Einstig geben? Muss ich die Internetseite mit z.B. Quellcode
                    die Einträge suchen und über PHP in den LSB übergeben?

                    Mit der Hilfe:
                    http://www.it-academy.cc/article/722...+auslesen.html
                    komme ich leider auch nicht weiter!!!
                    Wäre suppi nett für die Hilfe, ggf. kann ich dann einmal eine Hilfe für weitere „Anfänger“
                    Ins wiki stellen (wenn das nicht zu trivial ist!!)
                    Vielen DANK vorab!!!
                    Gruß Marcus
                    Wetterstation.jpg

                    Quellcode.jpg

                    Kommentar


                      #11
                      Hi,

                      quick & dirty könntest du es mit folgendem Code machen. Natürlich dann für einen LBS ein wenig anpassen, schmeiß dir den Code mal auf ein server und spiel ein wenig damit rum auf der Seite. Anschließend dann auf Ausgänge im LBS anpassen.


                      Code:
                      <?
                      
                      $url1 = "http://www.wetterstation-hannover.de/html/current.html";
                      
                      
                      $Ausgabe1 = file_get_contents("$url1");
                      
                      $pos1 = strpos($Ausgabe1, '<td align="center" colspan="3" width="19%"><b><font size="1">') + 101;
                      $pos2 = strpos($Ausgabe1, '</font>', $pos1) - $pos1;
                      $data1 = substr($Ausgabe1, $pos1, $pos2);
                      if ($data1 =="x x x") { $data1="0"; }
                      echo $data1;
                      
                       ?>
                      Gruß Benjamin

                      Edit: du solltest dir auch die Genehmigung einnehmen um die Daten der Seite auszulesen. Es ist nicht unbedingt auf jeder Seite erlaubt bzw. gerne gesehen.
                      Zuletzt geändert von benji; 23.05.2016, 21:12.

                      Kommentar


                        #12
                        Regulaere Ausdruecke lernen Du musst!

                        Da findet man viel im Netz zu, das hier waere zB ein Einstieg:
                        http://webcheatsheet.com/php/regular_expressions.php

                        Mein Rat:
                        a-tens) Garnicht erst mit strpos und sowas rumdudeln
                        b-tens) Runterladen der Webseiten (und daher auch das Parsen) immer nur im EXEC-Teil machen (zumindest wenn es dann ein LBS werden soll)
                        c-tens) Versuch Dich in regulaere Ausdruecke einzulesen, wenn das einmal begriffen wurde ist der Rest nur noch Kinderkram

                        Das hier zB mag auf den ersten Blick kompliziert ausschauen, aber wenn man sich etwas Zeit nimmt und dann versteht das Prinzip zu begreifen dauert es eigentlich nur kurz und der Groschen ist gefallen (wichtig ist eigentlich nur der Teil zwischen den beiden "/" im preg_match):
                        PHP-Code:
                        <?php
                        $src
                        =file_get_contents("http://www.wetterstation-hannover.de/html/current.html");
                        if (
                        preg_match("/Lufttemperatur \(2m\).*?aktuell.*?([0-9\.,]+.C)/s",$src,$matches)) {
                          print 
                        $matches[1];
                        }
                        ?>
                        (das ist genau genommen unsauber programmiert, liegt aber daran, dass die Webseite ein falsch kodiertes °-Symbol zurueckliefert)

                        gruesse :: Michael

                        Kommentar


                          #13
                          Geeeeenau

                          Ursprünglich wollte ich etwas in dieser Art sogar "nativ" in EDOMI einbauen (Webseite auswerten) - allerdings hätte der Anwender sich dann mit RegEx-Zeugs beschäftigen müssen, denn auf einen "grafischen Editor" hatte ich irgendwie keine Lust...

                          Aber Dein Code-Beispiel ist eine wunderbare Grundlage für alle Webseiten-Auswert-LBS der Zukunft! Ich sehe schon das Download-Portal überquellen
                          EDOMI - Intelligente Steuerung und Visualisierung KNX-basierter Elektro-Installationen (http://www.edomi.de)

                          Kommentar


                            #14
                            Das waere aber dennoch nett...
                            Quasi "nach welcher RegExp suchen?" in dem einen Feld, die "Nummer des Matches" in dem anderen Feld. Klar, RegExp muss man dazu schon verstehen, aber man taete sich den recht speziellen LBS sparen - fuer den man ja auch RegExp verstanden haben muss

                            Kommentar


                              #15
                              Klar, aber Du kennst das ja: Spätestens übermorgen heißt es dann "Wie kann ich mehrere(!) Werte aus einer Webseite auslesen?!" Und und und...

                              Aber wie wäre es mit einem LBS, der einigermaßen universell arbeitet:
                              E1 = URL
                              E2 = RegEx-String
                              ...

                              EDOMI - Intelligente Steuerung und Visualisierung KNX-basierter Elektro-Installationen (http://www.edomi.de)

                              Kommentar

                              Lädt...
                              X