DWD Unwetterwarnung (WFE, Mail und html)

Also ich habe es mit allen hinbekommen ausser Googlemail.

Hier ist meine Fehlermeldung :

#500 DEFCON 2 Änderung Gültigkeit(letzte Mail vor 22358548.3 Min)

Notice: Undefined variable: mail_to in [Scripte\Spezial\DWD\DWD Unwetterwarnungen\Unwetterwarnung] on line 683
#900 IPS Unwetterwarnung: Mail wird versand (letzte Mail vor 22358548.3 Min)

Am besten ich führe die Installation nochmal von vorne durch

OK jetzt läuft das ganze wieder. Das Problem sass vor dem Bildschirm. Ich habe schlampig kopiert (mea culpa)

Hi (Un-)Wetterfreunde,
ich hab gestern mal experimentell meine Fenstersteuerung (Winmatic) mit dem Unwetterscript verknotet. Ziel war, die Fenster bei ganz bestimmten Warntypen zu schließen - quasi eine Interaktion zwischen Unwetterwarnung und Home-Automation… Beispielsweise hab ich es nicht gern, wenn sich im Schlafzimmer Schneeverwehungen aufbauen.

Also hab ich mir eine Definition (Array) erstellt, welches alle Fenster-relevanten Ereignisse enthält (aus dem Unwetterscript entnommen):


 //Unwettersperr-Typen"
	$Sperrtyp                         	= array();
//	$Sperrtyp[]                       	= 'keine amtliche Warnung';

	$Sperrtyp[]                       	= 'Windböen';
	$Sperrtyp[]                       	= 'Starkwind';
	$Sperrtyp[]                       	= 'Starkwindwarnung';
	$Sperrtyp[]                       	= 'Sturmwarnung';
	$Sperrtyp[]                       	= 'Sturmböen';
	$Sperrtyp[]                       	= 'schweren Sturmböen';
	$Sperrtyp[]                       	= 'Orkanartigen Böen';
	$Sperrtyp[]                       	= 'extremen Orkanböen';
	$Sperrtyp[]                       	= 'Orkanböen';
	$Sperrtyp[]                       	= 'heftigem Starkregen';
	$Sperrtyp[]                       	= 'Starkregen';
	$Sperrtyp[]                       	= 'Hagel';
//	$Sperrtyp[]                       	= 'extrem ergiebigem Dauerregen';
//	$Sperrtyp[]                       	= 'ergiebigem Dauerregen';
//	$Sperrtyp[]                       	= 'Dauerregen';
//	$Sperrtyp[]                       	= 'Extrem starkem Schneefall';
//	$Sperrtyp[]                       	= 'starkem Schneefall';
//	$Sperrtyp[]                       	= 'leichtem Schneefall';
//	$Sperrtyp[]                       	= 'Schneefall';
	$Sperrtyp[]                       	= 'extrem starken Schneeverwehung';
	$Sperrtyp[]                       	= 'starken Schneeverwehung';
//	$Sperrtyp[]                       	= 'Schneeverwehung';
//	$Sperrtyp[]                       	= 'Glätte';
//	$Sperrtyp[]                       	= 'Glatteis';
//	$Sperrtyp[]                       	= 'starkem Tauwetter';
//	$Sperrtyp[]                       	= 'Tauwetter';
//	$Sperrtyp[]                       	= 'Nebel';
//	$Sperrtyp[]                       	= 'strengem Frost ';
//	$Sperrtyp[]                       	= 'Frost';
	$Sperrtyp[]                       	= 'schwerem Gewitter mit extremen Orkanböen';
	$Sperrtyp[]                       	= 'Schwerem Gewitter';
	$Sperrtyp[]                       	= 'starkem Gewitter';
	$Sperrtyp[]                       	= 'Gewitter';
//	$Sperrtyp[]                       	= 'hoher UV-Index';
//	$Sperrtyp[]                       	= 'Hitze';
	$Sperrtyp[]                       	= 'Hitzewarnung';
//	$Sperrtyp[]                       	= 'Testwarnung';                              //muuuuaaahhhh!
	// +++ !!! letzter Eintrag im Array !!! +++
//	$Sperrtyp[]                       	= 'keinen Warnstatus identifiziert';

