Templates

From meteoplug
Revision as of 00:19, 31 July 2017 by Admin (Talk | contribs)

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. Da einige Wetterstationen auch geringe Batteriespannung anzeigen, sind auch Sensoren thb0lowbat, th0lowbat, etc verfügbar. Diese Sensoren zeigen einen niedrigen Batteriespannung der Basissensoren an (0 = normale Batteriespannung, 1 = niedrige Batteriespannung).

Einige Stationen unterstützen zusätzliche Temperatur/Feuchtesensoren. 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- und Blattfeuchtesensoren ausgestattete Davis Vantage verfügt, werden diese Sensoren ebenfalls als Temperatur/Feuchtesensoren geführt, allerdings ohne Berechnung eines Taupunktes. Die Bodenfeuchtesensoren weden als "th10temp", "th10hum", ..., "th13temp", "th13hum" und die Blattfeuchtesensoren als "th15temp", "th15hum", ..., "th18temp", "th18hum" geführt. Die "hum"-Werte repräsentieren 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:

  • hoursum, 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
  • nonzerotime: Zeitstempel des letzten Sensorwertes, der größer als Null war.

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.

  • age: liefert die vergangene Zeit seit dem letzten Empfang von Daten dieses Sensors.
  • hold: liefert die vergangene Zeit seit dem letzten Empfang von Daten dieses Sensors aber resultiert in einen ungültigen Wert, wenn das Signalalter die Wartezeit von 300 Sekunden übersteigt. Dies ermöglicht einen ingültigen Status für Sensoren zurückzuliefern, die zu lange keine neuen Daten geliefert haben.


Neben obigen Selektoren, die fest definierte Zeitfenster selektieren, kann mit den folgenden Selektoren eine Auswertung für einen relativen Zeitraum in die Vergangenheit durchgeführt werden. Die Rückschau reicht wegen der begrenzten Speicherausstattung der Meteobridge nur bis zu 60 Minuten in die Vergangenheit.

  • val1, val2, val13, ..., val60: selektiert den Sensorwert von vor einer bis 60 Minuten
  • max1, max2, max3, ..., max60: selektiert das Maximum der letzten einen bis 60 Minuten
  • min1, min2, min3, ..., min60: selektiert das Minimum der letzten einen bis 60 Minuten
  • avg1, avg2, avg3, ..., avg60: selektiert den Durchschnittswert der letzten einen bis 60 Minuten

Sensoren wie "rain0total" und "sol0evo", die kumulierte Werte liefern, können wegen der geringeren Abtastdichte (1 Wert pro Minute) bis zu 24 Stunden in die Vergangenheit ausgewertet werden:

  • sum1, sum2, sum3, ..., sum60, sum1h, sum2h, sum3h, ..., sum24h: selektiert zusammengerechnete Deltawerte der letzten einen bis 60 Minuten oder der letzten einen bis 24 Stunden, welches zum Berechnen der gefallenen Regenmenge im definierten Zeitraum erforderlich ist. Beispiel: "rain0total-sum60" ergibt die gefallene Regenmenge in mm der letzten 60 Minuten.
  • delta1, delta2, delta3, ..., delta60, delta1h, delta2h, delta3h, ..., delta24h: zeigt die Differenz zwischen dem aktuellen Sensorwert und dem Sensorwert vor 1 bis 60 Minuten oder dem Sensorwert vor 1 bis 24 stunden. Eine positiver Wert zeigt ein Ansteigen über die Zeit an, ein negativer Wert ein Abfallen. Diese Daten sind für Trendanalysen über unterschiedliche Betrachtungszeiträume hilfreich.

Meteobridge PRO Erweiterungen

