Tagesnachricht zum Wetter

ergänzend zum tollen Script „eigene Wetterseite“ https://www.symcon.de/forum/threads/10740-Eigene-Wetterseite möchte ich meine Tagesnachricht/Notification anbieten:

Was passiert?
Morgens vor dem Aufstehen erhalte ich eine Notification, die mir die wichtigsten Wetterdaten sendet.

Wie geht’s?
Script „eigene Wetterseite“ muss laufen. Dieses holt Daten vom ftp des DWD ab und legt es in einen Ordner.
Darauf greift das Script zu und bastelt eine Notification.

  1. Script „TextDatei-Auslesen“ anlegen und der Anleitung darin folgen (Variablen anlegen, Stadt-ID auswählen usw.)

<?
//----------------------KONFIGURATION-------------------------------------
//Legt euch Variablen an, die zum ausgelesenen Bericht passen.
//Variablen-IDs aus dem IPS Objektbaum
$temp_ID = 25366 /*[WetterDatenDWD\Temp_12uhr]*/;
$rain_ID = 47585 /*[WetterDatenDWD
iederschlag_12uhr]*/;
$wind_ID = 40617 /*[WetterDatenDWD\wind_12uhr]*/;

//Dateiname des gewünschten DWD-Berichts
$bericht = "Daten_Suedost_mittag";

//1. // bei print_r($arrayData); (ca. Zeile 23) entfernen.
//2. führe das Script mit Strg+E aus.
//3. lies die ID Deiner Stadt
//4. Speichere Deine ID in der Variablen $stadt_array_id (Zeile 24)
//5. // wieder davor setzen und script speichern.

//Deine Stadt
$stadt_array_id = 15; //München ist z.B. 15

//----------------------ab hier nichts mehr ändern-----------------------
$datenVorhersage = file_get_contents(IPS_GetKernelDir()."webfront\\user\\WetterFtpDWD\\vorhersage\\".$bericht);
//manueller Pfad: $datenVorhersage = file_get_contents("C:/IP-Symcon_V2/webfront/user/WetterFtpDWD/vorhersage/".$bericht);
$arrayData = explode("
", $datenVorhersage);
//print_r($arrayData);
//print_r($arrayData[$stadt_array_id]);

unset($arrayData[0]);
unset($arrayData[1]);
$city2 = substr($arrayData[$stadt_array_id],0,18);
$temp = substr($arrayData[$stadt_array_id],19,2);
$rain = substr($arrayData[$stadt_array_id],24,36);
$wind = substr($arrayData[$stadt_array_id],53,16);

$city = array("city" => "$city2", "temp" => "$temp", "rain" => "$rain", "wind" => "$wind");
//print_r($city);
if (isset($temp_ID)) setvalue($temp_ID , $temp);
if (isset($rain_ID)) setvalue($rain_ID , $rain);
if (isset($wind_ID)) setvalue($wind_ID , $wind);
?>

  1. Notification-Script „Morgeninfo“ anlegen und alle Variablen deinen VarIDs anpassen:

<?
//Konfiguration auf eure Variablen- und Webfront-IDs nicht vergessen!

//Hier gehört die Variable der Außentemperatur hin, die ihr (hoffentlich) per Homematic oder ähnlichem ermittelt.
$aussen = GetValueFloat(20121 /*[Webfront Zuhause\Wetter\Außentemp\TEMPERATURE]*/ );

//Hier gehört die Variable der Regensensors hin, die ihr (hoffentlich) per Homematic oder ähnlichem ermittelt.
$status = GetValueInteger(33853 /*[Webfront Zuhause\Wetter\Regensensor\Regen-Status]*/);

//info zum regen
if($status == 1) {$regen = "Es regnet";}else{$regen = ":-)";}

//die Variablen, die wir vom ftp des DWD geholt haben zu unserer Stadt im anderen Script
//hier noch eure Var-IDs (anstatt 25366, 47585, 40617) eintragen
$temp_12uhr = GetValueString(25366 /*[WetterDatenDWD\Temp_12uhr]*/);
$regen_12uhr = GetValueString(47585 /*[WetterDatenDWD
iederschlag_12uhr]*/);
$wind_12uhr = GetValueString(40617 /*[WetterDatenDWD\wind_12uhr]*/ );

//die morgentliche Nachricht
//hier noch eure ID eures Webfronts (anstatt 20793) für die Notification eintragen
WFC_PushNotification(20793 /*[Zuhause]*/,"Guten Morgen!","Draußen: $aussen °C, $regen --- 12Uhr: $temp_12uhr °C, $regen_12uhr, $wind_12uhr",'',0);

?>

  1. Timer zum Script „Morgeninfo“ hinzufügen, der das Script jeden Morgen zB um 6 Uhr ausführt. (Wichtig!: Wenn ihr die Daten des Berichts „heute Mittag“ wie zB Daten_Suedost_mittag abruft, dann wird das Script nur sauber laufen, wenn es am Vormittag ausgeführt. Nachmittags ist diese Datei leer und das Script fehlerhaft!

  2. Timer zum Script „TextDatei-Auslesen“ anlegen. Dieses muss vor dem Timer, den ihr bei 3. angelegt habt, ausgeführt werden. zB jeden Morgen um 5:55 Uhr.

Viel Spaß.