Templates

From meteoplug
Revision as of 23:10, 5 February 2014 by FuzzyBot (Talk | contribs) (Updating to match new version of source page)

Jump to: navigation, search
Other languages:
Deutsch • ‎English

Meteobridge stellt einen sehr flexiblen Ersetzungsmechanismus zur Verfügung, mit dem definierte Variable durch konkrete Sensorwerte ersetzt werden. Dies ermöglich Meteobridge in beliebige Zeichenketten Variable "einzuschmuggeln", seien es E-Mail, HTML-Seiten, Alarmbedingungen, etc.

Die Variable werden in dem Moment, in dem die Zeichenkette an den Upload zum Zieldienst übergeben wird surch reale Werte ersetzte. Kann das Datenpaket nicht zugestellt werden, wird die Zustellung gegebenenfalls wiederholt, jedoch mit den bei der Erstbeauftragung eingesetzten Daten.

Jede Variable beginnt und endet mit einer eckigen Klammer "[" und "]". Die Variable in diesen Klammern zeigt die folgende Struktur:
Sensor-Selektor=Konverter.Dezimalstellen:Ersatzzeichenkette

"Konverter", "Dezimalstellen" und "Ersatzzeichenkette" kann weggelassen werden, "Sensor" und "Selektor" müssen angegeben werden. Während "Sensor" festlegt, um welchen Sensor es sich handelt und welcher Sensorwert verwendten werden soll, gibt "Selektor" an, welche Zeitperiode ausgewertet werden soll. Mit "Konverter" kann optional eine Umrechnung in andere Maßeinheiten realisiert werden. Die "Dezimalstellen"-Angabe bestimmt die numerische Auflösung der Daten und die "Ersatzzeichenkette" bestimmt den Wert, der ausgegeben wird, wenn kein Sensorwert für den definierten Zeitraum vorliegt.

Sensoren

Diese Sensoren sind in Meteobridge definiert:

  • th0temp: Außentemperatur in Grad Celsius
  • th0hum: Relative Außenluftfeuchte in Prozent
  • th0dew: Außentaupunkttemperatur in Grad Celsius
  • th0heatindex: Hitzeindex in Grad Celsius
  • thb0temp: Innentemperatur in Grad Celsius
  • thb0hum: Innenluftfeuchte in Prozent
  • thb0dew: Innentaupunkttemperatur in Grad Celsius
  • thb0press: Stationsluftdruck in hPa
  • thb0seapress: auf Meeresspiegelhöhe berechneter Luftdruck in hPa
  • wind0wind: ungemittelte Windgeschindigkeit in m/s
  • wind0avgwind: gemittelte Windgeschindigkeit in m/s
  • wind0dir: Windrichtung in Grad (0° ist Norden)
  • wind0chill: Windchill-Temperatur in Grad Celsius
  • rain0rate: Regenrate in mm/h
  • rain0total: gefallene Regenmenge in mm
  • uv0index: UV-Index
  • sol0rad: Solarstrahlung in W/m^2
  • sol0evo: Evapotranspiration in mm (nur für Davis Vantage verfügbar)

Wenn ein Sensor nicht existiert oder seine Daten älter als das maximal tolerierte Sensordatenalter sind, wird Meteohub keine Daten einsetzen und sofern definiert, stattdessen die Ersatzzeichenkette einsetzen. Falls keine Ersatzzeichenkette definiert ist, bleibt die Variable unersetzt als Zeichenkette stehen.

Einige Stationen unterstützen zusätzliche Temperatur/Feuchte-Sensoren. Meteobridge zählt diese als "th1temp", "th1hum", "th1dew", etc auf. Der Reiter "Live-Daten" zeigt neben den aktuellen Daten auch die Sensornummern dieser Zusatzsensoren. Wenn man über eine mit Bodenfeuchte- udn Blattfeuchte-Sensoren ausgestattete Davis Vantage verfügt, werden diese Sensoren ebenfalls als Temperatur/Feuchte-Sensoren geführt, allerdings ohne Berechnung eines Taupunktes. Die Bodenfeuchte-Sensoren weden als "th10temp", "th10hum", ..., "th13temp", "th13hum" und die Blattfeuchte-Sensoren als "th15temp", "th15hum", ..., "th18temp", "th18hum" geführt. Die "hum"-Werte repräsenstieren in diesem Fall nicht die relative Luftfeuchte, sondern Werte in "cbar" und "wet". Meteobridge erfindet für diese Spezialsensoren keine neuen Selektoren. Der generische Selektor "hum" dient dazu, auch die Werte in "cbar" und "wet" dieser Sensoren abzufragen.

