Anwendungshilfen

Es soll hier der Versuch unternommen werden, für Standardanwendungen einige Beispiele zusammenzustellen, damit leichter entschieden werden kann, welche Variable in Frage kommt. Dies soll aber keine Einweisung in die Erstellung von Template-Dateien darstellen.
Das Problem ist, dass manche Variable nur in der custom.txt Sinn machen, andere dagegen nur in den sog. Template-Dateien (Monatstemplate - Jahrestemplate).
Damit ist folgendes gemeint:
Eine Variable wie %ws_avgmaxtemp% bringt zwar auch in der custom.txt einen Wert, dieser bezieht sich aber nicht wie gewünscht auf den Monat, ist also hier letztlich sinnlos.
Hier ist daher immer darauf zu achten, ob in der Hilfedatei des Programms angegeben ist "Variable nur bei Woche - Monat - Jahr gültig". Diese Variablen dann nicht in der custom.txt verwenden.

Was sind nun einige wichtige Variablen, die in der custom.txt verwendet werden können?
Hier können nun nicht alle Möglichkeiten aufgezählt werden, denn was für einen Maximalwert gilt, gilt entsprechend natürlich auch für den Minimalwert. Die Beispiele sollten also exemplarisch verstanden werden.

Absicht Variable Anmerkung
aktueller Wert der Außentemperatur %curval[x]% x entspricht in allen Beispielen der Sensor ID
aktueller Wert der Außentemperatur %curval[0]%
seit Version 2.85.4 gilt %curvaloutstemp% nicht mehr
hier ist keine Sensorangabe erforderlich, denn es wird der Sensor genommen, der für den Taupunkt angegeben ist
Maximalwert der Außentemperatur %maxval[x]% ergibt unterschiedliche Werte, je nachdem ob die Tages- oder 24h-Ansicht gewählt ist
Maximalwert der Außentemperatur %maxval[0]%
seit Version 2.85.4 gilt %maxvaloutstemp% nicht mehr
ergibt unterschiedliche Werte, je nachdem ob die Tages- oder 24h-Ansicht gewählt ist, aber vom Wert des Taupunktsensors
Maximalwert der Außentemperatur %maxtempday% nimmt den Wert des Taupunktsensors und ist auf die Tagesansicht bezogen
Aus dem oben Beschriebenen sollte ersichtlich sein, dass es mehrere Variable gibt, die denselben Zweck erfüllen (z.B. maximale Außentemperatur), aber unter verschiedenen Voraussetzungen (einmal wird der Taupunktsensor verwendet, ein anderes Mal wird der Sensor durch die ID gewählt)
entsprechendes gilt für die "Zeitwerte" des Maximums a) %maxtime[x]%
b) %maxtimecurday[x]%
c) %maxtempdaytime%
d) %maxtime[0]%
alle bringen die Zeit der Maximaltemperatur, aber
a) Sensorwahl und je nach gewählter Ansicht den Tageswert oder 24h-Wert
b) Sensorwahl und unabhängig von der Ansicht den Tageswert
c) unabhängig von der Ansicht den Tageswert, aber den des Taupunktsensors
d) nimmt Taupunktsensor und ist abhängig von der Ansicht (Tag/24h)
Hinweis zur Verwendung der "outstemp" und "outshum"-Variablen wie bereits oben gezeigt, muss die Variablenart "outstemp" (z.B. %curvaloutstemp%) durch %curval[0]% ersetzt werden entsprechendes gilt für die Variablenart "outshum", bei der jedoch der Parameter "-1" gilt, also anstatt %curvaloutshum% gilt nun %curval[-1]%
Zuletzt soll noch auf eine Besonderheit der Variablen curminmaxhour eingegangen werden.
Diese ist auch bei den "Variablenarten" eingehend beschrieben.
Minimalwert der letzten 5 Stunden von Sensor 2 %curminmaxhour[1,5,2]% hier kann also die Art des Wertes (aktuell, Minimum usw), die Zahl der zu berücksichtigenden Stunden und die Sensornummer angegeben werden
Minimalwert des ganzen aktuellen Tages von Sensor 2 %curminmaxhour[1,0,2]% Hier werden also, ohne Berücksichtigung einer festen Stundenzahl, die Werte des ganzen aktuellen Tages berücksichtigt


