WSWIN-Variablen Grundkurs von Matthias Krücke, homepage: http://www.woldegk-wetter.de Jede WSWIN-Variable beginnt mit einem %-Zeichen und endet auch mit diesem. Fehlt es, funktioniert die Variable nicht! Gleiches gilt für Speichervariablen (%ws_setmem[1]=xyz%) oder auch Berechnungsvariablen (%ws_calc[+]=2~3~0%) etc. Es gibt die Speichervariablen (%ws_setmem[xyz]=Text oder Berechnung%), dabei ist xyz die Speichernummer (1-128). Damit kann ich dann das Gespeicherte an beliebiger Stelle (sofern ich nicht vorher die gleiche Speichernummer anderweitig benutzt habe!!!) mit der Variablen %ws_getmem[xyz]% hervorholen, entweder als Ergebnis oder auch zur Weiterverarbeitung nutzen. Füge ich in eine Speichervariable eine WSWIN-Variable ein, z.B. die akt. Aussentemperatur %curval[0]%, so sieht das ganze so aus: %ws_setmem[1]=%curval[0]%%. Sowohl die Speichervariable, als auch die Varaible der Außentemperatur benötigen die %-Zeichen am Anfang und Ende! In diesem Falle stehen am Ende also zwei!! %-Zeichen. Gleiches gilt auch für die Vergleichsvariable %ws_compare[x]=...% Hier mal ein Beispiel für die Aussage kein Frost, Frost oder Dauerfrost: Vergleiche ob die 24h Mintemp. unter 0° ist. Wenn ja, dann 1 sonst 0. %ws_setmem[1]=%ws_compare[5]=%minval[0]%~0~1~0%% Vergleiche ob die 24h Maxtemp. unter 0° ist. Wenn ja, dann 2 sonst 0. %ws_setmem[2]=%ws_compare[5]=%maxval[0]%~0~2~0%% Wert aus Speichervariable 1 + 2 addieren und in sm3 speichern. %ws_setmem[3]=%ws_calc[+]=%ws_getmem[1]%~%ws_getmem[2]%~0%% Jetzt wird verglichen: %ws_setmem[4]=%ws_compare[3]=%ws_getmem[3]%~1~Frost~keinen Frost%% %ws_compare[3]=%ws_getmem[3]%~3~Dauerfrost~%ws_getmem[4]%% Will ich das Ergebnis zwischenspeichern, um es andere Stelle zu verwenden, sieht das z.B. so aus: %ws_setmem[5]=%ws_compare[3]=%ws_getmem[3]%~3~Dauerfrost~%ws_getmem[4]%%% In diesem Falle endet die Variablenberechnung mit 3%-Zeichen! Einmal für die Speichervariable %ws_setmem[5]=...; dann für die Vergleichsvariable %ws_compare[3]=...; und (weil am Ende innerhalb der Vergleichsvariablen) für %ws_getmem[4]%. Bei Berechnungen oder Vergleichen müssen die Einheiten ausgeschaltet werden!!! %unit_off% und %unit_on% dürfen nicht in einer Zeile stehen, sonst bleiben die Einheiten ausgeschaltet! Nach der Berechnung sollte man die Einheiten mit %unit_on% wieder einschalten, da sie sonst für den Rest des Scriptes (od. sogar für die nachfolgenden Scripte) ausgeschaltet bleiben! Die komplette Nummer als Berechnung: %unit_off% %ws_setmem[1]=%ws_compare[5]=%minval[0]%~0~1~0%% %ws_setmem[2]=%ws_compare[5]=%maxval[0]%~0~2~0%% %ws_setmem[3]=%ws_calc[+]=%ws_getmem[1]%~%ws_getmem[2]%~0%% %ws_setmem[4]=%ws_compare[3]=%ws_getmem[3]%~1~Frost~keinen Frost%% zur Zeit haben wir %ws_compare[3]=%ws_getmem[3]%~3~Dauerfrost~%ws_getmem[4]%% %unit_on% Oder auch so, hier wird ein Vergleich im Vergleich gemacht: %unit_off% %ws_setmem[1]=%ws_compare[5]=%minval[0]%~0~1~0%% %ws_setmem[2]=%ws_compare[5]=%maxval[0]%~0~2~0%% %ws_setmem[3]=%ws_calc[+]=%ws_getmem[1]%~%ws_getmem[2]%~0%% zur Zeit haben wir %ws_compare[3]=%ws_getmem[3]%~3~Dauerfrost~%ws_compare[2]=%ws_getmem[1]%~1~Frost~keinen Frost%% %unit_on% Bei dieser Variante gibt es eine Besonderheit: in einer Berechnungsvariable darf NICHT 2x der gleiche Vergleich stehen. Also 2x %ws_compare[3]= hintereinander geht nicht. Usereinstellungen Viele meiner Scripte haben individuelle Usereinstellungen, wo man bestimmte Parameter hinterlegen kann. Alle diese Usereinstellungen nutzen die Speichervariable %ws_setmem[xyz]=%. Der häufigste Fehler, der hier gemacht wird, ist das fehlende %-Zeichen am Ende. Beispiel: - es soll ein Monat hinterlegt werden, entweder als fester Wert (z.B. für Mai = 05) oder auch als aktueller Monat (%ws_month2%). %ws_setmem[128]=05% oder mit aktuellem Monat %ws_setmem[128]=%ws_month2%% Im letzen Falle stehen dann logischerweise am Ende der Eingabe 2 %-Zeichen!! ------------------------------------------------- Update 28.01.2019 | Hauptvariablen zur Berechnung Zu dieser Gruppe gehört: die Vergleichsvariable %ws_compare[x]=w1~w2~richtig~falsch% die Berechnungsvariable %ws_calc[x]=w1~w2~Dezimalstellen% Grundsätzlich müssen die Einheiten bei jedem Vergleich oder Berechnung ausgeschaltet werden - s.o.. --- Die Vergleichsvariable: %ws_compare[x]=w1~w2~richtig~falsch% Dabei steht das x für die Vergleichsart (größer >; kleiner <; gleich =; größer-oder-gleich >=; und kleiner-oder-gleich <=). Für jede dieser Vergleichsarten ist eine Ziffer vorgesehen: größer=1; kleiner=5; gleich=3; größer-oder-gleich=2; kleiner-oder-gleich=4 w1 und w2 sind die vergleichsparameter (Zahlenwerte) Beispiele: %ws_compare[1]=25~30~richtig~falsch% (ist 25 größer 30?) # falsch Für das Ergebnis ~richtig~falsch% kann man selbstverständlich auch andere Variablen einsetzen. Beispiele: %ws_compare[5]=%curval[0]%~0~Schnee bleibt liegen~Tauwetter% # ist die Außentemp. <0°C dann; "Schnee bleibt liegen", sonst: "Tauwetter" %ws_compare[2]=%curval[35]%~30~%curval[44]%~%curval[0]%% # wenn die Windgeschwindigkeit >=30km/h dann windchill, sonst Außentemp. --- Die Berechnungsvariable: %ws_calc[x]=w1~w2~Dezimalstellen% Dabei steht das x für die Funktion der vier Grundrechenarten + - / * w1 und w2 sind die zu berechnenden Zahlenwerte Beispiele: %ws_calc[+]=13,123~15,123~0% #28 %ws_calc[+]=13,123~15,123~3% #28,246 %ws_calc[-]=%curval[45]%~%curval[35]%~2% # Böen - Wind = Differenz in km/h --- Die calcmem-Variable (%ws_calcmem[x]=memstart~memend~Dezimalstellen%) ermöglicht es, gespeicherten Werte in einem "Zug" zu berechnen. Dabei steht das x für Addition + und Mittelwert 0. Es ist darauf zu achten, daß die Berechnungsreihe der Speichervariablen (Nummern für x, %ws_setmem[x]=a%) zusammenhängend ist, Start und Ende sind frei wählbar. Statt fester Zahlenwerte (2,1; 3,2; 4,3 ...) können auch Sensorwerte und/oder Werte aus zuvor gespeicherten Berechnungen eingesetzt werden. Beispiele: %ws_setmem[1]=2,1% %ws_setmem[2]=3,2% %ws_setmem[3]=4,3% %ws_setmem[4]=5,4% %ws_setmem[5]=6,5% %ws_calcmem[+]=1~5~1% # 21,5 %ws_calcmem[+]=2~4~2% # 12,90 %ws_calcmem[0]=1~5~1% # 4,0 %ws_calcmem[0]=2~4~2% # 4,30 --- Beispielberechnung für Schneebedingungen Berechnung kann so direkt in eine benutzerdefinierten Datei (custom.txt) übernommen werden. Das dafür verwendete Icon kann man unter folgender Adresse runtergeladen - und in den html-Ordner kopiert werden: http://www.woldegk-wetter.de/snowheight.jpg %unit_off% %ws_compare[1]=%snowheight%~0~~% %unit_on% Erläuterung zur Programmierung/Berechnung: %ws_compare[1]=%snowheight%~0~~