Seite 1 von 1

Variable in der Vergangenheit fehlerhaft

Verfasst: 13 Mai 2010 22:23
von Mado
Möchte für den Wetterdatenvergleich der Temperatur die Durchschnittstemperatur in WSWin automatisch erzeugen lassen.

Habe hier folgende Variable gefunden:

%avgvalpast[id~dd~mm~yyyy]%

Habe dann eine Datei erstellt mit folgendem Inhalt:

<!-- %customfile=temperatur.txt% -->
%unit_off%%alwaysseppoint_on%
Datum;y2003;y2004;y2005;y2006;y2007;y2008;y2009;y2010
01.01.;%avgvalpast[2~01~01~2003]%;%avgvalpast[2~01~01~2004]%;%avgvalpast[2~01~01~2005]%;%avgvalpast[2~01~01~2006]%


Heraus kommt folgender Mist:

Datum;y2003;y2004;y2005;y2006;y2007;y2008;y2009;y2010
01.01.;6.1;-2.1;1.3;%avgvalpast[2~01~01~2006]%


Kann WSWin nicht mehr als drei Werte mit dieser Variable, der Durchschnitt-Temperatur des Tages ausgeben? Wenn ich bis 2010 die Zeichenfolge ergänze, werden mir von den anderen Jahren, die Werte nicht geschrieben.

Verfasst: 14 Mai 2010 09:50
von joergeli
Hallo Manfred,
Kann WSWin nicht mehr als drei Werte mit dieser Variable....
Ich glaube (kann mich aber auch irren), WsWIN kann leider nicht mehr als drei gleiche Variablen in einer Zeile ausgeben.
Schreib die Ausgabevariablen mal probehalber untereinander, d.h. jeweils in eine neue Zeile und teste dann noch mal.

Ich hatte ähnliche Probleme, als ich meinen "Wetter-Monatsvergleich" ( http://www.joergeli.de/longtime.php ) erstellt habe.
Das wollte ich zuerst via %templatebegin% realisieren, aber da traten dann die gleichen Effekte auf.
Jetzt mache ich es so, daß ich mühsam die Werte manuell ergänze.

Gruß
Jörg

Verfasst: 14 Mai 2010 10:42
von Mado
Habe Testweise eine neue Zeile unterhalb erstellt, und es werden auch nur drei Zeilen erstellt. Mehr wie vier sind nicht möglich.

Wäre schön, wenn man dies mit den Variablen realisieren kann. Muss hier einen anderen Weg versuchen, da das manuelle Eintragen recht Zeitintensiv ist.

Verfasst: 14 Mai 2010 12:30
von joergeli
Hallo Manfred,

mit untereinander meinte ich wie folgt:

Code: Alles auswählen

<!-- %customfile=temperatur.txt% -->
%unit_off%%alwaysseppoint_on%


2003&#58; %avgvalpast&#91;2~01~01~2003&#93;%;2004&#58; %avgvalpast&#91;2~01~01~2004&#93;%;2005&#58; %avgvalpast&#91;2~01~01~2005&#93;%;2006&#58; %avgvalpast&#91;2~01~01~2006&#93;%;2007&#58; %avgvalpast&#91;2~01~01~2007&#93;%;2008&#58; %avgvalpast&#91;2~01~01~2008&#93;%;2009&#58; %avgvalpast&#91;2~01~01~2009&#93;%;2010&#58; %avgvalpast&#91;2~01~01~2010&#93;%

__________________________________________________________________


2003&#58; %avgvalpast&#91;2~01~01~2003&#93;%
2004&#58; %avgvalpast&#91;2~01~01~2004&#93;%
2005&#58; %avgvalpast&#91;2~01~01~2005&#93;%
2006&#58; %avgvalpast&#91;2~01~01~2006&#93;%
2007&#58; %avgvalpast&#91;2~01~01~2007&#93;%
2008&#58; %avgvalpast&#91;2~01~01~2008&#93;%
2009&#58; %avgvalpast&#91;2~01~01~2009&#93;%
2010&#58; %avgvalpast&#91;2~01~01~2010&#93;%
Im ersten Teil ist die Zeile durchgängig geschrieben (wird hier durch die Forumsdarstellung umgebrochen) --> funktioniert nicht wie gewünscht.
Im zweiten Teil stehen die gleichen Variablen jeweils in einer neuen Zeile --> Ergebnis stimmt.

Ausgabe (temperatur.txt):

Code: Alles auswählen

2003&#58; ;2004&#58; ;2005&#58; ;2006&#58; %avgvalpast&#91;2~01~01~2006&#93;%;2007&#58; %avgvalpast&#91;2~01~01~2007&#93;%;2008&#58; %avgvalpast&#91;2~01~01~2008&#93;%;2009&#58; %avgvalpast&#91;2~01~01~2009&#93;%;2010&#58; %avgvalpast&#91;2~01~01~2010&#93;%

__________________________________________________________________


2003&#58; 
2004&#58; 
2005&#58; 
2006&#58; 0.0
2007&#58; 6.8
2008&#58; -1.7
2009&#58; -4.8
2010&#58; -0.8
(Hinweis: Bei mir liegen die Daten erst ab 01.06.2006 vor, deshalb fehlen Werte aus früheren Jahren.)

Gruß
Jörg

Verfasst: 14 Mai 2010 13:34
von Mado
Diesen Vorschlag für die Wetterdaten kann ich so für das Flash-Diagramm so nicht verwenden, da die Zeichenfolge alle in einer Reihe stehen müssen, sonst werden die im Diagramm nicht korrekt angezeigt.
Datum;y2006;y2007;y2008;y2009;y2010
01.01.;6.1;-2;1.5;0.5;6.5;-2.9;0.6;1.4
02.01.;9.8;-4.1;2.5;0.1;1.9;-3.6;-2.7;-3.2
03.01.;6.7;-7.5;1.5;0.2;2.9;-3.9;-5.9;-5.4
04.01.;5.3;-5.4;1.3;-0.9;3.5;-3.3;-6.5;-6.7
05.01.;-0.9;-1.4;2.1;-1.4;4.3;0.8;-4.8;-6.9
06.01.;-3.3;0.7;4;-1.9;5.9;2.5;-5.1;-4.8
07.01.;-4.4;0.9;3.6;-3.1;4.6;3.1;-6.8;-4.3
08.01.;-7.2;0.2;3.3;-4;5;0.9;-8;-4.0
09.01.;-9;2;5.2;-5.3;8.5;1;-10.9;-5.5
10.01.;-8.6;1.8;2.5;-6.6;6.9;2.8;-11.4;-4.8
11.01.;-7.1;5.1;2.5;-8.1;8;1.5;-10.5;-4.1
12.01.;-9.4;4.8;3;-5.9;6.6;1.5;-10.1;-4.0
13.01.;-6.3;7.2;2.6;-8.5;6.1;0.4;-8.4;-4.3
Für diese Erstellung der oberen Daten, müsste die Variable hier so aussehen:
<!-- %customfile=temperatur.txt% -->
%unit_off%%alwaysseppoint_on%
Datum;y2006;y2007;y2008;y2009;y2010
01.01.;%avgvalpast[2~01~01~2006]%;%avgvalpast[2~01~01~2007]%;%avgvalpast[2~01~01~2008]%;%avgvalpast[2~01~01~2009]%;%avgvalpast[2~01~01~2010]%
02.01.;%avgvalpast[2~02~01~2006]%;%avgvalpast[2~02~01~2007]%;%avgvalpast[2~02~01~2008]%;%avgvalpast[2~02~01~2009]%;%avgvalpast[2~02~01~2010]%
03.01.;%avgvalpast[2~03~01~2006]%;%avgvalpast[2~03~01~2007]%;%avgvalpast[2~03~01~2008]%;%avgvalpast[2~03~01~2009]%;%avgvalpast[2~03~01~2010]%
So mit diesen eingetragenen Variablen, werden nur Daten bis 2008 ausgegeben in der Datei, aber für 2009 und 2010 werden keine Daten eingetragen.

Verfasst: 14 Mai 2010 17:57
von Werner
@Manfred,

in der Doku steht eindeutig:
Die gleiche Variable darf max. 2x in einer Zeile vorkommen V2.83.0
... Du hast da sogar einen BONUS erhalten.

Was soll das mit Deiner Aussage?

Werner

Verfasst: 14 Mai 2010 19:33
von joergeli
Hallo Manfred,

mein obiges Geschreibsel war kein Vorschlag, sondern eine Feststellung :wink:
Diesen Vorschlag für die Wetterdaten kann ich so für das Flash-Diagramm so nicht verwenden,
da die Zeichenfolge alle in einer Reihe stehen müssen, sonst werden die im Diagramm nicht korrekt angezeigt.
Nicht unbedingt - ich gehe mal davon aus, dass Du die Werte mit den amCharts darstellen möchtest ?

Eine Möglichkeit wäre, die amLine-Charts zu verwenden.
Das zugehörige Template, um daraus eine Daten-XML-Datei für die Charts zu erstellen, könnte so aussehen:

Code: Alles auswählen

<!-- %customfile=amline_data.xml% --> %ws_delline%
%unit_off%%alwaysseppoint_on%  %ws_delline%
<?xml version="1.0" encoding="UTF-8"?>
<chart>
	<series>
		<value xid="0">01.01</value>
		<value xid="1">02.01</value>
		<value xid="2">03.01</value>
		<value xid="3">04.01</value>	
	</series>
	<graphs>
		<graph gid="2010">
			<value xid="0">%avgvalpast&#91;2~01~01~2010&#93;%</value>
			<value xid="1">%avgvalpast&#91;2~02~01~2010&#93;%</value>
			<value xid="2">%avgvalpast&#91;2~03~01~2010&#93;%</value>
			<value xid="3">%avgvalpast&#91;2~04~01~2010&#93;%</value>			
		</graph>
		<graph gid="2009">
			<value xid="0">%avgvalpast&#91;2~01~01~2009&#93;%</value>
			<value xid="1">%avgvalpast&#91;2~02~01~2009&#93;%</value>
			<value xid="2">%avgvalpast&#91;2~03~01~2009&#93;%</value>
			<value xid="3">%avgvalpast&#91;2~04~01~2009&#93;%</value>			
		</graph>
		<graph gid="2008">
			<value xid="0">%avgvalpast&#91;2~01~01~2008&#93;%</value>
			<value xid="1">%avgvalpast&#91;2~02~01~2008&#93;%</value>
			<value xid="2">%avgvalpast&#91;2~03~01~2008&#93;%</value>
			<value xid="3">%avgvalpast&#91;2~04~01~2008&#93;%</value>			
		</graph>
	</graphs>
</chart>
Dann hast Du das jeweilige Datum auf der X-Achse und die entspr. Tageswerte auf der Y-Achse.
Dieses Beispiel-Template ist aber nicht vollständig, denn man muss natürlich jeden Tag des Jahres definieren,
also insgesamt 365 Einträge im Abschnitt <series>

Im jeweiligen <graph> Abschnitt müssen natürlich auch 365 Variablen für jedes Jahr definiert werden.

Unmöglich ist es also nicht, ob es so allerdings Sinn macht (Zeit die WsWIN braucht, um das Template abzuarbeiten und resultierende Dateigröße),
steht auf einem anderen Blatt :wink:

Gruß
Jörg

Verfasst: 15 Mai 2010 10:04
von Mado
Vermutlich muss ich dies übersehen haben, dass hier nur 2 Werte pro Zeile erstellt werden. Aber mit der Lösung die ich nun erstellt habe, kann ich mal so arbeiten.

Verfasst: 15 Mai 2010 11:46
von joergeli
Hallo Manfred,

lass uns nicht dumm sterben, wie sieht Deine jetzige Lösung aus :?:

Gruß
Jörg

Verfasst: 15 Mai 2010 15:25
von Mado
Nun habe ich hier eine folgende Lösung gemacht:

Zwar ist es mit WSWin nicht mehr möglich, mehr als drei Zeilen in einer Reihe zu stellen. Hier ist es recht Zeitaufwendig, die Werte manuell zu ergänzen für die amLine-Charts zu verwenden. Also habe ich schon eine bestehenden Zahlenwert aus den Durchschnitts-Temperaturen des jeweiligen Tages der vergangenen Jahren, in die Vorlage eingefügt.

Nur musste ich hinter den Zahlen noch die Variable einfügen, die dann auch dann so erstellt wird. Aber nur für dieses Jahr habe ich eine Variable am Schluss eingefügt. Für nächsten folgenden Tagen, muss ich bloß die Variable dementsprechend anpassen, dies ist in ein paar Minuten erledigt.

Unter Einstellungen "CFG Custum Datei" wurde hier noch ein Eintrag hinzu gefügt. Um zu vermeiden, dass diese Variable alle fünf Minuten abgearbeitet wird, habe ich vor dem Dateinamen ein # eingefügt. Hier kann ich dann wenn ich diese Daten aktuell halten will, dieses Zeichen wieder entfernen. Auch bei den Min-Max-Werten habe ich eine andere Variable eingefügt, und wird ohne Probleme abgearbeitet.

Verfasst: 15 Mai 2010 19:39
von joergeli
@Manfred,
Also habe ich schon eine bestehenden Zahlenwert aus den Durchschnitts-Temperaturen des jeweiligen Tages der vergangenen Jahren, in die Vorlage eingefügt.

Nur musste ich hinter den Zahlen noch die Variable einfügen, die dann auch dann so erstellt wird. Aber nur für dieses Jahr habe ich eine Variable am Schluss eingefügt. Für nächsten folgenden Tagen, muss ich bloß die Variable dementsprechend anpassen, dies ist in ein paar Minuten erledigt.
Ist also- wenn ich's recht verstehe - "halbautomatisch" :wink:
Vorjahreswerte trägst Du manuell ein und nur die Werte für das aktuelle Jahr werden per Variable generiert.
Das heißt, Du musst beim nächten Jahresbeginn die Werte des Vorjahres dann wieder manuell eintragen und die Variable auf das neue Jahr anpassen
(bzw. Du könntest auch die Werte für die letzten 3 Jahre per Variable generieren lassen, denn max. 3 gleiche Variablen funktionieren ja in einer Zeile).

Guter Workaround !
____________________________________________________

Noch ein Tipp, damit die Datei nicht alle 5 Min. erstellt wird:
Falls Du ein Monats-, oder Jahrestemplate (template_m.txt / template_y.txt ) verwendest, "häng" Dein Template einfach an diese Datei an.
(Das funktioniert genau so, wie mit der custom.txt).

z.B. template_m.txt :

Code: Alles auswählen

<!-- %customfile=.html% -->
<!-- %openfile=temperatur.txt% -->
...
Code für die Monats-HTML-Datei ...
...
...
Hier wird zuerst die Monatsdatei erstellt und anschließend Deine temperatur.txt abgearbeitet.

Sieht also genau so aus, wie in der custom.txt, der Vorteil ist aber, daß Du die Häufigkeit, mit der das Monats-, bzw. Jahrestemplate abgearbeitet wird, in WsWIN einstellen kannst:
Unter "Internet" --> "Einstellungen" bei "automatisch Internet-Dateien aktualisieren" kannst Du (neben einem Offset) festlegen, ob das Monats-Template z.B. alle 1, 2, 3, 6, 12, 24 h aktualisiert werden soll.

Falls Du kein Monats-/Jahrestemplate verwendest, könntest Du auch anstatt dessen Dein Template abarbeiten lassen, in dem Du Dein Template einfach template_m.txt benennst, der Inhalt aber Deinen Code enthält. Dann wird anstatt der Monatsdatei alle x Stunden Deine temperatur.txt abgearbeitet:

template_m.txt :

Code: Alles auswählen

<!-- %customfile=temperatur.txt% -->
...
Dein Code ...
...
...
...
Gruß
Jörg