Eine ganze Reihe von Variablen macht dagegen nur Sinn, wenn sie in den sog. Monatstemplates (template_m.txt) oder Jahrestemplates (template_y.txt) verwendet werden. Nun kann es nicht Sinn dieses Artikels sein, hier eine Einführung in die Verwendung von Templates zu geben. Doch es soll versucht werden zu zeigen, was mit einigen Variablen in den Templates erreicht werden kann bzw. wie sie sich von der Verwendung in der custom.txt unterscheiden.

Absicht Variable Anmerkung
Durchschnittstemperatur jedes einzelnen Tages eines ganzen Monats %curval[x]% Was hier oft für Verwirrung sorgt: curval[x] bringt in der custom.txt den aktuellen Wert (z.B. um 15 Uhr), in der Monats-Templatedatei jedoch den Durchschnittswert des betreffenden ganzen Tages im Monat
Maximalwert des jeweiligen Tages im Monat %maxvalday[0]%
Es wird hier die höchste, am jeweiligen Tag des Monats aufgetretene Temperatur angezeigt
Durchschnittstemperatur aller Tage des ganzen Monats %avgval[x]% avgval[x] bringt hier nicht den Durchschnittswerte des Tages (wie in der custom.txt), sondern den des Monats
durchschnittliche Maximaltemperatur eines Monats %ws_avgmaxtemp% hier wird der Schnitt aller Maximaltemperaturen gebildet
Wie man aus dem oben Beschriebenen sieht, kommt es bei diesen Variablen darauf an,
- in welchem Zusammenhang sie verwendet werden:
custom.txt oder Monatstemplate (template_m.txt) --> Beispiel 1 und 3
oder
- dass sie nur im Monatstemplate Sinn machen (Beispiel 2 und 4)
Ferner sollte klar sein, dass dies, was ich hier für die Maximalwerte angegeben habe, entsprechend auch für die Minimalwerte gilt.
Maximaltemperatur des ganzen Monats %maxval[0]%
hier wird als Sensor wiederum der Sensor für den Taupunkt genommen
Maximaltemperatur des ganzen Monats %maxval[x]% hier wird als Sensor jeder beliebige Sensor genommen
Regen im Monat %rainmonth% All diesen Sensoren wiederum ist gemeinsam, das sie sowohl in der custom.txt als auch im Monatstemplate verwendet werden können und gültige Werte bringen
Regentage > 0 mm im Monat %rain0month%
Sommertage im Monat %ws_warmdays_m%

Unter dem folgenden Link kann in einer Monatstabelle, die mit einer Datei template_m.txt erzeugt wird, betrachtet werden, welche Variablen für welchen Wert "zuständig" sind.
Monatsübersicht1 und Monatsübersicht2
Wer sich die Datei zum Ansehen laden will, klickt hier: Monatstemplate
Bitte beachten: Die Datei wurde von mir unter dem Namen template_mMuster.zip gespeichert. Wer sie nicht nur ansehen, sondern versuchsweise verwenden will, muss sie natürlich nach dem Laden in template_m.txt umbenennen (eine bereits vorhandene template_m.txt zuvor sichern). Diese Template-Datei erzeugt dann eine HTML-Datei namens tabelle.html

An dieser Stelle sollen einige Beispiel zu den seit Version 2.8.3.0 neu hinzugekommenen Variablen gebracht werden:

Variable zur Berechnung

Absicht Variable Anmerkung Ergebnis
Beispiele zu Variablen mit Berechnung: %ws_calc[x]=w1~w2~Dez%  
Windgeschwindigkeit von km/ in m/s umrechnen %ws_calc[/]=%curval[35]%~3.6~3%
  • curval[35] liefert die aktuelle Windgeschwindigkeit in km/h
  • Dieser Wert wird durch 3.6 geteilt
  • das Ergebnis wird mit einer Genauigkeit von 3 Stellen ausgegeben
