Beispiel zum Auslesen von www.wetter.net

Hallo HJH,

habe diese :confused: auch gerade bemerkt aber andes gelöst

Hallo Ralf,

kein Wunder!

Du übergibst der Funktion SetValueString(…) einen Integer-Wert. Diese erwartet natürlich keinen Integer sondern einen String.

Ersetze die Funktion intval(…) (liefert Integer) durch strval(…) (liefert String), dann stimmt zumindest der Datentyp, und die Fehlermeldung sollte ausbleiben.

Gruß
HJH

habe statt -SetValueString- einfach -SetValueInteger- gemacht aber was ist nun das Richtige ??´

Gruß Ralf

Das ‚richtige‘ hängt davon ab wie du deine IPS-Variable „max_temp_heute“ in IPS angelegt hast:

entweder du hast sie als String abgelegt: dann arbeitest du mit SetValueString und strval

oder du hast sie als Integer angelegt: dann arbeitest du mit SetValueInteger und intval

Gruss,
Olli

Hi Olli,

Also ich muß die Variable anlegen vor dem Sript lauf ist das Richtig ??
UND
was ist wann sinnvoll String bzw. Integer

:confused: Gruß Ralf

ODER
mal die frage anders gestellt wann setzt man String und wann Integer ein.

??Integer ist für Zahlen und String für Buchstaben??

Richtig.

Integer: ganze Zahlen ohne Nackommastellen
Float: Zahlen mit Nachkommastellen
String: Buchstaben bzw. Zeichenketten

Sorry wegen dem String/Integer Missverständnis: Copy&Paste hatte übel zugeschlagen :frowning: Ich korriegiere das mal gleich…

Gruss,
Olli

Hallo Olli,

kann man denn solche Bitmask auch kopieren um diese dann bei dem nächsten zustand zuverwenden?
Wenn Ja dann wie

Grüße Ralf

Hallo Olli!
Bin gerade mal dabei dein Script auszuprobieren.
Weiß aber nicht ob ich alles richtig mache.
Zurzeit mache ich für jeden Status ein eigenes Script und eine eigene Variable.
Ist das richtig?

<?
/*
*******************************
 IP-SYMCON Event Scripting
*******************************
File     : Min_temp_heute.ips.php
Trigger  : 
Interval : 
*/
$varname = "WETTER_www-wetter-net.Data";
$s       = GetValueString( $varname);
$data    = wddx_deserialize( $s);

//print_r( $data);

$min_temp_heute = $data['VORHERSAGE'][1]['TempMin'];

echo "$min_temp_heute";

SetValueString ("min_temp_heute", (string)$min_temp_heute);


?>

gehe dann auf Events>OnChance>Wetter_www-wetter-net…
Lege dann ein Variable mit dem Namen „min_temp_heute“ an.
Muß ich jetzt noch eine verzweigung machen von der Variablen zum „min_temp_heute“ ?

Dann gehe ich in den Designer und lege ein Label an.
Diesem weise ich nun unter Caption die gerade erstellte Variable „min_temp_heute“ zu und gebe On Chance an.
Ist das sowiet richtig, oder geht das auch anders?
Das muß ich jetzt füer „Morgens, mittags, nachts“ & „Heute, morgen, übermorgen“ machen?
Dann habe ich ja massen von scripten. :confused:
Wenn das so normal ist, ist das ja ok. :slight_smile:
Woran ich allerdings noch am Kämpfen bin ist die aktuelle Temparatur.
Mein jetziges Scipt sieht so aus, weiß aber nicht ob es richtig ist?

<?
/*
*******************************
 IP-SYMCON Event Scripting
*******************************
File     : Aktuelle_Temp.ips.php
Trigger  :
Interval :
*/
$varname = "WETTER_www-wetter-net.Data";
$s       = GetValueString( $varname);
$data    = wddx_deserialize( $s);

//print_r( $data);

$Aktuelle_Temp = $data['VORHERSAGE'][1]['Zustand1'];

echo $Aktuelle_Temp;

SetValueString ("Aktuelle_Temp", (string)$Aktuelle_Temp);


?>

