Ankündigung

Einklappen
Keine Ankündigung bisher.

Makro "Wasserpegel von deutschen Flüssen, Gewässern und Meeren"

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

    Makro "Wasserpegel von deutschen Flüssen, Gewässern und Meeren"

    Hallo zusammen,

    das Makro holt sich in regelmäßigen Abständen bei www.pegelonline.wsv.de über XML in ISO-8859-1 Textcodierung den Pegel der im Makroaufruf definierten Pegeluhr.

    So kann z.B. in hochwassergefährdeten Gebieten eine Visu Warnung integriert werden.

    Vermutlich ist dies Makro nicht nur für Kölner und Düsseldorfer mit "starkem Bezug" zum Rhein interessant.

    Es ist keine Anmeldung bei Pegelonline erforderlich.

    Die Auflistung aller Pegeluhren mit Angabe der jeweiligen ID ist hier zu finden: PEGELONLINE


    Der Aufruf des Makro erfolgt so:

    Pegelstand(Gewaesser, ID_Pegeluhr, PegelstandStartbedingung)

    "Gewaesser" kann ein beliebiger Name sein, z.B. MeinFluss, Rhein oder Bodensee
    "ID_Pegeluhr" ist die ID der Meßstelle, welche unter dem o.g. Link zu finden ist
    "PegelstandStartbedingung" gibt den Zyklus der Abfrage vor, also z.B. cycle(60,0)


    Das Makro liefert folgende Daten zurück:

    Pegelstand_Gewaesser_Messzeitpunkt_Datum = $$
    -> das Datum der Abfrage (JJJJ-MM-TT)

    Pegelstand_Gewaesser_Messzeitpunkt_Uhrzeit = $$
    -> die Uhrzeit der Abfrage (ganzjährig in deutscher Winterzeit)

    Pegelstand_Gewaesser_Pegel = 0.0f16
    -> Pegelstand der gewählten Pegeluhr in m

    Pegelstand_Gewaesser_Trend = 0u16
    -> der Trend der gewählten Pegeluhr (1=steigend, -1=fallend, 0=konstand -999=kein Wert)

    Pegelstand_Gewaesser_PNP = 0.0f16
    -> die Höhe der Pegeluhr in m über Normalnull (also der Nullpunkt der Pegeluhr)

    Pegelstand_Gewaesser_PNP_Datum = $$
    -> Datum an dem der Nullpunkt der Pegeluhr gemessen wurde

    Pegelstand_Gewaesser_NNW = 0.0f16
    -> der niedrigst bekannte Wasserstand

    Pegelstand_Gewaesser_NNW_Datum = $$
    -> das Datum des niedrigst bekannten Wasserstand

    Pegelstand_Gewaesser_HHW = 0.0f16
    -> der höchst bekannte Wasserstand

    Pegelstand_Gewaesser_HHW_Datum = $$
    -> das Datum des höchst bekannten Wasserstand


    Um den Differenzpegel zum eigenen Grundstück zu ermitteln, ist einfach die folgende Formel zu nutzen:

    Differenzpegel = Höhe Grundstück (in m ü.NN) - Pegelstand_Gewaesser_Pegel - Pegelstand_Gewaesser_PNP

    Bei einem Differenzpegel von 0 gibt es also nasse Füße im Vorgarten.

    @Steffi, Du kannst das Makro gerne in die Makrosammlung übernehmen.

    Viele Grüße

    Michael


    Noch ein wichtiger Nachtrag:
    Damit dieser Service von Pegelonline auch so dauerhaft bestehen bleibt, nutzt maßvolle Zykluszeiten und nervt den Pegelonline Server nicht mit Abfragen im Sekunden-Takt. Mein Empfehlung hier: 60 Minuten Abfragetakt
    Angehängte Dateien

    #2
    Zitat von Jambala Beitrag anzeigen
    Hallo zusammen,
    das Makro holt sich in regelmäßigen Abständen bei www.pegelonline.de über XML in ISO-8859-1 Textcodierung den Pegel
    @Steffi, Du kannst das Makro gerne in die Makrosammlung übernehmen.
    Gut durchdacht und gemacht
    offizielles Supportforum für den Enertex® EibPC: https://knx-user-forum.de/eibpc/
    Enertex Produkte kaufen

    Kommentar


      #3
      Vielen Dank für die Blumen Michael ...

      Hier direkt noch ein Update. Ich habe die Datumscodierung noch auf TT-MM-JJJJ geändert.

      Last but not least, noch eine Vorlage für die Visu (die Charts im Screenshot sind natürlich noch nicht gefüllt):

      [highlight=epc]
      [WebServer]
      page(PageID_WetterCharts)[$$,$Wetter Charts$]
      header(0)
      footer(0)
      design $black$
      line $Rheinpegel$
      pbutton(ID_Wetter_Rheinpegel)[INFO]$Pegel m / m ü.NN$ \\
      pbutton(ID_Wetter_Rheinpegel_Min)[INFO]$Pegelminimum$ \\
      pbutton(ID_Wetter_Rheinpegel_Max)[INFO]$Pegelmaximum$ \\
      pbutton(ID_Wetter_Rheinpegeldifferenz)[INFO]$Pegelreserve$
      mpchart(ID_Wetter_Rheinpegel_Chart)[SINGLE,SXY]($Pegel$,LINE) \\
      mpchart(ID_Wetter_RheinpegelNN_Chart)[SINGLE,SXY]($Pegel ü.NN$,LINE,$ADB28$,LINE)

      [EibPC]
      // Webserver: Wetter Charts
      ID_Wetter_Rheinpegel = 1
      ID_Wetter_Rheinpegel_Min = 2
      ID_Wetter_Rheinpegel_Max = 3
      ID_Wetter_Rheinpegeldifferenz = 4
      ID_Wetter_Rheinpegel_Chart = 5
      ID_Wetter_RheinpegelNN_Chart = 6

      // Rheinpegel
      Pegelstand_Rhein_Pegel_Button = convert(Pegelstand_Rhein_Pegel, $$) + $ / $ + convert(Pegelstand_Rhein_Pegel + Pegelstand_Rhein_PNP, $$) + $ m$
      Pegelstand_Rhein_Pegel_MinNN = convert(Pegelstand_Rhein_NNW + Pegelstand_Rhein_PNP, $$)
      Pegelstand_Rhein_Pegel_Min_Button = convert(Pegelstand_Rhein_NNW, $$) + $ / $ + Pegelstand_Rhein_Pegel_MinNN + $ m$ + $<br>$ + Pegelstand_Rhein_NNW_Datum
      Pegelstand_Rhein_Pegel_MaxNN = convert(Pegelstand_Rhein_HHW + Pegelstand_Rhein_PNP, $$)
      Pegelstand_Rhein_Pegel_Max_Button = convert(Pegelstand_Rhein_HHW, $$) + $ / $ + Pegelstand_Rhein_Pegel_MaxNN + $ m$ + $<br>$ + Pegelstand_Rhein_HHW_Datum
      Pegelstand_Rhein_Pegel_Differenzpegel_Button = 37.42f16 - Pegelstand_Rhein_Pegel - Pegelstand_Rhein_PNP
      Pegelstand_Rhein_Pegeldifferenz_Button = convert(Pegelstand_Rhein_Pegel_Differenzpegel_Butt on, $$) + $ m$
      if stime(0) then \\
      pdisplay(ID_Wetter_Rheinpegel,Pegelstand_Rhein_Peg el_Button,INFO,INACTIVE,GREY,PageID_WetterCharts) \\
      endif
      if stime(0) then \\
      pdisplay(ID_Wetter_Rheinpegel_Min,Pegelstand_Rhein _Pegel_Min_Button,INFO,INACTIVE,GREY,PageID_Wetter Charts) \\
      endif
      if stime(0) then \\
      pdisplay(ID_Wetter_Rheinpegel_Max,Pegelstand_Rhein _Pegel_Max_Button,INFO,INACTIVE,GREY,PageID_Wetter Charts) \\
      endif
      if stime(0) then \\
      pdisplay(ID_Wetter_Rheinpegeldifferenz,Pegelstand_ Rhein_Pegeldifferenz_Button,INFO,INACTIVE,GREY,Pag eID_WetterCharts) \\
      endif

      // Rheinpegel Charts alle 30 Minuten mit Daten füllen
      Pegelstand_Rhein_Pegel_Chart = Pegelstand_Rhein_Pegel
      Pegelstand_Rhein_PegelNN_Chart = Pegelstand_Rhein_Pegel + Pegelstand_Rhein_PNP
      Pegelstand_Rhein_Grundstueck = 37.42f16

      if mtime(00,00) or mtime(30,00) then \\
      mpchart(ID_Wetter_Rheinpegel_Chart,WebZeit,Pegelst and_Rhein_Pegel_Chart,0,PageID_WetterCharts); \\
      mpchart(ID_Wetter_RheinpegelNN_Chart,WebZeit,Pegel stand_Rhein_PegelNN_Chart,0,PageID_WetterCharts); \\
      mpchart(ID_Wetter_RheinpegelNN_Chart,WebZeit,Pegel stand_Rhein_Grundstueck,1,PageID_WetterCharts) \\
      endif
      [/highlight]

      Viele Grüße

      Michael
      Angehängte Dateien

      Kommentar


        #4
        Hoi

        Super Sache.

        WebZeit, was ist das genau?

        und die Website, heisst die nicht pegelonline.wsv.de
        Grüsse Bodo
        Fragen gehören ins Forum, und nicht in mein Postfach;
        EibPC-Fan; Wiregate-Fan; Timberwolf-Fan mit 30x 1-Wire Sensoren;

        Kommentar


          #5
          Webzeit ist die Umrechnung der Normalzeit auf ein für die Charts taugliches Zahlenformat:

          WebZeit = convert(convert(hour(),0f32) + convert(minute(),0f32)/60f32,0f16)

          Ja, die Website heißt korrekt pegelonline.wsv.de

          Viele Grüße

          Michael

          Kommentar


            #6
            So hier noch einmal ein richtiges Chart im Anhang.

            Michael (Enertegus), falls Euer Grafik Designer noch aktiv ist, wäre ein Pegel Piktogramm auch noch eine schicke Sache. Ich habe einmal ein Beispiel angehangen.
            Angehängte Dateien

            Kommentar

            Lädt...
            X