Selektor

Den "Sensoren" folgt eine Selektorbezeichnung (durch ein "-" getrennt) mit der der auszuwertende Zeitraum oder Zeitpunkt angegeben wird. Die folgenden Selektoren sind definiert:

  • act: aktuelle Daten
  • hmin: Minimum der aktuellen Stunde
  • hmax: Maximum der aktuellen Stunde
  • dmin: Minimum von Heute
  • dmax: Maximum von Heute
  • ydmin: Minimum von Gestern
  • ydmax: Maximum von Gestern
  • mmin: Minimum dieses Monats
  • mmax: Maximum dieses Monats
  • ymin: Minimum dieses Jahres
  • ymax: Maximum dieses Jahres
  • amin: Minimum des gesamten Aufzeichnungszeitraumes
  • amax: Maximum des gesamten Aufzeichnungszeitraumes

Sensoren, die kumulierte Werte wie "rain0total" und "sol0evo" zeigen, sollen nur mit den folgenden Selektoren ausgewertet werden:

  • daysum oder sumday, ydaysum, monthsum, yearsum, allsum: selektiert die Summe an Inkremente für Heute, Gestern, diesen Monat, dieses Jahr, gesamten Aufzeichnungszeitraum. Beispiel: "rain0total-sumday" ist die heutige Regenmenge.

Wenn man an den Zeitstempeln der Min/Max-Werte interessiert ist, könnten diese Selektoren ineressant sein:

  • hmintime: Zeitstempel des Minimums der aktuellen Stunde
  • hmaxtime: Zeitstempel des Maximums der aktuellen Stunde
  • dmintime: Zeitstempel des Minimums von Heute
  • dmaxtime: Zeitstempel des Maximums von Heute
  • ydmintime: Zeitstempel des Minimums von Gestern
  • ydmaxtime: Zeitstempel des Maximums von Gestern
  • mmintime: Zeitstempel des Minimums dieses Monats
  • mmaxtime: Zeitstempel des Maximums dieses Monats
  • ymintime: Zeitstempel des Minimums dieses Jahres
  • ymaxtime: Zeitstempel des Maximums dieses Jahres
  • amintime: Zeitstempel des Minimums des gesamten Aufzeichnungszeitraumes
  • amaxtime: Zeitstempel des Maximums des gesamten Aufzeichnungszeitraumes
  • starttime: Zeitstempel des ersten aufgezeichneten Datensatzes

Die Zeitstempel sind im Format "JJJJMMTThhmmss". das Jahr "JJJJ" wird mit 4 Stellen, alle anderen Angabe (Monat "MM", Tag "TT", Stunde "hh", minute "mm", Sekunde "ss") werden mit 2 Stellen berichtet. Führende Nullen werden nicht unterdrückt.

Apart from selectors that use absolute, predefined time slots there are also selectors that look for a certain amount of time into the past.

  • val2, val5, val10, val15, val30, val60: selects the value the sensor has shown 2, 5, 10, 15, 30 or 60 minutes ago
  • max2, max5, max10, max15, max30, max60: selects the maximum value from the last 2, 5, 10, 15, 30 or 60 minutes
  • min2, min5, min10, min15, min30, min60: selects the minimum value from the last 2, 5, 10, 15, 30 or 60 minutes
  • avg2, avg5, avg10, avg15, avg30, avg60: selects average value from the last 2, 5, 10, 15, 30 or 60 minutes

For sensors delivering cumulated values like "rain0total" and "sol0evo" the following selectors are defined:

  • sum2, sum5, sum10, sum15, sum30, sum60, sum1h, sum3h, sum6h, sum12h, sum24h: selects summerized delta values from the last 2, 5, 10, 15, 30, 60 minutes or 1, 3, 6, 12, 24 hours. This is useful to get amount of total rain in a certain time frame: "rain0total-sum60" is rainfall im mm of last 60 minutes.

Konverter

Die Sensordaten werden als Voreinstellung in ISO Einheiten berichtet (°C, hPa, mm, m/s). Durch den Einsatz von Konvertern können die Einheiten auf non-ISO Einheiten umgerechnet werden. Definierte Konverter sind:

  • F wandelt die Temperature von Celsius in Fahrenheit um.
  • psi wandelt Luftdruck von hPa (entspricht auch mbar) in psi um.
  • mmHg wandelt Luftdruck von hPa in Millimeter Quecksilbersäule um.
  • inHg wandelt Luftdruck von hPa in Inch Quecksilbersäule um.
  • kmh wandelt Windgeschwindigkeit von m/s in Kilometer pro Stunde um.
  • mph wandelt Windgeschwindigkeit von m/s in Meilen pro Stunde um.
  • kn wandelt Windgeschwindigkeit von m/s in Knoten um.
  • bft wandelt Windgeschwindigkeit von m/s in die Beaufort-Skala um.
  • in wandelt der Regenmenge von mm in Inch um.
  • ft wandelt eine Höhe von Metern in Fuß (feet) um.
  • endir wandelt die Windrichtung in einen von 16 Englischen Richtungstexten um.
  • dedir wandelt die Windrichtung in einen von 16 Deutschen Richtungstexten um.

Wird eine unbekannte Konvertierung gewählt, findet keine Umrechnung statt un es erfolgt keine Fehlermeldung.

Wenn Variable einen Zeitstempel liefern, kann dieser von lokaler Zeit (Voreinstellung) auf Weltzeit (UTC) umgerechnet weden:

  • utc gibt den Zeitstempel nicht in lokaler Zeit (Voreinstellung) sondern in Weltzeit aus.

Vorhersage-Variable

Wenn Meteobridge mit einer Davis Vantage verbunden ist, stehen die Vorhersagen der Vantage in Meteobridge als Variable zur Verfügung. Alle Vorhersagevariable tragen als Sensornamen "forecast" gefolgt von einem der folgenden Selektoren:

  • rule: berichtet die Vorhersagenummer. Wenn keine Vantage angschlossen ist oder keine Vorhersage verfügbar ist, ist diese Zahl negativ.
  • text: Vorhersagetext in Englisch
  • textde: Vorhersagetext in Deutsch (UTF-8-kofiert)
  • textdeiso: Vorhersagetext in Deutsch (ISO-8859-kodiert)
  • textdehtml: Vorhersagetext in Deutsch (HTML-kodiert)
  • textit: Vorhersagetext in Italienisch
  • textnl: Vorhersagetext in Holländisch
  • textest: Vorhersagetext in Estonisch
  • texthr: Vorhersagetext in Ungarisch
  • textcz: Vorhersagetext in Tschechisch

System-Variable

Meteobridge stellt zusätzliche Variable zur Verfügung, die nicht direkt mit Wetterbedingungen zu tun haben. Der Sensorname ist immer "mbsystem", die dazu definierten Selektoren sind:

  • swversion: Meteobridge Versionskennung (Beispiel: "1.1")
  • buildnum: Build-Nummer als Integer (Beispiel: 1673)
  • platform: HW-Platform (Beispiel: "TL-MR3020")
  • language: Im Web-Interface verwendete Sprache (Beispeil: "English")
  • timezone: eingestellte Zeitzone (Beispiel: "Europe/Berlin")
  • latitude: geografische Breite (Beispiel: 53.875120)
  • longitude: geografische Länge (Beispiel: 9.885357)
  • lunarage: Tage seit Neumond (Beispiel: 28)
  • lunarpercent: Prozentuale Mondphase, 0% für Neumond, 100% für Vollmond
  • lunarsegment: Mondsegment von 0 (Neumond), über 4 (Vollmond) bis 7.
  • daylength: Länge des Tages in Stunden und Minuten (Beispiel: "11:28")
  • civildaylength: Alternative Berechnungsmethode der Tageslänge.
  • nauticaldaylength: Alternative Berechnungsmethode der Tageslänge.
  • sunrise: Sonnenaufgang, der durch Anhängen von "=utc" in UTC anstelle der lokalen Zeit angegeben werden kann (Beispiel: "06:47", resp. "05:47").
  • sunset. Sonnenuntergang, der durch Anhängen von "=utc" in UTC anstelle der lokalen Zeit angegeben werden kann (Beispiel: "18:15", resp. "17:15").
  • civilsunrise, civilsunset, nauticalsunrise, nauticalsunset: Alternative Berechnungsmethode der Sonnenauf- und -untergangszeiten.
  • daynightflag: zeigt "D" für Tag und "N" für Nacht.
  • moonrise: Zeit der Mondaufgangs, die durch Anhängen von "=utc" in UTC anstelle der lokalen Zeit angegeben werden kann. Es ist zu beachten ,d ass es Tage ohne Mondaufgang gibt, die Variable existiert dann nicht.
  • moonset: Zeit der Monduntergangs, die durch Anhängen von "=utc" in UTC anstelle der lokalen Zeit angegeben werden kann. Es ist zu beachten ,d ass es Tage ohne Monduntergang gibt, die Variable existiert dann nicht.