bei curval[35]=65 km/h
ausgegeben wird
8.055
Temperaturdifferenz zweier Aussensensoren berechnen %ws_calc[-]=%curval[2]%~%curval[3]%~1%
  • curval[2] liefert Temp. Sensor 1
  • curval[3] liefert Temp. Sensor 2
  • die Werte werden subtrahiert
  • das Ergebnis wird mit einer Kommastelle ausgegeben
bei curval[2]=18 und curval[3]=16
ausgegeben wird
2.0
Regentage in Prozent berechnen
beachten:
Hier werden ws_calc1 und ws_calc verwendet
%ws_calc1[*]=%ws_calc[/]=%raindays%~%ws_dayyear%~3%~100~2%
  • raindays liefert die Zahl der Regentage
  • ws_dayyear liefert die Zahl der Tage des Jahres bis jetzt
  • %ws_calc[/] dividiert die Regentage durch die Gesamttage des Jahres
  • %ws_calc1[*] multipliziert dann mit 100
bei raindays = 60 und
ws_dayyear = 144
ausgegeben wird
41,66
Inhalt der custom.txt Ausgabe in custom.html
Windgeschw.: %ws_calc[/]=%curval[35]%~3.6~3% m/s Windgeschw.: 8.055 m/s
Temperaturdifferenz Nord/Süd: %ws_calc[-]=%curval[2]%~%curval[3]%~1% Grad Temperaturdifferenz Nord/Süd: 2.0 Grad
Regentage in Prozent: %ws_calc1[*]=%ws_calc[/]=%raindays%~%ws_dayyear%~3%~100~2% Regentage in Prozent: 41,66

Variable zum Vergleich

Absicht Variable Anmerkung Ergebnis
Beispiele zu Variablen mit Vergleich: %ws_compare[x]=w1~w2~richtig~falsch%  
Temperaturdifferenz zweier Sensoren soll in Worten bewertet werden %ws_compare[5]=%curval[2]%~%curval[3]%~Temp. AußenNord ist niedriger als AußenSüd~Temp. AußenNord ist höher als AußenSüd%
  • curval[2] liefert die Temp. von Sensor 1
  • curval[3] liefert die Temp. von Sensor 2
  • beide Werte werden auf kleiner verglichen (Sensor 1 < Sensor 2)
bei curval[2]=18 und curval[3]=20
ausgegeben wird
Temp. AußenNord ist niedriger als AußenSüd
bei curval[2]=21 und curval[3]=19
ausgegeben wird
Temp. AußenNord ist höher als AußenSüd
Es soll ausgegeben werden, ob heute schon Niederschlag fiel %ws_compare[1]=%rainday%~0~heute bereits Niederschlag~heute noch kein Niederschlag%
  • rainday liefert den Tagesniederschlag
  • dieser Wert wird auf größer Null verglichen
bei rainday=5
ausgegeben wird
heute bereits Niederschlag
bei rainday=0
ausgegeben wird
heute noch kein Niederschlag
Es soll ausgegeben werden, ob heute schon Niederschlag fiel, aber mit Angabe des Niederschlags %ws_compare[1]=%rainday%~0~heute bereits %rainday% mm Niederschlag~heute noch kein Niederschlag% es erfolgt derselbe Vorgang wie im obigen Beispiel, jedoch wird bei einem Parameter nicht nur Text, sondern auch eine Variable ausgegeben ausgegeben wird
heute bereits 5 mm Niederschlag
Es soll die momentane Windgeschwindigkeit ausgegeben werden und bei Windstille ein Text %ws_compare[1]=%curval[35]%~0~Windgeschwindigkeit. %curval[35]% %unitname[35]%~Momentan Windstille.% es soll die momentane Windgeschw. ausgegeben werden oder bei Windstille ein Text bei 0 km/h
ausgegeben wird
Momentan Windstille
Wir ersehen daraus:
  • für die Parameter w1 und w2 können Variable eingesetzt werden, es kann also eine Variable mit einer anderen Variablen verglichen werden
  • für die Parameter w1 und w2 können Variable und echte Werte (Zahlen) eingesetzt werden, es kann also eine Variable mit einer Zahl (z.B. dem Wert Null) verglichen werden
  • vor Verwendung dieser Variablen sollte die Ausgabe der Einheiten mit %unit_off% ausgeschaltet werden, also z.B. %unit_off% %ws_compare[1]=%rainday%~0~heute bereits Niederschlag~heute noch kein Niederschlag%
 