Die Selektoren val, min, max, avg, sum, mintime, maxtime können mit einem Zeitpunktbezeichner "@YYYYMMDDhhmm" versehen werden, der bestimmt, vom welchem Zeitpunkt die Daten selektiert werden sollen. Dieser Zeitpunktbezeichner legt ebenfalls fest, in welcher Zeitauflösung (minütlich, stündlich, täglich, monatlich, jährlich) die Datenauswertung erfolgen soll. Um Daten in minütlicher Auflösung zu erhalten, muss der bezeichnete Zeitpunkt bis auf die Minute bestimmt sein. Beispiel: "min@201512190900" selektiert Minimumdaten des 19. Dezember 2015 um 09:00 (in minütlicher Auflösung), während "min@2015121909" die Minimumdaten des 19. Dezember 2015 von 09:00 bis 9:59 (in stündlicher Auflösung) zeigt. Die folgenden Zeitpunktbezeichner sind definiert:

  • @YYYY selektiert Daten für das mit YYYY bezeichnete Jahr. Beispiel: Bei Verwendung von "[th0temp-min@2015]" in einem Template wird dort die Minimumaussentemperatur des Jahres 2015 berichtet.
  • @YYYYMM selektiert Daten für den bezeichneten Monat. Beispiel: Mit "[wind0wind-max@201509]" wird in einem Template die maximale Windgeschwindigkeit des September 2015 eingefügt.
  • @YYYYMMDD selektiert Daten für den bezeichneten Tag. Beispiel: Mit "[rain0total-sum@20151031]" wird in einem Template der Regenfall des 31. Oktober 2015 eingeblendet.
  • @YYYYMMDDhh selektiert Daten für die bezeichnete Stunde. Beispiel: Mit"[uv0index-avg@2015110316]" wird der durchschnittliche UV-Index des 3. November 2015 zwischen 16:00 und 16:59 angezeigt.
  • @YYYYMMDDhhmm selektiert Daten für die bezeichnete Minute. Beispiel: Mit "[thb0seapress-val@201512251200]" wird der Luftdruck am 1. Weihnachtsfeiertag 2015 um 12:00 angezeigt.

Neben der im vorangegangenen Abschnitt erläuterten Selektion von Daten mittels absoluter Zeitpunkte ist es auch möglich, relativ zum jetzigen Zeitpunkt Daten in der Vergangenheit zu selektieren. Relative Zeitpunkte können in Jahren, Monaten, Tagen, Stunden und Minuten angegeben werden. Dabei liefert eine Selektion über das Jahr jährliche Daten, eine Selektion über den Monat monatliche Daten, etc. Die folgenden relativen Zeitpunktbezeichner sind möglich:

  • @Yn selektiert die jährlichen Daten des Jahres, das n Jahre zurückliegt. Beispiel: Im Jahr 2016 ergibt "[th0temp-max@Y1]" die maximale Aussentemperatur des Jahres 2015, während "@Y3" die Daten des Jahres 2013 selektiert.
  • @Mn selektiert die monatlichen Daten des Monats, der n Monate zurückliegt. Beispiel: "[wind0wind-max@M0] liefert die maximale Windgeschwindigkeit des aktuellen Monats, während "[wind0wind-max@M1]" die maximale Windgeschwindigkeit des Vormonats liefert.
  • @Dn selektiert die täglichen Daten des Tages, der n Tage zurückliegt. Beispiel: "[th0temp-min@D7]" liefert die Tagesdaten von vor einer Woche.
  • @hn selektiert die stündlichen Daten der Stunde, die n Stunden zurückliegt.
  • @mn selektiert die minütlichen Daten der Minute, die n Minuten zurückliegt.

val zeigt grundsätzlich dieselben Werte wie "avg". Bei minütlicher Auflösung zeigt "val" den Durchschnitt der Werte der Minute, falls mehrere Werte in der Minute angeliefert wurden.

mintime und maxtime zeigen den Zeitstempel des gesuchten Minimums oder Maximums in dem definierten Zeitraum. Der Zeitstempel wird in der Notation "YYYYMMDDhhmmss" in Sekundenauflösung berichtet.

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.
  • nldir wandelt die Windrichtung in einen von 16 Holländischen Richtungstexten um.
  • dedir wandelt die Windrichtung in einen von 16 Deutschen Richtungstexten um.
  • barotrend wandelt eine Differenzmessung (Selektor delta) in eine Barometertrendanalyse:
    • -2: delta <= -2 hPa
    • -1: -2 hPa < delta <= -1 hPa
    • 0: -1 hPa < delta < +1 hPa
    • +1: +1 hPa <= delta < +2 hPa
    • +2: +2 hPa <= delta
  • enbarotrend berichtet den Trend als Zeichenkette FF, FS, ST, RS, RF.

Wird eine unbekannte Konvertierung gewählt, findet keine Umrechnung statt und 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.
  • apm berichtet den Zeitstempel in AM/PM-Notation. Beispiel: "201603011123344AM" steht für den 11. März 2016 um 12:33:44 AM".

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

