Ankündigung

Einklappen
Keine Ankündigung bisher.

Windgeschwindigkeit von m/s in Beaufort umrechnen

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

    Windgeschwindigkeit von m/s in Beaufort umrechnen

    Guten Tag,
    gibt es irgendwo einen Makro, der die Windgeschwindigkeiten von m/s aus der Wetterstation in die Beaufort Skala umrechnet?
    Mir ist in der Visu eine Anzeige Windstärke X lieber als y m/s, das ist imho besser verständlich.
    Gibt es Beispiele?
    never fummel a running system...

    #2
    Ist das nicht einfach
    wenn x>0.2 dann 1
    wenn x>1.5 dann 2
    wenn x>3.3 dann 3
    Usw.?

    Kommentar


      #3
      Moin,
      ich mache es so als Nichtprogrammierer, vielleicht gibt es aber auch bessere Lösungen.

      Code:
      //****************************
      //Beaufort
      //****************************
      uBft=$0$
      uWind_ms=("Windgeschwindigkeit-7/5/0")
      if change (uWind_ms) and uWind_ms <0.3f16 then {
          uBft=$0 = Windstille$
      }endif
      if change (uWind_ms) and uWind_ms >0.29f16 and uWind_ms <1.6f16 then {
          uBft=$1 = Schwacher Wind$
      }endif
      if change (uWind_ms) and uWind_ms >1.59f16 and uWind_ms<3.4f16 then {
          uBft=$2 = Schwacher Wind$
      }endif
      if change (uWind_ms) and uWind_ms >3.39f16 and uWind_ms <5.5f16 then {
          uBft=$3 = Schwacher Wind$
      }endif
      if change (uWind_ms) and uWind_ms >5.49f16 and uWind_ms <8.0f16 then {
          uBft=$4 = Mäßiger Wind$
      }endif
      if change (uWind_ms) and uWind_ms >7.99f16 and uWind_ms <10.8f16 then {
          uBft=$5 = Frischer Wind$
      }endif
      if change (uWind_ms) and uWind_ms >10.79f16 and uWind_ms <13.9f16 then {
          uBft=$6 = Starker Wind$
      }endif
      if change (uWind_ms) and uWind_ms >13.89f16 and uWind_ms <17.2f16 then {
          uBft=$7 = Steifer Wind$
      }endif
      if change (uWind_ms) and uWind_ms >17.19f16 and uWind_ms <20.8f16 then {
          uBft=$8 = Stürmischer Wind$
      }endif
      if change (uWind_ms) and uWind_ms >20.79f16 and uWind_ms <24.5f16 then {
          uBft=$9 = Sturm$
      }endif
      if change (uWind_ms) and uWind_ms >24.49f16 and uWind_ms <28.5f16 then {
          uBft=$10= Schwerer Sturm$
      }endif
      if change (uWind_ms) and uWind_ms >28.49f16 and uWind_ms <32.7f16 then {
          uBft=$11= Orkanartiger Sturm$
      }endif
      if change (uWind_ms) and uWind_ms >32.69f16  then {
          uBft=$20= Orkan$
      }endif
      //****************************​
      Meine Installation: VM Debian Buster SH NG 1.8.1, SmartVISU 3.0, KNX, DMX, 1-wire, Fortigate 30E IPS, VMware vSphere 6.7

      Kommentar


        #4
        Hier ein Screenshot dazu

        Screenshot 2024-09-06 100245.png
        Angehängte Dateien
        Meine Installation: VM Debian Buster SH NG 1.8.1, SmartVISU 3.0, KNX, DMX, 1-wire, Fortigate 30E IPS, VMware vSphere 6.7

        Kommentar


          #5
          Code:
          change (uWind_ms) and
          braucht es nicht, da bei Änderung der Variablen sowieso neu ausgewertet wird. Das spart ein bisschen Objekte, macht aber sonst keinen* Unterschied.

          * Der Unterschied ist, dass uBft auch dann neu zugewiesen wird, wenn der resultierende bft-Wert gleich bleibt. Wiederrum davon abhängige Objekte werden aber nicht aktualisiert, weil der Wert ja gleich geblieben ist.

          Kommentar


            #6
            ich hole das nochmal nach oben, die Umrechnung klappt gut, vielen Dank dafür.
            jetzt würde ich gerne noch das Tagesmaximum mit Uhrzeit in einer Graphik darstellen, die dann die letzten 90 Tage enthält.
            Das maximum und die Uhrzeit sind kein Problem zu speichern, aber wie bekomme ich den Maximalwert dann um 0:00 Uhr immer in eine Graphik?
            never fummel a running system...

            Kommentar


              #7
              Du kannst in der Visu ein Timechart anlegen, mit der Logik verknüpfen und den Logikknoten mit einem entsprechenden Timer versehen, der immer um 0 Uhr den aktellen Maximalwert in einen Timebuffer schreibt. (Alternativ natürlich auch Experte).

              Das zusätzliche Speichern der Uhrzeit für das Maximum ist da schon schwerer, weil ein Timebuffer immer die aktuelle Uhrzeit verwendet. Ein Workaround wäre, die Uhrzeit in Minuten oder Sekunden ebenfalls im Timebuffer abzuspeichern und als zweite Achse im Diagramm anzuzeigen. Dann müsstest du aber ggf selbst ausrechnen, wie spät es genau war (oder das mit Webinput und Button/Weboutput wieder in der Visu als "Rechner" realisieren.

              image.png
              image.png​​

              Kommentar

              Lädt...
              X