Wetterdaten an AWEKAS senden

Hallo Community,

yeah - habe gerade erfolgreich die Überragung an den AWEKAS Server von Othmar Gattringer aktiviert - Link hier. Mit der neuen Übertragungsmethode ‚Direct Link‘ ist das alles nun sehr einfach und ich stelle meine aktuellen Wetterdaten alle 5 Minuten bereit.

Das folgende Script wird alle 5 Minuten aufgerufen:

<?
/*
*******************************
 IP-SYMCON Event Scripting
*******************************
File     : AWEKAS.ips.php
Trigger  : 
Interval : every 5 minutes
*/
$ur = 'userid';
$pw = 'password';
$str1= 'http://www.awekas.at/extern/eingabe_pruefung.php?val=';
$str2= $ur.";".md5($pw).";";
$str3=date("d.m.Y") . ";" . date("H:i").";";
$str4=number_format(GetValueFloat("Out_Temperature"),1,'.','').";";
$str5=GetValueInteger("Out_Humidity").";";
$str6=number_format(GetValueFloat("OW_Airpressure"),1,'.','').";";
$str7=number_format(GetValueFloat("IN_RAIN_TODAY"),1,'.','').";";
$str8=number_format(GetValueFloat("IN_FS10_WIND_SPEED"),1,'.','').";";
$str9=GetValueInteger("IN_FS10_WIND_DIRECTION").";";
$strE = "".";";   // Value not in use (empty)

$fd = fopen($str1.$str2.$str3.$str4.$str5.$str6.$str7.$str8.$str9.$strE.$strE.$strE."de","r");
fclose($fd);
?>

Die ganze Sache funzt natürlich nur, wenn man sich vorher bei AWEKAS registriert hat (Datenübernahme auf eine Variante mit Direct Link stellen) und die aktuelle userid und das password im script ausgetauscht hat. Der Othmar Gattringer hat hier was aussergewöhnliches geschaffen - schaut mal rein.

Hier die Spezifikation, falls da jemand ausbauen möchte - denn ich nutze z.Zt. nur bis Pos 14:



die URL ist http://www.awekas.at/extern/eingabe_pruefung.php?val=
 
folgende Werte nach val= mit Semikolon getrennt
 
Es ergibt nun:
Pos1: Benutzername (awekas benutzer)
Pos2: Password (awekas password MD5 Hash) -> only md5 hash was transmited via web (no clear passoword !)
Pos3: Datum (dd.mm.yyyy) (varchar)
Pos4: Zeit (hh:mm) (varchar)
Pos5: Temperatur (in °C) (float)
Pos6: Luftfeuchte (in %) (int)
Pos7: Luftdruck (in hPa) (float)
Pos8: Niederschlagsmenge (Niederschlag sei 0h) (float)
Pos9: Windgeschwindigkeit (in km/h) float)
Pos10: Windrichtung (in degree) (int)
Pos11: Wetterlage (Tabelle) (int)
Pos12: Warntext ( Nur bei Wetterlage Warnung verwendet) (varchar)
Pos13: Schneehöhe (in cm) (int) if no snow leave blank
Pos14: Sprache (de = Deutsch ; en = Englisch) (varchar)
Pos15.) Luftducktendenz : stark fallend =-2, fallend -1, gleichbleibend =0 ,
steigend=1 , stark steigend =2 (integer)
Pos16.) Windböen (VP2...) km/h (float)
Pos17.) Solarstrahlung (Watt/m2) (float)
Pos18.) UV Index (float)

Wetterlagen :
1 - wolkenlos
2-  heiter
3 - wechs. bewölkt
4 - bewölkt
5 - stark bewölkt
6 - bedeckt
7 - Nebel
8 - Regenschauer
9 - st. Regensch.  
10 - leichter Regen
11 - Regen
12 - st. Regen
13 - l. Schneefall
14 - Schneefall
15 - l. Schneesch.  
16 - Schneeschauer
17 -  Schneeregen
18 - Hagel
19 - Gewitter
20 - Sturm
21 - Eisregen
22 - Wetterwarnung
23 - Nieselregen
24 - st. Schneefall
25 - st. Schneeschauer

MD5 HASH:  Der Benutzername ist in Klartext (case sensitive) - das Passwort ist der MD5 Hash Wert des AWEKAS user Passwortes.
Zum Test - hat ein Benutzer das Passwort "wetter" lautet der zu senden Hash Wert : 59d0914c04c19d75773daa24bb2f6cdd

Ist ein Wert (Schnee,Wetterlage)nicht vorhanden ist die Stelle leer zu lassen. Wichtig: Die Anzahl der Semikolon darf nicht geändert werden. (d. h.
ein leerer Wert sind zwei aufeinanderfolgede Semikolon) Sprich z.B.
Temp=10.3°; keine Feuchte (Sensor nicht vorhanden oder ausgefallen), Luftdruck 1019.5 hPa --> 10.3;;1019.5;....

Wie schon erwähnt : ist ein Wert nicht vorhanden - keinen Wert mitschicken
(0) ist auch ein Wert :-)

Ach ja, Danke noch mal an Torro für den Hinweis zur Nutzung des PHP fopen() Befehls.

Gruss babba aus Wiesbaden

Danke für die Arbeit.

Was muss ich bei Datenübernahme, bei der Registrierung, eingentlich auswählen, damit es läuft?

Gruß,
Björn

/EDIT
Hat sich geklärt, hab nen Fehler gemacht.