Rauchmeldertag

Hi Frank,

mach dich mal vertraut mit den Möglichkeiten der Events!

Ereignis hinzufügen:
(Ereignis = Boolean) > Bei bestimmten Wert > „False“

Ich denke damit gehts nicht. Da ja irgendwie geprüft werden muss ob der Melder vorher im Alarmzustand war.
Gruss
Frank

Geht nicht gibt es nicht. :slight_smile:

Setze doch eine Hilfsvariable.

Du meinst so was wie wenn der Alarm kommt die Variable auf ein setzten und dann beim nächsten ausführen des Scriptes darauf prüfen. Gute Idee,
warum komm ich da nicht drauf…

Daaannnnkeeee:)

Hallo,

ersteinmal danke für das Script. Ich bekomme leider immer bei der Ausführung Warnungen. Könnt ihr mir da bitte mal behilflich sein?
Script:

<?
//*Rauchmelder
$array = Array(23499, 25134, 32760, 45867);
//$id_sound*=*35352*/*[Media*IR\Media*Player*Teufel]*/;
//$id_action = 45642 /*[Administration\E-Mail2SMS\SendEmail2SMS]*/ ;
$id_action = 28843 /*[Administration\E-Mail senden (SMTP)]*/ ;

foreach($array as $item)
	{
//		echo $item."
";
		$data = IPS_GetVariable($item);
//		print_r(IPS_GetVariable($item));
//		echo $data[VariableUpdated]."
";
		$last_up = time() - ($data[VariableUpdated]);
		//echo*"Delta-*T:*$last_up
";
		if($last_up > 4000)
		{
			$device = IPS_GetObject($data[VariableID]);
			$device = IPS_GetLocation($device[ParentID]);
			$betreff = "Rauchmelder " .$item ." " .$device ." hat einen Fehler!";
			SMTP_SendMailEx($id_action, "email@domain.local", $betreff, $betreff);
//			return; //sonst wird bei der ersten Warnung das Script beendet
		}
	}
?>

Fehler:

Notice:  Use of undefined constant VariableUpdated - assumed 'VariableUpdated' in C:\IP-Symcon\scripts\33617.ips.php on line 14

Notice:  Use of undefined constant VariableID - assumed 'VariableID' in C:\IP-Symcon\scripts\33617.ips.php on line 18

Notice:  Use of undefined constant ParentID - assumed 'ParentID' in C:\IP-Symcon\scripts\33617.ips.php on line 19

Notice:  Use of undefined constant VariableUpdated - assumed 'VariableUpdated' in C:\IP-Symcon\scripts\33617.ips.php on line 14

Notice:  Use of undefined constant VariableID - assumed 'VariableID' in C:\IP-Symcon\scripts\33617.ips.php on line 18

Notice:  Use of undefined constant ParentID - assumed 'ParentID' in C:\IP-Symcon\scripts\33617.ips.php on line 19

Notice:  Use of undefined constant VariableUpdated - assumed 'VariableUpdated' in C:\IP-Symcon\scripts\33617.ips.php on line 14

Notice:  Use of undefined constant VariableID - assumed 'VariableID' in C:\IP-Symcon\scripts\33617.ips.php on line 18

Notice:  Use of undefined constant ParentID - assumed 'ParentID' in C:\IP-Symcon\scripts\33617.ips.php on line 19

Notice:  Use of undefined constant VariableUpdated - assumed 'VariableUpdated' in C:\IP-Symcon\scripts\33617.ips.php on line 14

Notice:  Use of undefined constant VariableID - assumed 'VariableID' in C:\IP-Symcon\scripts\33617.ips.php on line 18

Notice:  Use of undefined constant ParentID - assumed 'ParentID' in C:\IP-Symcon\scripts\33617.ips.php on line 19

Vielen Dank vorab.

Setz mal die angemaulten Meldungen in ‚…‘ dann sind die Meldungen weg.

z.B.
$last_up = time() - ($data[‚VariableUpdated‘]);

ups… stimmt die haben gefehlt. Danke!

Gibts bei euch auch manchmal Probleme mit dem kopieren von Quellcode aus dem Browser nach IPS? Letztens half nur ein man. eintippen, beim kopieren bzw. anschließendem ausführen gabs ständig Fehlermeldungen.

… kopier das Skript aus dem Browser zunächst in einen Text-Editor (z.B. Notepad) und von dort aus in IPS … das sollte sehr zuverlässig funktionieren …

Hallo,

das Skript gut läuft.
Die Rauchmelder melden sich bei mir jedoch leider „nur“ bei Alarm. Es wird keine Status Variable oder Batterie Status übermittelt. Im Bidcos Service Log tauchen von den Rauchmeldern auch keine Einträge den Tag über auf. Habe den Log Level schon auf 0 gestellt.
Ich hoffe auf eure Hilfe :wink:
Vielen Dank vorab.

