Variablen mit Benutzervorgabe

Eine Sonderstellung nehmen die Variablen mit Benutzervorgabe ein, da sie, wie schon der Name sagt, in ihrer Ausgabe nicht festgelegt sind, sondern der Benutzer bestimmt, was die Variable bei bestimmten Gelegenheiten anzeigen soll.
Ein Beispiel mag dies zeigen:
Es gibt eine Variable, die so aussieht:

%ws_isdaynight=Tag,Morgendämmerung,Abenddämmerung,Nacht%

Hier ist entscheidend, dass die Variable aus zwei Teilen besteht:

Was geschieht nun, wenn diese Variable abgearbeitet wird?
Je nach Tageszeit wird eine unterschiedliche Textmeldung ausgegeben:
Tag, Morgendämmerung, Abenddämmerung, oder Nacht

Nun kommt der entscheidende Punkt:
Diese vier Angaben können vom Benutzer selbst gestaltet werden, also beispielsweise:

%ws_isdaynight=guten Tag,es dämmert gerade,bald wird es Zeit fürs Bett,gute Nacht%

Wenn nun die Datei gerade abends um 23:00 Uhr abgearbeitet wird, erscheint auf dem Bildschirm "gute Nacht", wird sie dagegen vormittags um 10:00 Uhr erstellt, erscheint "guten Tag".
Zusammenfassend kann man es sich so vorstellen:

Ursprungscode vom Benutzer veränderter Code Ergebnis (abhängig v. Situation)
%ws_isdaynight=Tag,Morgendämmerung,Abenddämmerung,Nacht% %ws_isdaynight=guten Tag,hallo Morgenmuffel,Kinder jetzt ins Bett,eine gute Nacht% hallo Morgenmuffel
%ws_icewarning=Ja,Nein% %ws_icewarning=Glatteis möglich,keine Glatteisgefahr% keine Glatteisgefahr

Es gibt hier noch einige wesentliche Dinge zusätzlich zu beachten (Komma als Trennzeichen erforderlich - Parameter können auch htmCode sein usw.), bitte hier dringend die Hilfedatei des Programms ansehen.

Dennoch soll auf die zwei häufigsten Fehler bereits hier hingewiesen werden:

Seit der Version 2.8.3.0 gibt es neue Variablenarten, die die Möglichkeiten des Programms ganz entscheidend erweitern.

Es sind dies Variablen

Dies soll in der nachfolgenden Tabelle verdeutlicht werden:
Hier ist zu beachten, dass als Trennzeichen der Parameter die Tilde (~) verwendet wird.

Variable zur Berechnung vom Benutzer einstellbar Bedeutung
%ws_calc[x]=w1~w2~Dez%
oder
%ws_calc1
[x]=w1~w2~Dez%
Für den Parameter x können nun Rechenoperationen gewählt werden:
[+] oder [-] oder [*] oder [/]
w1 = 1.Wert, w2 = 2.Wert
Dez= Zahl der Kommastellen
Dabei können w1 und w2 entweder echte Zahlen oder Variable sein
Wozu ist die 2. Variable ws_calc1 ?
Sie wird benötigt, wenn in einer Zeile zwei Berechnungen erfolgen sollen, also z.B. Bildung einer Summe und dann die Durchschnittsermittlung. Ich verwende im Nachfolgenden ein Beispiel aus der Hilfedatei des Programms:
was soll erreicht werden Variable Erklärung
aus zwei Temperaturen (Sensor 1 und Sensor 2) soll zuerst die Summe gebildet und dann der Durchschnitt errechnet werden %ws_calc1[/]=%ws_calc[+]=%curval[2]%~%curval[3]%~3%~2~3%

roter Teil:

  • die Temperaturen 1 und 2 werden zusammengezählt und mit 3 Dezimalstellen berechnet

grüner Teil:

  • das Ergebnis wird durch 2 geteilt und mit drei Dezimalstellen ausgegeben
praktisches Beispiel
ergibt
%ws_calc[-]=%curval[2]%~%curval[3]%~2% Temperaturdifferenz von Aussensensor 1 und Aussensensor2 auf 2 Dezimalstellen genau
wenn curval[2]=15°C und curval[3]=12°C erscheint als Ergebnis 3,00
Nutzen dieser Variablenart: Aus zwei Variablen wird ein dritter Wert errechnet und ausgegeben.
Variable zum Vergleich vom Benutzer einstellbar Bedeutung
%ws_compare[x]=w1~w2~richtig~falsch% Hier bedeutet:
x=1: Wert1 > Wert2
x=2:
Wert1 >= Wert2
x=3:
Wert1 = Wert2
x=4:
Wert1 <= Wert2
x=5:
Wert1 < Wert2
x=6: Wert1 <> Wert2
Wenn der Vergleich zutrifft, wird der Text ausgegeben, der bei "richtig" steht, ist der Vergleich nicht zutreffend, wird der Text bei "falsch" ausgegeben.
praktisches Beispiel
ergibt
%ws_compare[1]=%curval[2]%~%curval[3]%~Temp. AußenNord ist höher als AußenSüd~Temp. AußenNord ist niedriger als AußenSüd% bei TempNord 7,5°C und TempSüd 6,1°C -->
Temp. AußenNord ist höher als AußenSüd
bei TempNord 4,5°C und TempSüd 5,1°C -->
Temp. AußenNord ist niedriger als AußenSüd
Nutzen dieser Variablenart: zwei Variablen werden miteinander verglichen und je nach Vergleich wird unterschiedlicher Text ausgegeben.
Bitte beachten: Wert1 und Wert2 müssen Zahlenwerte darstellen (echte Zahlen oder Variable, aber keinen Text)
Ausnahme: Der Vergleich auf "ungleich" (x=6) erlaubt für den 2. Parameter auch andere Werte (z.B. Text), doch Parameter 1 muss eine Zahl sein (z.B. -255)
Variable zur Speicherung vom Benutzer einstellbar Bedeutung
%ws_setmem[x]=zzzzz% Für den Parameter x können Werte von 1 - 32 gewählt werden
zzzzzz können Variable oder auch Text sein.
Diese Variable macht nur Sinn im Zusammenhang mit der Variablen
%ws_getmem[x]%
praktisches Beispiel
ergibt
%ws_setmem[1]=heute scheint die Sonne%  
%ws_getmem[1]%   heute scheint die Sonne
Hier stehen dem Benutzer insgesamt 64 Speichervariablen zur Verfügung.
Nutzen diese Variablenart: Es kann also jede Menge Variablen (vor allem aus templates) zwischengespeichert werden und in einer anderen Datei (z.B. custom.txt) ausgegeben werden.
Dazu gibt es noch eine Besonderheit:
%ws_getmem_yest% entsprechend steht die Variable für Woche, Monat, Jahr zur Verfügung , z.B. %ws_getmem_y% es wird abgefragt, ob das Yesterdaytemplate (template_yest.txt) seit Programmstart bereits abgearbeitet wurde

Weitere Anwendungsbeispiele zu dieser neuen Variablenart sind hier zu finden.

Datenschutzerklärung