Wenn der Konverter "us" hinzugefügt wird, werden alle Leerzeichen durch Unterstriche ("_") ersetzt.

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:

  • mac: Meteobridge MAC Hardware-Adresse (Beispiel: "40:01:FE:23:12:A8")
  • swversion: Meteobridge Versionskennung (Beispiel: "1.1")
  • buildnum: Build-Nummer als Integer (Beispiel: 1673)
  • platform: HW-Platform (Beispiel: "TL-MR3020")
  • station: Ausgewählte Wetterstation (Beispiel: "WMR-200")
  • 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)
  • uptime: Laufzeit der Meteobridge in Sekunden
  • cpuload1m, cpuload5m, cpuload15m zeiht die durchschnittliche CPU-Lastwährend der letzten 1, 5, 15 Minuten
  • ip: IP-Adresse
  • lanip: IP-Adresse des LAN-Ports (wenn angeschlossen)
  • wlanip: IP-Adresse im WLAN (wenn angeschlossen)
  • lastdata: Sekunden seit dem letzten Dateneingang der angeschlossenen Wetterstation. Zeigt -1, wenn noch keine Daten empfangen wurden. Es wird nicht zwischen sinnvollen oder fehlerhaften Daten unterschieden.
  • lastgooddata: Sekunden seit dem letzten Eingang von sinnvollen Daten der angeschlossenen Wetterstation. Zeigt -1, wenn noch keine Daten empfangen wurden.
  • solarmax: Maximal mögliche Solarstrahlung am aktuellen Tag an dem angegeben Punkt auf der Erde. Geografische Breite und Höhe müssen korrekt eingestellt sein und Luftdruckdaten müssen verfügbar sein, damit dieser Wert berechnet werden kann.
  • 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") oder durch Anhängen von "=apm" in eine 12 Stundendarstellung gewandelt werden kann.
  • sunset. Sonnenuntergang, der durch Anhängen von "=utc" in UTC anstelle der lokalen Zeit angegeben werden kann (Beispiel: "18:15", resp. "17:15") oder durch Anhängen von "=apm" in eine 12 Stundendarstellung gewandelt werden kann.
  • 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 oder durch Anhängen von "=apm" in eine 12 Stundendarstellung gewandelt werden kann. Es ist zu beachten, dass 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 oder durch Anhängen von "=apm" in eine 12 Stundendarstellung gewandelt werden kann. Es ist zu beachten, dass es Tage ohne Monduntergang gibt, die Variable existiert dann nicht.
  • graphA: Zeigt die URL zum Meteoplug chart "*instruments-black" des Anwenders.
  • graphB: Zeigt die URL zum Meteoplug chart "*instruments-black-imp" des Anwenders.
  • graphC: Zeigt die URL zum Meteoplug chart "*iphone-black" des Anwenders.
  • graphD: Zeigt die URL zum Meteoplug chart "*iphone-black-imp" des Anwenders.
  • graphE: Zeigt die URL zum Meteoplug chart "*iphone-tw-2d" des Anwenders.
  • graphF: Zeigt die URL zum Meteoplug chart "*iphone-tw-2d-imp" des Anwenders.
  • graphG: Zeigt die URL zum Meteoplug chart "*iphone-pr-2d" des Anwenders.
  • graphH: Zeigt die URL zum Meteoplug chart "*iphone-pr-2d-imp" des Anwenders.

Zeit/Datums-Variable

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

Date und time variables are defined as follows:

  • YYYY: year as four digit number
  • YY: year as two digit number
  • MM: month as two digit number, if only one digit neede a zero will be used as first digit
  • M: month as one or two digit number, no leading zeros
  • DD: day of month as two digit number, if only one digit neede a zero will be used as first digit
  • D: day of month as one or two digit number, no leading zeros
  • hh: hour in 24h notation as two digit number, if only one digit neede a zero will be used as first digit
  • h: hour in 24h notation as one or two digit number, no leading zeros
  • HH: hour in 12h notation as two digit number, if only one digit neede a zero will be used as first digit
  • H: hour in 12h notation as one or two digit number, no leading zeros
  • apm: returns "am" or "pm" to be added to 12h time notations
  • APM: returns "AM" or "PM" to be added to 12h time notations
  • mm: minute as two digit number, if only one digit neede a zero will be used as first digit
  • m: minute as one or two digit number, no leading zeros
  • ss: seconds as two digit number, if only one digit neede a zero will be used as first digit
  • s: seconds as one or two digit number, no leading zeros