Eine gewisse Sonderstellung nimmt die "Speichervariable" ws_setmem[x] ein.

Absicht Variable Anmerkung Ergebnis
Beispiele zu Variablen mit Speicherung: %ws_setmem[x]% und %ws_getmem[x]%  
Die maximale durchschnittliche Monatstemperatur soll ausgegeben werden.
Die notwendige Variable, nämlich %ws_avgmaxtempmonth% macht jedoch nur in einer Template-Datei Sinn.
In die Monats-Template-Datei (template_m.txt) wird diese Variable eingebaut:
%ws_setmem[1]=%ws_avgmaxtempmonth% %

Damit die Variable zugewiesen wird, muss natürlich zuerst die Monats-Template-Datei abgearbeitet werden. Dadurch wird der Wert von %ws_avgmaxtempmonth% in der Variablen %ws_setmem[1]% gespeichert

der Wert einer Template-Variablen wird an %ws_setmem[1]% übergeben, dort gespeichert und kann in einer anderen Datei (hier custom.txt) verwendet werden
Der Wert soll aber nicht in der Template-Datei, sondern in der custom.txt verwendet werden Das steht dann in der custom.txt:
Die durchschnittliche monatliche Maximaltemperatur beträgt %ws_getmem[1]% Grad

jetzt wird sie in der custom.txt eingesetzt

mit der Variablen %ws_getmem[1]% wird der Wert ausgegeben
Eine Sonderstellung nimmt die Variable %ws_getmem_X% ein, da sie nicht gesetzt werden muss, sondern bei der Abarbeitung eines Templates automatisch gesetzt wird und dann abgefragt werden kann.
Es soll abgefragt werden, ob das yesterday-template abgearbeitet wurde %ws_getmem_yest% wenn es nicht abgearbeitet wurde
wenn es abgearbeitet wurde
-255
12:21:47 04.12.2003
sinngemäß kann so auch abgefragt werden, ob das Wochentemplate (%ws_getmem_w%), das Monatstemplate (%ws_getmem_m%) oder das Jahrestemplate (%ws_getmem_y%) bereits abgearbeitet wurde
Was auch gut ist zu wissen:
Die Speichervariablen (1 - 32) werden mit -255 initialisert, d.h. vor irgendeiner Zuweisung haben sie den Wert -255
%ws_compare[6]=-255~%ws_getmem[1]%~Variable ist gesetzt~Variable ist nicht gesetzt% wenn sie gesetzt wurde
wenn sie noch nicht gesetzt wurde
Variable ist gesetzt
Variable ist nicht gesetzt



Unter den folgenden zwei Links kann eine Textdatei betrachtet werden und wie die aus ihr erzeugte html-Datei aussieht.:
neuvar.txt und neuvar.html

Auf die zwei häufigsten Fehlerquellen soll hingewiesen werden:


Weitere praktische Beispiele

In dieser letzten Folge von Tabellen werden einige Variablenanwendungen vorgestellt, die Kombinationen aus den verschiedenen Möglichkeiten aufweisen. Diese Beispiele wurden teilweise auch von Usern aus dem Forum entwickelt.

Absicht Variable Anmerkung
auf Grund der Regenwerte und der Temperatur soll entschieden werden, ob Schnee oder Regen fällt
Bedingung:
Niederschlag und weniger als 1.3°C = Schnee, ansonsten Regen

 

