Variablen und Javascript Frage

Fragen, Anregungen zur PC-Wetterstations-Software

Moderatoren: Werner, Tex, weneu

Antworten
jupppo

Variablen und Javascript Frage

Beitrag von jupppo »

Hallo Zusammen,

ich möchte mir meine eigene Wettervorhersage basteln. Ich habe dazu Daten von einem Jahr analysiert und denke die Vorhersagegenauigkeit deutlich steigern zu könne, da ich einige Korrelationen gefunden habe.
Anhand der historischen Daten, habe ich eine zu erwartende Genauigkeit von 78% errechnet für eine 4h Vorhersage.

Dies bezieht sich aber nur auf meine lokalen Wetterwerte. Die Daten von einer Station eines Freundes gehen dann nur auf 71% hoch.

Natürlich möchte ich das gerne an Livedaten testen.

Dies würde ich gerne in Javascript machen, in dem ich einige Parameter vergleiche und einen eigenen Text ausgebe. Wie das mit dem Rechnen der Variablen funktioniert habe ich verstanden. Nun aber zur Ausgabe, dem eigentlichen Kernstück zur Verbesserung.

Dazu 2 Fragen:

1) Gibt es eine Liste der kompletten Übergabeparameter der WSWIN Variablen?
Beispiel: %ws_barotendencytxt% gibt steigend, fallend und gleichbleibend aus. Gibt es noch mehr?
Am besten wäre eine Liste oder ein Excelsheet diesbezüglich. ich weiß das einige Daten Wetterstionsabhängig sind. Ich habe mir gerade die Nexus geholt (bin sehr zufrieden mit der Station und der WSWIN Software).

Wäre toll wenn es sowas gibt!

2) Die eigentliche Umsetzung in Javascript bereitet mir noch Schwierigkeiten, da ich nur "kopieren und anpassen kann, aber nicht richtig Programmieren.

Ich möchte dazu einige Werte vergleichen und anders ausgeben.
Wie das einfach geht habe ich schon hier im Forum gesehen:

var forecast = "%forecast_txt%"; // hier werden die verschiedenen Werte von der Wettersoftware eingesetzt
switch(forecast)
{
case "sonnig": document.write("Dat Sünnsche laach");
}
.
.
.

Nun würde ich die Forecastvariable gerne mit einigen anderen Variablen korrigieren.


Beispiel (Nicht richtig, aber zur Anschauung):

case %forecast_txt% = "sonnig" AND %tempchange[0]=60%=>"-3" AND %ws_barotendencytxt% = "fallend" :document.write("Aufzug von Bewölkung");

Vielleicht kann mir jemand einen kleinen Tippn geben :idea:


Danke schomal vorab.

Grüße

Jupppo
Benutzeravatar
weneu
Site Admin
Beiträge: 11572
Registriert: 22 Feb 2002 01:00
Wohnort: Donauwörth
Danksagung erhalten: 18 mal
Kontaktdaten:

Beitrag von weneu »

Hallo Juppo,
zu (1)
Lade dir aus dem Userverzeichnis die "ws_variables.txt"
Dort sind alle Variabeln aufgelistet.
zu(2)
Die Frage verstehe ich jetzt nicht ganz, aber auf alle Fälle müsstest Du das javascript als eine benutzerdefinierte Datei z.B. über die custom-Schiene abarbeiten lassen, damit die WSWIN-Variablen durch die echten Werte ersetzt werden.
ath
Beiträge: 212
Registriert: 17 Sep 2004 05:53
Wohnort: Mönchengladbach
Kontaktdaten:

Beitrag von ath »

Hallo Juppo,

Werner hat Recht. Du mußt Deine Datei von WsWIN über die Custom Schiene erzeugen lassen. Woher soll sonst aus %forecast_txt% der Vorhersagetext werden.

Das bedeutet aber auch, daß Du den kompletten HTML-Code Deiner Seite incl. Javascript über WsWIN und die Custom-Schiene erzeugen lassen mußt, d.h. Du mußt auch alle weitern Elemente Deiner .HTML Seite in der .TXT Datei hinterlegen. Hier ein Beispiel für einen benutzerdefinierten Graphik: <p><IMG>&nbsp;</p>

