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% |
|
bei curval[35]=65 km/h ausgegeben wird 8.055 |
Temperaturdifferenz zweier Aussensensoren berechnen | %ws_calc[-]=%curval[2]%~%curval[3]%~1% |
|
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% |
|
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% |
|
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% |
|
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:
|
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% |
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.