%unit_off%
%ws_setmem[1]=%ws_compare[1]=%curval[34]%~0~5~1% %
wenn es geregnet hat, enthält setmem[1] den Wert 5 (5 und 1 sind willkürlich gewählt)
%ws_setmem[2]=%ws_compare[5]=%curval[2]%~1.3~5~4% % wenn es kälter als 1.3 °C ist, enthält setmem[2] den Wert 5 (5 und 4 sind willkürlich gewählt)
%ws_setmem[3]=%ws_compare[3]=%ws_getmem[1]%~%ws_getmem[2]%~ momentaner Schneefall~ momentaner Regen% % die beiden Variablen werden verglichen. Wenn beide den Wert 5 enthalten (Niederschlag und kälter als 1,3°C), wird "momentaner Schneefall" ausgegeben, ansonsten "momentaner Regen"
Wem dies genügt, der kann jetzt mit %ws_getmem[3]% den Text ausgeben.
Beispielsweise: Augenblicklich %ws_getmem[3]%
Wer eine differenziertere Ausgabe möchte, setzt die folgenden Zeilen noch ein:
  
%ws_setmem[5]=%ws_compare[2]=%curval[34]%~0.360~3~5% % es wird verglichen, ob mehr als 0.36 l/m² gefallen sind (Parameter 3 und 5 sind willkürlich gewählt)
%ws_setmem[6]=%ws_compare[2]=%curval[34]%~0.7~3~4% % es wird verglichen, ob mehr als 0.7 l/m² gefallen sind (Parameter 3 und 4 sind willkürlich gewählt)
%ws_setmem[7]=%ws_compare[3]=%ws_getmem[5]%~%ws_getmem[6]%~mäßiger~leichter% % wenn in getmem[5] und getmem[6] der gleiche Wert 3 ist, haben wir mäßigen, sonst leichten Niederschlag
%ws_setmem[8]=%ws_compare[4]=%curval[34]%~1.08~%ws_getmem[7]%~starker% % wenn der aktuelle Niederschlag <= 1.08 l/m² ist, wird der Wert von getmem[7] in setmem[8] gemerkt, ansonsten das Wort "starker"
%ws_compare[1]=%curval[34]%~0~%ws_getmem[8]% %ws_getmem[3]%~trocken% hier erfolgt die endgültige Ausgabe: der aktuelle Niederschlag (curval[34]) wird mit "0" verglichen. Wenn es Niederschlag gab, erfolgt die entsprechende Bemerkung, ansonsten das Wort "trocken"
Zusatzanmerkung Es werden also folgende Fälle unterschieden:
kein Niederschlag --> trocken
bis 0.36 l/m² und Temperatur über 1,3°C --> leichter momentaner Regen
bis 0.7 l/m² und Temperatur über 1,3°C --> mäßiger momentaner Regen
über 1.08 l/m² und Temperatur über 1,3°C --> starker momentaner Regen
bis 0.36 l/m² und Temperatur unter 1,3°C --> leichter momentaner Schneefall
bis 0.7 l/m² und Temperatur unter 1,3°C --> mäßiger momentaner Schneefall
über 1.08 l/m² und Temperatur unter 1,3°C --> starker momentaner Schneefall
Diese Variablenfolge wurde vom User "adris" entwickelt.
Dabei sollte folgendes klar sein:
die Temperaturgrenze von 1,3°C und die Regenmengen wurden willkürlich gewählt und können natürlich verändert werden
Dringend beachten: wenn zwei Prozentzeichen in den Variablen aufeinanderfolgen, dazwischen keine Leerstelle lassen wie in den obigen Beispielen (ich muss dies wegen meines Editors machen)  
Eine interessante Variante (die sich erst in der Praxis noch bestätigen muss), geht davon aus, dass es dann schneit, wenn die Summe aus Temperatur und Taupunkt <= 0 ist und dass Schneeregen bei <= 0.5 °C zu erwarten ist, ansonsten Regen.
Variable Anmerkung
%unit_off%
%ws_setmem[9]=%ws_calc[+]=%curval[2]%~%curval[43]%~1% % Summe aus Temperatur und Taupunkt als Maßstab für Prognose
%ws_setmem[2]=%ws_compare[4]=%ws_getmem[9]%~0.5~5~4% %
wenn obige Summe <= 0.5 ist, enthält setmem [2] den Wert 5
%ws_setmem[10]=%ws_compare[4]=%ws_getmem[9]%~0~5~6% % wenn obige Summe <= 0 ist, enthält setmem [10] ebenfalls den Wert 5
%ws_setmem[11]=%ws_compare[3]=%ws_getmem[2]%~%ws_getmem[10]%~Schneefall~Schneeregen% % wenn setmem[2] und setmem[10] den gleichen Wert (5) enthalten, gibt es Schneefall, sonst Schneeregen
%ws_setmem[3]=%ws_compare[4]=%ws_getmem[9]%~0.5~%ws_getmem[11]%~Regen% %
wenn Summe Temp.+Taupunkt < als 0.5 sind, kommt entweder Schneefall oder Schneeregen, ansonsten Regen
%ws_setmem[5]=%ws_compare[2]=%curval[34]%~0.360~3~5% % bei den restlichen Variablen gilt Gleiches wie oben
%ws_setmem[6]=%ws_compare[2]=%curval[34]%~0.7~3~4% %
%ws_setmem[7]=%ws_compare[3]=%ws_getmem[5]%~%ws_getmem[6]%~mäßiger~leichter% %
%ws_setmem[8]=%ws_compare[4]=%curval[34]%~1.08~%ws_getmem[7]%~starker% %
%ws_compare[1]=%curval[34]%~0~%ws_getmem[8]% %ws_getmem[3]%~trocken% Ausgabe des Ergebnisses
Es wird sich zeigen, ob damit (oder durch gewisse Anpassungen), eine einigermaßen zuverlässige Ansage des momentanen Zustands möglich ist. auch dieser Algorithmus wurde von Adris zusammengestellt