When a capital "U" preceeds a date/time variable name, UTC is used instead of local time ("[Uhh]:[Umm]:[Uss] UTC" is evaluated to a string like "16:03:33 UTC")

  • epoch: epochtime as defined in Unix (seconds since January 1, 1970)

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.

Numerical Expressions

A numerical expression that Meteobridge should evaluate needs to be enclosed by {* and *}. The enclosed expression can also include template variables. This allows to do various computations with numerical data. Resulting value is returned with two decimals. You can define how many digits the return value should have by stating the number of decimals betwenn the * and } when closing the numerical expression. For example, *0} does set number of decimals to 0, which will return a rounded integer value. When you are looking for a non-rounded, truncated integer then *t} will do the job.

In numerischen Ausdrücken können diese Operatoren verwendet werden:

Operator mit steigender Präzedenz (von oben nach unten)
Operator / Funktion Beschreibung
&&, ||, &, | logische "UND", "ODER" Operatoren arbeiten im Wertebereich "1=true" und "0=false"
==, =, !=, <>, >, >=, <, <= Vergleichsoperatoren arbeiten im Wertebereich "1=true" und "0=false"
+, - Arithmetische Operatoren "Plus" und "Minus"
*, /, % Arithmetische Operatoren "Multiplikation", "Division" and "Modulus" (welches die Operanden implizit zuerst auf Integer rundet)
^ Arithmetischer Operator "Hoch"
sqrt(), log(), exp(), sin(), asin(), cos(), acos(), tan(), atan(), atan2(), abs(), fabs(), floor(), ceil(), round() Arithmetische Funktionen: Quadratwurzel, Logarithmus, logarithmischer Exponent, Sinus, Arcus Sinus, Cosinus, Arcus Cosinus, Tangens, Arcus Tangens, Arcus Tangens2, Absolut, Gleitkommazahl Absolut, niedriger integer, höherer integer, gerundeter Integer

Um die Operator-Präzedenz zu brechen, können wie üblich Klammern "( )" verwendet werden.

Bedingte Ausdrücke

Templates können einfache bedingte Ausdrücke verwenden. Diese Ausdrücke erlauben keine Schachtelung und können nicht innerhalb numerischer Ausdrücke verwendet werden. Bedingte Ausdrücke müssen in der starren Form #if# ... #then# ... #else# ... #fi# angewendet werden.

  • #if# zeigt den Beginn des bedingten Ausdruckes an.
  • Zwischen #if# und #then# wird eine Zahl erwartet. Leerzeichen werden ignoriert. Wenn die Zahl größer as 0.0 ist, wird der Ausdruck als "true" anderenfalls als "false" betrachtet.
  • Im Falle von "true" werden die Zeichen zwischen #then# und #else# verwendet um den gesammten bedingten Ausdruck im Template zu ersetzen.
  • Im Falle von "false" werden die Zeichen zwischen #else# und #fi# verwendet um den gesammten bedingten Ausdruck im Template zu ersetzen.

Da die bedingten Ausdrücke erst ganz am Ende aufgelöst werden, erfolgen alle anderen Template-Ersetzungsfunktionen oder Auswertungen numerischer Ausdrücke vorher.


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.
  4. Template Max gust in last 10 minutes was: [wind0wind-max10.1:0]m/s, {*[wind0wind-max10.1:0] * 3.6 *1}kph wird umgewandelt in Max gust in last 10 minutes was: 10.5m/s, 37.8kph.
  5. Template Max gust in last 10 minutes was: #if#{*[wind0wind-age:999]>600*}#then#--#else#[wind0wind-max10.1:0]m/s, {*[wind0wind-max10.1:0] * 3.6 *1}kph#fi# wird umgewandelt in Max gust in last 10 minutes was: 10.5m/s, 37.8kph wenn die letzten Winddaten jünger als 10 Minuten (600 Sekunden) sind und wenn nicht, dann Max gust in last 10 minutes was: -- .
  6. Template [th0temp-dmintime=apm.ij]:[th0temp-dmintime=apm.kl][th0temp-dmintime=apm.op] berichtet den Zeitstempel der Tagestiefsttemperatur des Aussentemperatursensors in 12-Stunden AM/PM-Notation: 12:34AM