das Script, welches die Fenster im im Unwetter-Fall schließen soll, ist auf „Variablenänderung“ der Variable „DWD Warntyp“ getriggert. Es vergleicht den Wert dieser Variable mir den o. aufgeführten „Sperrtypen“. Findet das Script einen Treffer (Übereinstimmung Variablenwert und Array-Inhalt), werden die Fenster zugefahren. Im Laufe des heutigen Tages hat es gleich 2x zugeschlagen (1x kurz vor 05 Uhr und 1x gg 16 Uhr).


<?
include 									IPS_GetKernelDir()."scripts/49247.ips.php"; // Unwetter-Sperrtypen

//print_r($Warntyp);

$id_aktor 					= 14326 /*[Haussteuerung\Schlafzimmer\Fenster\SZ WM Fenster]*/ ;
$Unwetter_Event_ID      = 35085 /*[Haussteuerung\Schlafzimmer\Fenster\SZ WM Fenster\SZ Fenster schließen (silent)\]*/ ;
$Warntyp_Key				= getValueInteger(58326 /*[WWWetter\DWD Unwetterwarnungen\DWD Unwetterwarnungen (HHX)\DWD Unwetterwarnungen\DWD Warntyp]*/ );
$Warntyp_val            = $Warntyp[$Warntyp_Key];

//prüfen, ob ein relevanter Warntyp vorliegt
$Unwettersperre 			= false;    // Defaultwert

for($i=0;$i<count($Sperrtyp);$i++)
{
	if($Warntyp_val == $Sperrtyp[$i])
	{
		$Unwettersperre 	= true;
		//echo "Unwettersperre bei ".$Sperrtyp[$i]." ein
";
		$i    				= 999;      // Schleifenabbruch
	}
	else
	{
	   //echo "keine Unwettersperre erkannt
";
	}
}

//Fenster schließen
if(($Unwettersperre) || (@$_IPS['EVENT'] != $Unwetter_Event_ID))
{
	// Fenster nur schliessen, nicht verriegeln
	if($Unwettersperre) echo "Fenster wird wg. Unwetter geschlossen
";
	HM_WriteValueFloat($id_aktor, "SPEED" , 0.1);    // Maximum Speed ;)
	//HM_WriteValueFloat($id_aktor, "RELOCK_DELAY" , 1 );    // Fenster nach 1 Sek. wieder zu
	HM_WriteValueFloat($id_aktor, "LEVEL" , 0.0);    // Fenster Zu
}
?>

das Script ist keine Plug&Play-Lösung sondern vielmehr als Beispiel gedacht :wink:

Hallo Raketenschnecke,

ich weiss jetzt nicht ob es hier richtig ist oder ein IPSLogger Thema ist, aber schreibe es trotzdem mal. :wink:

Bei mir schmeist das Script im IPSLogger immer bei Mailversand einen Fehler raus.

IPS-Err-IPS_Unwetter  2012-07-11 19:04:28.316  #900 IPS Unwetterwarnung: Mail wird versand (letzte Mail vor 645.1 Min)
  133 in IPSLibrary\app\core\IPSLogger\IPSLogger.inc.php (call IPSLogger_Out)
  634 in 52485.ips.php (call IPSLogger_Err)

Die Mail kommt aber fehlerfrei an :smiley: Hast Du eine Idee wo ich den Fehler suchen kann?

nee, das ist hier schon richtig und ein Käfer im Script (siehe hier)

wenn du das (im Script STRG+F nach ‚#900‘ suchen)


if(function_exists("IPSLogger_Err")) IPSLogger_Err(c_LogId, "#900 IPS Unwetterwarnung: Mail wird versand (letzte Mail vor $TimeDelta Min)"); 

gegen

if(function_exists("IPSLogger_Dbg")) IPSLogger_Dbg(c_LogId, "#900 IPS Unwetterwarnung: Mail wird versand (letzte Mail vor $TimeDelta Min)"); 

tauschst, ist erstmal Ruhe. Fehlerkorrektur in der nächsten Version

Ok, danke für die schnelle Hilfe.

Super,

Merci, den Fehler hatte ich auch…

Grüße,

Oli

Eine Frage noch:
Könnte man (Ihr :slight_smile: auch den DEFCON Status in die Email einbauen ?

Hintergrund: wenn die Mail auf dem kleinen iPhone Display sieht, dann wäre diese Info als leichtestes zu sehen… Alles andere kann man dann bei Bedarf vergrößern…

Nur so eine Anregung :wink:

Merci,

Oli

meinst du so in etwa?

:wink: Ja, so in etwa…

Auch sehr gut es in den Betreff aufzunehmen, da da die Schriftgröße in der Mail schön lesbar ist. (Und auch das Delta zu den vorherigen Warnungen)

Ich nehme mal an, dass Du das schon bei Dir eingebaut hast, bzw. evtl in einem update dann zur Verfügung steht ? :wink:

Merci !

Oli

das war schon immer so

konmt mit dem nächsten Update

konmt mit dem nächsten Update,
voraussichtlich am WE

Super. Merci.

Oli

Hallo Raketenschnecke.

Habe das Script nach Vorgabe installiert und konfiguriert.
Bekomme aber das Mailing nicht zum laufen.
Es erscheinen folgende Fehlermeldungen wenn ich das Script (PHP mailer connector) manuell ausführe:

Notice: Undefined index: from in C:\IP-Symcon\scripts\50227.ips.php on line 20

Notice: Undefined index: fname in C:\IP-Symcon\scripts\50227.ips.php on line 21

Notice: Undefined index: priority in C:\IP-Symcon\scripts\50227.ips.php on line 22

Notice: Undefined index: htmlsubject in C:\IP-Symcon\scripts\50227.ips.php on line 23

Notice: Undefined index: htmlhead in C:\IP-Symcon\scripts\50227.ips.php on line 24

Notice: Undefined index: htmlbody in C:\IP-Symcon\scripts\50227.ips.php on line 24

Notice: Undefined index: htmlend in C:\IP-Symcon\scripts\50227.ips.php on line 24

Notice: Undefined index: to in C:\IP-Symcon\scripts\50227.ips.php on line 26

Notice: Undefined index: tname in C:\IP-Symcon\scripts\50227.ips.php on line 26
Invalid address:
Notice: Undefined index: reply in C:\IP-Symcon\scripts\50227.ips.php on line 27

Notice: Undefined index: from in C:\IP-Symcon\scripts\50227.ips.php on line 27
Invalid address:
Notice: Undefined index: ei_path in C:\IP-Symcon\scripts\50227.ips.php on line 28

Notice: Undefined index: ei_cid in C:\IP-Symcon\scripts\50227.ips.php on line 28

Notice: Undefined index: ei_name in C:\IP-Symcon\scripts\50227.ips.php on line 28

Notice: Undefined index: ei_encoding in C:\IP-Symcon\scripts\50227.ips.php on line 28

Notice: Undefined index: ei_type in C:\IP-Symcon\scripts\50227.ips.php on line 28
You must provide at least one recipient email address.
Script #50227 Die Mail konnte nicht verschickt werden!>Mailer Error: You must provide at least one recipient email address.

Was mache ich da falsch?

Die beiden PHP Dateien habe ich gemäß Anleitung nach „\Scripts“ entpackt!

Es muss der PHP-Mailer 5.1 installiert sein, hierzu sind lediglich 2 Files aus dem Download in den IPS-Scriptordner zu legen: class.smtp.php, class.phpmailer.php

Bitte um Unterstützung . Danke.
Lutz

du startest den PHP-Mailer Connector manuell…das macht man nicht :wink:

OK ?!

Aber bis heute habe ich noch keine Mail erhalten.
Kann ich einen Test ausführen?

Lutz

ja, du kannst entweder den Defcon-Status oder den „gültig bis“-Timestamp manuell ändern und dann das Unwetter-Script starten. dann muss ein mailversand initialisiert werden

Danke, das war der Tip den ich brauchte.
Mein Fehler steckte in der Konfiguration des SMTP-Host.
Der muß bei strato.de hier so lauten:

################ User-Konfig ###################################################
$mail->Host = „smtp.strato.de“; // specify main and backup server
$mail->SMTPAuth = true; // turn on SMTP authentication
$mail->Username = „Name@*.“; // SMTP username
$mail->Password = „Passwort“; // SMTP password

################ User-Konfig Ende ##############################################

Mir fehlte jetzt nur der Hinweis wie ich eine Mail erzeugen konnte.
Danke, danke, … klasse „Unwetter“-Tool.
Vor allem beim dem derzeitigen Wetter über Berlin.

Gruß
Lutz

prima, freut mich, wenns jetzt läuft. Und danke für die Rückmeldung :wink:

Schöne Sache. Ich danke dir dafür.
Läuft bei mir seit einigen Tagen.

Was mir auffällt -hat nichts mit der tollen Anwendung zu tun- ist,
die Mails an meine normale Adresse kommen schnell, aber die Mails an Googlemail dauern manchmal ewig.
Vorgestern war das Wetter gerade vorbei, als die Googlemail das ausgespuckt hat.