Hydrologische Daten abfragen für Wassserstand

Einklappen
X
 
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge
  • daintree
    Smart Home'r
    • 30.08.2015
    • 34

    #1

    Hydrologische Daten abfragen für Wassserstand

    Hallo zusammen

    Folgendes wollte ich implementieren
    https://www.loxone.com/dede/kb/alarm...chwasserstand/

    Auslesen möchte ich folgende Daten:
    https://www.hydrodaten.admin.ch/de/2088.html

    Da im Quelltext nicht wirklich eindeutig etwas vorhanden ist, mit dem ich den gewünschten Wert auslesen kann habe ich mir eine kleines PHP Script geschrieben der nur diese benötigte Info ausliest. Dieses PHP Script funktioniert auch und läuft bei mir auf einem kleinen Webserver

    <?php
    // Einlesen der gesamten Seite in ein Array
    $lines = file ("https://www.hydrodaten.admin.ch/de/2088.html");
    for ($i = 762; $i <= 762; $i++) {
    $bereinigt = strip_tags($lines[$i],"");
    echo $bereinigt."
    \n";
    }
    ?>

    Im virtuellen HTTP Eingang hinterlege ich nun die URL zu diesem File. Leider erhalte ich vom Baustein aber eine Fehlermeldung, dass keine Daten abgefragt werden können

    Klicke auf die Grafik für eine vergrößerte Ansicht  Name: wasserstand.jpg Ansichten: 0 Größe: 120,0 KB ID: 263456

    Frage ich das Scritp jedoch direkt im Browser ab, werden die gewünschten Daten geliefert. Was wiederum bedeutet dass das Script funktioniert.

    Schreibe ich einen Statischen Wert ins PHP, kann dieser vom Baustein jedoch ausgelesen werden und wird auch in der Visualisierung angezeigt. Es scheint also, dass der virtuelle HTTP Eingang mit dem PHP Code nichts anfangen kann.

    Jemand eine Idee warum das so ist?

    Gruss, Daintree
  • inswe
    LoxBus Spammer
    • 19.06.2016
    • 230

    #2
    Schau dir mal den Quelltext an, wenn du dein PHP-Script im Browser "öffnest". Sind da ungewollte Umbrüche oder nicht sichtbare Zeichen drin, die Loxone ggf. nicht verarbeiten kann?

    Kommentar

    • daintree
      Smart Home'r
      • 30.08.2015
      • 34

      #3
      Danke für den Hinweis. Mit der Trim Funktion konnte ich nun sämtliche Leerzeichen entfernen.

      <?php
      // Einlesen der gesamten Seite in ein Array
      $lines = file ("https://www.hydrodaten.admin.ch/de/2088.html");
      for ($i = 762; $i <= 762; $i++) {
      $bereinigt = strip_tags($lines[$i],"");
      echo trim($bereinigt);
      }
      ?>

      Leider immer noch das gleiche Phänomen. Ich verstehe ich nicht wieso Loxone mit dem PHP Code nichts anfangen kann. Output für Loxone ist ja dennoch html. Oder mache ich einen Denkfehler?

      Kommentar

      • romildo
        Lebende Foren Legende
        • 25.08.2015
        • 5144

        #4
        daintree
        Hallo,
        Vermutlich ist an der URL oder der Befehlserkennung etwas nicht exakt eingetragen.

        Es ginge aber auch direkt von der Webseite.
        Ich habe es mal bei mir auf dem Testserver getestet.

        Klicke auf die Grafik für eine vergrößerte Ansicht  Name: HTTP_WasserstandSarnersee.png Ansichten: 20 Größe: 81,8 KB ID: 263470
        Nachtrag #4.1.2 andere Befehlserkennung
        Klicke auf die Grafik für eine vergrößerte Ansicht  Name: HTTP_WasserstandSarnersee1.png Ansichten: 0 Größe: 75,4 KB ID: 263479
        Zuletzt geändert von romildo; 02.09.2020, 10:39.
        lg Romildo

        Kommentar


        • daintree
          daintree kommentierte
          Kommentar bearbeiten
          Dann ist mir die direktet Lösung lieber als mein Script. Habe es wie von dir vorgeschlagen konfiguriert und es funktioniert nun einwandfrei. Vielen Dank dafür!

          LG Daintree

        • romildo
          romildo kommentierte
          Kommentar bearbeiten
          Mir gefällt die Suche nach der Formatierung aber nicht wirklich.
          Es könnte sein, dass irgendwann z.B. mal "text-right" an stelle "text-center" steht.
          Daher würde ich text-center vergessen und nur nach "> weitersuchen.
          Also z.B.
          nicht Befehlserkennung: >Letzter Messwert<\itext-center">\i\v
          sondern Befehlserkennung: >Letzter Messwert<"i>\i\v
      • inswe
        LoxBus Spammer
        • 19.06.2016
        • 230

        #5
        Loxone, so wie jeder Browser bekommt nichts davon mit, ob der Ursprung aus PHP, ASP oder sonst was ist. Hinten raus kommt immer HTML (mal von JavaScript o.Ä. abgesehen).
        Wie deine Zahlen zustande kommen, die du im Browser siehst, ist also erstmal egal.

        Wenn die Variante

        Code:
        <?php
        echo "12345;"
        ?>
        funktioniert, sollte auch die Ausgabe aus einer "Berechnung" oder aus einem Parsing funktionieren. Deshalb meinte Vermutung, dass da noch irgendeine Formatierung (Umbrüche, Leerzeichen) oder merkwürdige Sonderzeichen im Quelltext stehen, die du im Browser erstmal nicht siehst.

        Kommentar


        • daintree
          daintree kommentierte
          Kommentar bearbeiten
          Werde wie oben geschrieben wieder auf die direkte Lösung umschwenken.
          Dein Beispiel habe ich kurz getestet. Es funktioniert.

          Da ich nun eine Lösung habe, bin ich nicht mehr auf mein Script angewiesen. Habe es aber nochmals angeschaut und bemerkt das bei mir noch eine Zeile eingefügt ist. Es dürfte somit mit 99% Sicherheit an dieser liegen.

          Danke für deine Unterstützung.

          LG Daintree
      Lädt...