Bei mir melden die Rauchmelder nicht jede Stunde oder kürzer den Status.
Jetzt ist 13:18 Uhr und die letzten Aktualisierungen der Variablen „State“ waren 17:46 Uhr, 12:02 Uhr und 21:00 Uhr…:confused:

Aber an und für sich funktioniert alles! Ich habe auch keine Kommunikationsprobleme im Homematic Konfigurator.
Funktioniert das evtl. nur mit der CCU?

Ich frag jetzt einfach nochmal nach:
Hat jemand dieses Skript mit Homematic Rauchmeldern in Betrieb?

Bei mir (und wohl auch bei Marco) melden die sich nicht stündlich (auch nicht unter der :0 Adresse), so daß dieses Skript nicht funktionieren kann.

Besten Dank für eine Rückmeldung!:wink:

Leichenschändung…aber da ich selbst gerade das für mich eingebaut habe:

Kann ich bestätigen, aktuelle HomeMatic Rauchmelder melden sich nur alle paar Tage. Deshalb hab ich das Skript aus diesem Thread mal etwas angepasst und prüfe aktuell, ob das letzte Update der Rauchmelder-Status-Variable mehr als ~84,2 Stunden zurück liegt (diesen Wert habe ich durch längeres mitloggen eines delta ermittelt). Dieses Skript lasse ich über ein Ereignis jeden Morgen und jeden Abend ausführen.

<?
$WFid = 13103;  // WebFront Configurator ID  (zum Push-Nachrichten senden)
$funktionsStatus = 22674 /*[Skripte & Variablen\Rauchmelder\Funktions-Status]*/;  // Bool-Variable zum Status im WebFront anzeigen
$RauchmelderFlurOben = 33117 /*[Hardware\HomeMatic\Rauchmelder\RAUCH01 (Flur oben)\Rauchmelder\STATE]*/;
$RauchmelderSchlafzimmer = 31941 /*[Hardware\HomeMatic\Rauchmelder\RAUCH03 (Schlafzimmer)\Rauchmelder\STATE]*/;
$RauchmelderGaestezimmer = 28153 /*[Hardware\HomeMatic\Rauchmelder\RAUCH02 (Gästezimmer)\Rauchmelder\STATE]*/;
$RauchmelderWohnzimmerVorne = 45434 /*[Hardware\HomeMatic\Rauchmelder\RAUCH04 (Wohnzimmer vorne)\Rauchmelder\STATE]*/;

$array = Array($RauchmelderFlurOben, $RauchmelderSchlafzimmer, $RauchmelderGaestezimmer, $RauchmelderWohnzimmerVorne);
SetValue($funktionsStatus, true);

foreach($array as $item){
    echo $item."
";
    $data =  IPS_GetVariable($item);
    $last_up = time()-($data['VariableUpdated']);
    //echo "Delta- T: $last_up
";
    if ($last_up > 303000) {  // 306000 Sekunden = 85 Stunden
		 // Funktions-Status-Variable auf Störung setzen
		 SetValue($funktionsStatus, false);
		 if ($item == $RauchmelderFlurOben){
       	// echo "Störung am Rauchmelder im Schlafzimmer";
       	// Push-Nachricht mit Info über Störung
		   WFC_PushNotification($WFid, "RAUCHMELDER", "Störung // Flur oben", "", 0);
       }
       if ($item == $RauchmelderSchlafzimmer){
       	// echo "Störung am Rauchmelder im Schlafzimmer";
       	// Push-Nachricht mit Info über Störung
		   WFC_PushNotification($WFid, "RAUCHMELDER", "Störung // Schlafzimmer", "", 0);
       }
       if ($item == $RauchmelderGaestezimmer){
       	// echo "Störung am Rauchmelder im Schlafzimmer";
       	// Push-Nachricht mit Info über Störung
		   WFC_PushNotification($WFid, "RAUCHMELDER", "Störung // Gästezimmer", "", 0);
       }
       if ($item == $RauchmelderWohnzimmerVorne){
       	// echo "Störung am Rauchmelder im Schlafzimmer";
       	// Push-Nachricht mit Info über Störung
		   WFC_PushNotification($WFid, "RAUCHMELDER", "Störung // Wohnzimmer vorne", "", 0);
       }
       return;
    }

}
if (GetValue($funktionsStatus) == true) {
   // Funktions-Status-Variable auf OK setzen
   SetValue($funktionsStatus, true);
	echo "Alle Rauchmelder sind OK";
}

?>

Grüße,
Chris

Nachdem Chris ja schon Staub gewischt hat :smiley:
Ich mache das jetzt hier mit:
http://www.ip-symcon.de/forum/showthread.php?t=26226
Das triggert dann mein globales Script für Benachrichtigungen.
Michael