Und dann noch eine letzte Frage:
Kann man nicht in einem Script alle Daten für z.B Heute eintragen und in einer Variable (Wetter_Heute" ausgeben?
Dann hat man nicht soviele Scripte.
Wie würde soetwas denn dann aussehen?
Habe mal alles mögliche in ein Script rein geschrieben, aber das hat nicht funktioniert.
Danke
Gruß
Xanon

Hi!
Ich glaube ich habe es jetzt doch alleine hin bekommen.
Weiß nur nicht ob die Daten auch richtig Aktualisiert werden.
Habe unter Timer Wizard den „Wetter_www-wetter-net_Getdata“ angegeben und einer Update zeit von 20 min. angegeben.
Mal Heute abend sehen.
Hier mal ein auszug von meiner „bisherigen“ Seite.
Gruß
Xanon

Hi Olli,

$dayindex = GetValueInteger( $prefix.".DayIndex");
if( $dayindex<1 || $dayindex>3)
{
$dayindex = 1;
SetVar( $prefix.".DayIndex", $dayindex);
}

switch( $dayindex)
{
case 1: $dayname = ‚Heute‘; break;
case 2: $dayname = ‚Morgen‘; break;
case 3: $dayname = ‚Übermorgen‘; break;
}

SetVar( $prefix.".DayString", $dayname);
SetVar( $prefix.".Icon1", $data[‚VORHERSAGE‘][$dayindex][‚Zustand1‘]);

mein Script läuft jetzt auch und würde gerne die Case funktion mit ein bauen um zwischen den drei vorhersage Tagen umzuschalten weis aber nicht welche Variable ich anlegen muß damit ich die enzelnen Tage per knopfdruck aufrufen kann.

hier mein Script ginge vieleicht einfacher aber es erfüllt seinen Zweck.

<?
/*
*******************************
 IP-SYMCON Event Scripting
*******************************
File     : VarUpdate_www-wetter-net.ips.php
Trigger  : 
Interval : 900 Sekunden
*/

$data = wddx_deserialize( GetValueString( "WETTER_www-wetter-net.Data") );
print_r( $data);

// Wetter Daten Heute
SetValueInteger ("Zustand_1_heute", intval($data['VORHERSAGE'][1]['Zustand1']) );
SetValueString ("Zustand_1_Text_heute", strval($data['VORHERSAGE'][1]['Zustand1_Text']) );
SetValueInteger ("Zustand_2_heute", intval($data['VORHERSAGE'][1]['Zustand2']) );
SetValueString ("Zustand_2_Text_heute", strval($data['VORHERSAGE'][1]['Zustand2_Text']) );
SetValueInteger ("Zustand_3_heute", intval($data['VORHERSAGE'][1]['Zustand3']) );
SetValueString ("Zustand_3_Text_heute", strval($data['VORHERSAGE'][1]['Zustand3_Text']) );
SetValueInteger ("max_temp_heute", intval($data['VORHERSAGE'][1]['TempMax']) );
SetValueInteger ("min_temp_heute", intval($data['VORHERSAGE'][1]['TempMin']) );
SetValueInteger ("Niederschlag_1_heute", intval($data['VORHERSAGE'][1]['Niederschlag1']) );
SetValueInteger ("Niederschlag_2_heute", intval($data['VORHERSAGE'][1]['Niederschlag2']) );
SetValueInteger ("Niederschlag_3_heute", intval($data['VORHERSAGE'][1]['Niederschlag3']) );
SetValueInteger ("Windrichtung_Symbol_heute", intval($data['VORHERSAGE'][1]['WindrichtungSymbol']) );
SetValueString ("Windrichtung_heute", strval($data['VORHERSAGE'][1]['Windrichtung']) );
SetValueInteger ("RelFeuchte_1_heute", intval($data['VORHERSAGE'][1]['RelFeuchte1']) );
SetValueInteger ("RelFeuchte_2_heute", intval($data['VORHERSAGE'][1]['RelFeuchte2']) );
SetValueInteger ("RelFeuchte_3_heute", intval($data['VORHERSAGE'][1]['RelFeuchte3']) );
SetValueInteger ("Windgeschwindigkeit_heute", intval($data['VORHERSAGE'][1]['Windgeschwindigkeit']) );

und noch eine Frage wie muß ich die Zeichenfolge z.B. bei Temp „°C“ mit einfügen das bei der Ausgabe mit index erscheint.

Grüße Ralf :wink:

Hallo!
Habe auch nochmal 2 Fragen:
1.

($data['VORHERSAGE'][1]['Zustand1']) );