In einem ersten Schritt kannst Du aber auch nur Dein JavaScript so von WsWIN erzeugen lassen. Dadurch werden dann die Variablen wie bspw. %forecast_txt% ersetzt. Nun öffnest Du die so erstellte .HTML-Datei (die ja nur das JavaScript enthält) mit einem Texteditor und kopierst das Script in Deine eigentliche HTML-Seite anstelle des ursprünglichen Scripts und kannst wenigstens schonmal testen.
Gruß aus Mönchengladbach
Andreas

http://www.nierswetter.de
jupppo

Beitrag von jupppo »

Hallo Zusammen,

danke erstmal. Ich denke ich hab nicht nicht so verständlich ausgedrückt :oops:

Das ich die HTML Seite über WSWin laufen lassen muss war mir schon klar. Die Frage bezog sich auch nur auf die eigentliche Javascript Programmierung!

So versuche ich meherer Parameter miteinander logisch zu verknüpfen, komme aber nicht weiter.

Hier ist noch ein Beispiel von gestern Abend:


var forecast1 = "leicht bewölkt";
var barotrend = "gleichbleibend"

switch(forecast1)
{
case "sonnig": a=100;
break;
case "leicht bewölkt": a=200;
break;
case "bewölkt": a=300;
break;
case "regnerisch": a=400;
break;
case "veränderlich": a=500;
break;
case "Schneefall": a=600;
break;
case "gewittrig": a=700;
break;
case "stürmisch": a=800;
break;
case "Regen+veränderlich": a=900;
break;
case "Schneeregen": a=1000;
break;
case "Schnee+veränderlich" : a=1100;
break;
case "Schneeregen+veränderlich" : a=1200;
break;
default: a=0;
break;
}

switch(barotrend)
{
case "steigend": b=1;
break;
case "gleichbleibend": b=2;
break;
case "fallend": b=3;
break;
c = a + b;
case c = 202 : document.write("et hätt geklapp");
break;
}

Das funktioniert aber nicht. Irgendwo ist da ein Denkfehler drin!

Zu der erwähnten Datei ws_variables.txt.
Die hatte ich schon gefunden. Dort sind zwar alle Variablen drin, jedoch nicht die Übergabeparameter. Als Beispiel möchte ich wieder %forecast_txt% nennen. Es ist beschrieben, was diese Variable ist, aber nicht welche Werte sie annehmen kann, heisst: Mit welchen möglichen Werten versieht wswin diese Variable?
Dies wäre für alle Textvariablen interessant!


Grüße

Jupppo
ath
Beiträge: 212
Registriert: 17 Sep 2004 05:53
Wohnort: Mönchengladbach
Kontaktdaten:

Beitrag von ath »

Hallo Juppo,

ach so, daß ist die Frage. Warst dicht dran und es funktioniert, wenn Du dein Script so aufbaust:

<script>
var forecast1 = "leicht bewölkt";
var barotrend = "gleichbleibend";
var a = 0;
var b = 0;
var c = 0;
switch(forecast1)
{
case "sonnig": a=100;
break;
case "leicht bewölkt": a=200;
break;
case "bewölkt": a=300;
break;
case "regnerisch": a=400;
break;
case "veränderlich": a=500;
break;
case "Schneefall": a=600;
break;
case "gewittrig": a=700;
break;
case "stürmisch": a=800;
break;
case "Regen+veränderlich": a=900;
break;
case "Schneeregen": a=1000;
break;
case "Schnee+veränderlich" : a=1100;
break;
case "Schneeregen+veränderlich" : a=1200;
break;
default: a=0;
break;
}

switch(barotrend)
{
case "steigend": b=1;
break;
case "gleichbleibend": b=2;
break;
case "fallend": b=3;
break;

}
c = a + b;
alert(c);

</script>

Schau Dir mal an, wo ich die Berechnungen gemacht habe: Außerhalb der Break-Anweisung. Du setzt b = 2 und beendest mit break das case statement. Gerechnet wird da nichts mehr. Mache es außerhalb oder nach jeder Wertzuweisung an b und es funktioniert. Störe dich nicht daran, daß ich die Variablen a, b und c am Anfang definiert habe. Ist eine Marotte von mir.
Gruß aus Mönchengladbach
Andreas

http://www.nierswetter.de
jupppo

Beitrag von jupppo »

Klasse herzlichen Dank!!!
Antworten