Zeit/Datums-Variable

Die Ausgaben der aktuellen Zeit oder des aktuellen Datums entspricht nicht dem "Sensor-Selektor=Konverter" Schema, sondern ist wie folgt definiert.

Datum und Uhrzeit ist wie folgt definiert:

  • YYYY: Jahr, vierstellig
  • YY: Jahr, zweistellig
  • MM: Monat, zweistellig (ggf mit führender Null)
  • M: Monat (ohne führende Null)
  • DD: Tag, zweistellig (ggf mit führender Null)
  • D: Tag (ohne führende Null)
  • hh: Stunde in 24h-Notation, zweistellig (ggf mit führende Null)
  • h: Stunde in 24h-Notation (ohne führende Null)
  • HH: Stunde in 12h-Notation, zweistellig (ggf mit führende Null)
  • H: Stunde in 12h-Notation (ohne führende Null)
  • apm: ergibt "am" oder "pm" je nach Tageszeit
  • APM: ergibt "AM" oder "PM" je nach Tageszeit
  • mm: Minuten, zweistellig (ggf mit führender Null)
  • m: Minuten (ohne führende Null)
  • ss: Sekunden, zweistellig (ggf mit führender Null)
  • s: Sekunden (ohne führende NuLL)

Wenn ein großes "U" vorangestellt ist, wird mit Weltzeit gearbeitet (UTC), ansonsten mit lokaler Zeit. Beispiel: "[Uhh]:[Umm]:[Uss] UTC" wird zu einer Zeichenkette der Art "16:03:33 UTC" übersetzt

Nachkommastellen

Sofern nicht anders definiert werden Zahlen mit einer Dezimalstelle berichtet. Durch Setzen des Wertes für die Nachkommastellen kann die Anzahl der bei der Ausgabe verwendten Dezimalstellen bestimmt werden.

Wenn die Variable einen Zeichenkette anstelle einer Zahl zurückliefert - wie beispielsweise bei Zeitstempeln -, dann hat die "Nachkommastellen"-Definition eine andere Form und Bedeutung. Die Angabe enthält dann zwei Positionszeichen, die die Start- und eine Endeposition des herausuzulösenden Sub-Strings bezeichnen. Die Positionszeichen sind Kleinbuchstaben. Der erste gibt die Startposition an. "a" steht für das erste Zeichen der Zeichenkette, "b" für das zweite, etc. Das zweite Positionszeichen hat dieselbe Form und gibt das letzte Zeichen der herauszulösdenden Zeichenkette an. Beispiel: Aus dem Zeitstempel "20130303121055" werde mit den Positionszeichen ".ad" die ersten vier Zeichen selektiert. Wenn man die zeit der tiefsten Außentempratur des heutigen Tages erhalten möchte, kann man das Template [th0temp-dmintime.ij:--]:[th0temp-dmintime.kl:--] verwenden. "ij" selektieren den Stundenwert an Position 9-10 und "kl" den Minutenwert an Position 11-12 des Zeitstempels.

Ersatzzeichenkette

Wenn eine Variable nicht definiert ist oder keinen gültigen Wert liefern kann, wird die spezifizierte Ersatzzeichenkette ausgegeben, die auch leer sein kann. Fehlt die Angabe der Ersatzzeichenkette bleibt die Variabledefinition unverändert in der Zeichenkette stehen und wird nicht ersetzt.

Beispiele

Anbei ein paar Beispiele, die helfen, den Ersetzungsmechanismus besser zu verstehen.

  1. Template Outdoor temperature is [th0temp-act=F.1:--]°F wird umgewandelt in Outdoor temperature is 3.4°F, wenn keine Außentemperatur vorliegt erscheint Outdoor temperature is --°F.
  2. Template Local time is [hh]:[mm] wird umgewandelt in Local time is 09:27.
  3. Template Max gust in last 10 minutes was: [wind0wind-max10.1:--]m/s, [wind0wind-max10=mph.1:--]mph, [wind0wind-max10=kn.0:--]kn wird umgewandelt in Max gust in last 10 minutes was: 10.5m/s, 23.5mph, 20kn.