Absicht Variable Anmerkung
  damit die nachfolgenden Variablen ausgewertet werden können, muss folgende Einstellung in WSWIN getroffen werden: Wetter - Statistikdaten - Einstellungen: <= 19.9°C einstellen
die Anzahl der tropischen Nächte im Jahr und Vorjahr soll ermittelt werden
(entwickelt von Adris)
%ws_setmem[14]=%ws_calc[-]=%ws_dayyear%~%ws_uldays_y%~0% %
%ws_setmem[15]=%ws_calc[-]=%ws_getmem[14]%~1~0% %

die aktuelle Tagnummer des Jahres minus die Tage ohne trop. Nacht ergibt die tropischen Nächte; da die Zahl wegen des aktuellen Tages um eins zu hoch ist, wird anschließend der Wert 1 abgezogen
%ws_setmem[16]=%ws_calc[-]=365~%ws_ly_uldays_y%~0% % wie oben, doch da komplettes Jahr, werden die Tage von 365 subtrahiert (Schaltjahr beachten)
trop.Nächte: %ws_getmem[15]%
trop. Nächte Vorjahr: %ws_getmem[16]%
Ausgabe der Werte
einfachere Möglichkeit ab Version 2.94.0 Tropennächte Jahr %tropnightdays_mpast[mm~yyyy]%
oder

%ws_tropndays_y%
%ws_ly_tropndays_y%

wobei hier "mm=0" das ganze Jahr auswertet und "mm=06" den Monat Juni

Tropennächte aktuelles Jahr
Tropennächte vergangenes Jahr

Ein Trost zum Schluss: (sozusagen das "Wort zum Sonntag")
Die Verwendung mancher Variablen (vor allem in den Template-Dateien) ist nicht ganz einfach, also nicht unbedingt für einen gedacht, der das Programm gerade mal eine Woche besitzt.
Denn gerade die Vielzahl an Möglichkeiten sorgt letztlich auch für eine gewisse Verwirrung, wenn man sich noch nicht lange damit beschäftigt hat.
Dafür sind die Möglichkeiten, die sich dadurch bieten, nahezu unerschöpflich.

Datenschutzerklärung