Soll das die Temparatur am Morgen sein, oder die aktuelle temeratur?
Laut meiner auswertung ist es nämlich 7 Grad Morgen 5 Grad am Tag und 5 Grad am Abend.
Kann mir aber garnicht vorstellen, das es am Morgen wärmer ist als Tagsüber?
Also, was ist

 ($data['VORHERSAGE'][1]['Zustand1']) ); //Morgens??
($data['VORHERSAGE'][1]['Zustand2']) ); //Mittags?
($data['VORHERSAGE'][1]['Zustand3']) );//Abends??
  1. Wie bekomme ist die die Symbole in den Designer bzw. wo bekomme ich sie her?
    Habe diese Zeile im Script:
SetValueInteger ("WindrichtungSymbolheute", intval($data['VORHERSAGE'][1]['WindrichtungSymbol'])

Danke!
Xanon

Hi Xano,

mit diesem Script von Olli kannste deine Werte ganz einfach anschauen und mit den Temperaturen ist das so z.B. früh Regen und Abens Schnee :eek:

<?
/*
*******************************
IP-SYMCON Event Scripting
*******************************
File     : ShowData_www-wetter-net.ips.php
Trigger  : 
Interval : 
*/
$varname = "WETTER_www-wetter-net.Data";  // this ips-variable must be type 'String' !
$s       = GetValueString( $varname);
$data    = wddx_deserialize( $s);
print_r( $data);
?> 

und den Link zu den Wetter Symbolen ist hier,
http://www.wetter.net//images/symbole/k_ani1.gif

Wettersymbole von k_ani1 - 13 und Wind w1-8 + 10 + 27 - 34

wie Du die verarbeitest mußt Du weiter oben lesen ist ziemlich gut erklärt weil bei mir funktionierts

Gruß Ralf

und noch mal Danke an Olli

Hallo Ra-Be!
Vielen Dank!
Habe mir die Bilder mal runter geladen.
Werde sie heute abend mal probieren einzupflegen.
Aber nochmal zu dem Zustand!
Als erstes sagt er mir für Heute nicht Sprühregen, sondern „Morgen: Sprühregen“.
Kann man das ändern?
2. Zustand 1 scheint also die Morgentliche Tempearatur zu sein.
Bekommt man auch irgentdwie die „Tatsächliche Aktuelle Temperatur“?
3. Wenn die „Morgentliche Temperatur 14 Grad beträgt, warum sagt er mir denn, das die Maximale Temperatur für heute 8 Grad beträgt und nicht 14 Grad?“

       [Zustand1] =&gt; 14
                [Zustand1_Text] =&gt; Morgen: Sprühregen
                [Zustand2] =&gt; 7
                [Zustand2_Text] =&gt; Tag: Regen
                [Zustand3] =&gt; 7
                [Zustand3_Text] =&gt; Abend: Regen
                [TempMax] =&gt; 8
                [TempMin] =&gt; 2
                [Niederschlag1] =&gt; 60
                [Niederschlag2] =&gt; 90
                [Niederschlag3] =&gt; 90
                [WindrichtungSymbol] =&gt; 29
                [Windrichtung] =&gt; W
                [Windgeschwindigkeit] =&gt; 47
                [RelFeuchte1] =&gt; 87
                [RelFeuchte2] =&gt; 87
                [RelFeuchte3] =&gt; 90

Danke!
Gruß
Xanon

Hallo Xanox,

zu Sprühregen

$v = "Sprühregen"; 
$v = html_entity_decode( $v); 
echo $v; 

Zustand ist das Wetter Symbol.

Gruß Ralf

Hallo Ralf!
Vielen dank, für die nette Unterstützung!

$v = „Sprühregen“;
$v = html_entity_decode( $v);
echo $v;

1.Kannst du mir vielleicht noch sagen, wo ich das einsetzen soll?
Habe es in Ollis Script und im Update Script probiert.
Allerdings ohne Erfolg.

2.Habe das mit den Zustand nun begriffen :rolleyes:
Allerdings bei den Windrichtungssymbolen hapert es noch.
Bin deiner Anweisung gefolgt, und habe „Wind w1-8 + 10 + 27 - 34“
Das sind insgesammt 16 Symbole.
Allerdings habe ich nur Platz für 15 in der Bitmask.
Habe 34.gif weggelassen.

3.Mir sagt die Auswertung, das die Windrichtung Heute aus (W) Westen kommt.
Er läd aber das Symbol für Osten:confused:
Die Auswertung für Heute wäre demnach Windrichtungssymbol =29
Welches auch das Symbol für Widrichtung Osten ist!
Aber warum sagt mir die Auswertung gleichzeitig Windrichtung=W ???
Ich habe unter Bitmask die „Value“ gleich gemacht wie die Namen der Symbole.
Also Value 3 = w3.gif, Value 29 =w29.gif, …

Array
(
    [VORHERSAGE] => Array
        (
            [1] => Array
                (
                    [Zustand1] => 14
                    [Zustand1_Text] => Morgen: Sprühregen
                    [Zustand2] => 7
                    [Zustand2_Text] => Tag: Regen
                    [Zustand3] => 7
                    [Zustand3_Text] => Abend: Regen
                    [TempMax] => 8
                    [TempMin] => 2
                    [Niederschlag1] => 60
                    [Niederschlag2] => 90
                    [Niederschlag3] => 90
                    [WindrichtungSymbol] => 29
                    [Windrichtung] => W
                    [Windgeschwindigkeit] => 50
                    [RelFeuchte1] => 86
                    [RelFeuchte2] => 88
                    [RelFeuchte3] => 88
                )

Kann ich die Zustand Texte irgendwo ändern?
Also er sagt mir zurzeit z.B. „Morgen Sprühregen“
Kann ich das durch ergänzung irgendwie in z.B. „Am Morgen ist Sprühregen“ ?
Danke Gruß
Xanon

Hi Xanox,
zu 1 und 4 mußt du die Profis fragen weil soweit bin ich selber noch nicht:eek:

únd zu

3.Mir sagt die Auswertung, das die Windrichtung Heute aus (W) Westen kommt.
Er läd aber das Symbol für Osten

also wenn der Wind von westen kommt zeigt der Pfeil nach Osten.

Gruß Ralf

Hallo Ralf!

also wenn der Wind von westen kommt zeigt der Pfeil nach Osten.

Wie blöd bin ich eigentlich :confused:
Logisch :o

Vielen Dank!
Gruß
Xanon

Hallo Leute,

ich versuche seit Tagen das Wetter Brick ins System einzubinden (ohne grafische Ausgaben)- leider erfolglos.

Im Script Output Fenster kommen Werte an. Bei den Outputs erscheint jedoch nur N/A (siehe Screenshot). Mit den angegeben Skripts zum Übergeben in die Variablen kommt auch nichts an.

PLZ ist eingetragen
WETTER_www-wetter-net.Data ist als String angelegt
max_temp_heute ebenso

Ich habe von IPS noch Version:
1.21 Build#30

Kann es evtl an der älteren Version liegen?

Vielen Dank schonmal im Vorraus!

Andreas

Du musst bei den gewünschten Outputs Variablen definieren, damit dort Werte stehen und nicht mehr N/A.

Gruss,
Olli

@Olli

Danke, hatte wegen der geringen Auflösung nicht gesehen, daß dort Variablen auszuwählen sind :wink:

Lässt sich das aktuelle Wetter von www.wetter.net auch abfragen?
Damit ließen sich die ganzen Wettersensoren sparen.

Gruß,
Andreas

… Daten stehen hier: http://www.wetter.net/cgi-bin/wetter-net/wetter_stadt_ist.pl?ID=xxx
Dazu müßte Olli sein Skript noch etwas aufbohren …

MST

Nachtrag zur Wunschliste:

Astronomische Daten: Dämmerungsanfang / Ende - z.B. zur Steuerung der Außenbeleuchtung

@ steiner

Du kamst mir zuvor mit dem Wunsch. Auch diese Daten sind sehr sinnvoll.
Wozu einen Riesen Hardwareberg verbauen wenn alles im Internet steht!:rolleyes: