Alarmanlage mit IPS und Homematic

deine alternative habe ich auch schon in benutzung gehabt aber dann passiert es das man was vergessen ha, man geht rein löst die Bewegungsmelder wieder aus, die variablen wieder auf true gesetzt und dann ist die wartezeit zuende, also pustekuchen. Fazit Aalarm!

dann Trigger halt die Hilfsvariablen auf Motion -> Veränderung, weiterhin werden die Hilfsvariablen beim Scharfschalten auf „false“ gesetzt - fertig.

Versteh ich das richtig? Hilfsvariablen so lassen wie sie sind und die änderung der Hilfsvriablen nur dann wenn Ereignis „bei Variablenänderung“ stattfindet.

:mad:
dann setzt dich hin, schreib dir in Ruhe auf, unter welchen Rahmenbedingungen was passierten soll und setzt das Stück für Stück im Scripting um.
Mir scheint, dass dir das Gesamtkonzept fehlt. Wie soll dir da ein Aussenstehender helfen, wenn bei jedem Lösungsansatz wieder neue, einschränkende Rahmenbedingungen von dir vorgetragen werden.

Wenn man sich allein die Historie dieses Threads anschaut, wird vielleicht klar, was ich meine.

Ist das nicht der Sinn einer Alarmanlage? Wen sie scharf ist soll sie heulen, wenn sie jemanden bemerkt der unbefungt rein kommt. Wenn Du rein kommst und der Alarm soll nicht los gehen, musst Du die Anlage aus schalten. Wenn Du dann wieder gehst schaltest Du sie wieder scharf. Oder wie soll sie erkennen, dass Du es buist der grad rein kommt und was vergessen hat?

Ich denke Raketenschnecke hat recht, Du solltest Di erst mal im Klaren sein, was Du genau willst und dnann das Ganze systematisch angehen.

:rolleyes: hatte ich bis heute Morgen auch vermutet :rolleyes:

haha :smiley: ja nein ich meine das anders mit dem vergessen.

Alternative: einen Timer beim Scharfschalten setzen, der einen Alarm erst nach xx Minuten zulässt.

dazu habe ich dieses Problem und habe es damit als Lösung ausgeschlossen.
Also man geht raus schließt ab und macht dabei die alarmanlage scharf. Dabei wird eine sleep befehl aufgerufen und wartet ca. 10 minuten. Dann nach ca. 7 min kommt man wieder rein löst die Bewegungsmelder und so auch die Hilfsvariablen aus. Noch is kein alarm da ja der sleep-Befehl gerade am warten ist. Dann geht man wieder raus und schließt ab. Nach 3min ist der sleep-Befehl zuende und die Hilfsvariablen auf true und löst somit den Alarm aus.

Mein problem denke habe ich gelöst. War nur ein simpler Denkfehler(Syntax), aber die muss man erstmal finden bei den ganzen Scripten und Variablen :wink:

also ich finde das -gelinde gesagt- befremdlich, wenn du (trotz Bitte) Dein eigentliches Problem erst im 25.Post rauslässt. Hätte genau das im 1. Post gestanden, hätte ich angeraten, den Timer zurück zu setzen…
:mad:

ja ok…hab gedacht es wär so verständlich und bräuchte nicht alles erklären.
Nun gut. Wenigstens läuft das hier alles und ich kann ruhig schlafen :wink:
Eine Frage steht jedoch offen bei mir.
Geht es das man einen Bewegungsmelder von Homematic per
Script-PHP ansteuert und sagt aktualisier dich?Also ob gerade noch Bewegung ist oder nicht. Und nicht einfach den Wert abfragen sondern wirklich aktualisieren, was diese Bewegungsmelder alle 5minuten machen.

Ich bin der Meinung Du solltest erst einmal das Prinzip des HM-Bewegungsmelder in Form der Anleitung studieren.

Hi Mafranke,

schau mal im Homematic-Konfigurator, dort kann man einstellen nach welcher Zeit der Bewegungsmelder sein Status zurücksetzt (und in IPS demnach wiederauf untätig steht). Standard ist aus dem Kopf eben 5 Min, kannst aber runter bis 30 Sek. Verbraucht halt mehr Batterie. Sehr clever wäre natürlich, wenn man das über IPS bzw. hier bei dir beim Scharfstellen deiner gebastelten Alarmanlage runter und beim Unscharf-machen wieder hochstellen könnte. Weis aber nicht, ob das geht…

Grüsse, Axel

Dann setzt man die 10 Minuten einfach ab dem Zeitpunkt wo man erneut das Haus verlässt noch mal neu.

Und wie axelp schon schrieb muss man die 5 Minuten ja auch nicht so lassen im Bewegungsmelder.

So meine Alarmanlage ist fertig, nur ein paar Feinheiten noch ausbügeln
Hoffe es noch jemand da der mir helfen kann und danke an alle die mir am Anfang geholfen haben

Mein System funktioniert so :

  1. script wird gestartet wenn Tür oder Fenster Kontakt auf „true“ (also auf) schaltet.
    Fenster löst sofort Alarm aus , Tür mit 20sec verzögerung (wieder eigenes script)siehe unten script 2.
<?
$melderEssZ = getvalue (43584 /*[Homematic Instanzen\Melder EssZimmer Fenster\Status]*/);
$melderschlafZ = getvalue (49025 /*[Homematic Instanzen\Melder Schlafzimmer Fenster\Status]*/);
$schiebetuer = getvalue (59327 /*[Homematic Instanzen\Melder SchiebeTür\Satus]*/);
$haustuer = getvalue (53731 /*[Homematic Instanzen\Melder Haustür\Status]*/);
$Badsensor = getvalue(36286 /*[Homematic Instanzen\Melder Bad Fenster\Status]*/);
$WCsensor = getvalue(31150 /*[Homematic Instanzen\Melder WC Fenster\Status]*/);
$garage = getvalue (59301 /*[Homematic Instanzen\Melder Garage\Garage]*/);
$alarmbed = getvalueinteger (55262 /*[Sicherheit\Alarmanlage\Alarmanlage]*/);
$turtechnik = getvalue (11880 /*[Homematic Instanzen\Melder Garage/Technik\Status]*/);
$datum = date ("D - d.M.Y");
$zeit = date ("H:i");
$subject = "Alarmanlage am $datum um $zeit";
$textbad = "Badfenster geöffnet";
$textwc = "Wc Fensfer geöffnet";
$textga = "Garage Geöffnet";
$texttur = "Tür Technickraum/Garage geöffnet";
$textschiebtur = "SchiebeTür Terrasse geöffnet";
$textesszim = "Esszimmer Fenster geöffnet";
$texthaustuer = "HausTür geöffnet";
$textschlafZ = "Schlafzimmer Fenster geöffnet";
$imfile = "C:\IP-Symcon\media\FTP-Cam\cam.jpg";
$code = getvaluestring (28658 /*[Sicherheit\Keypad\Code]*/);
$codeeingabefeld = getvaluestring (55717 /*[Sicherheit\Keypad\Alarmanlage Code]*/);
//echo "$subject";


// Alarm scharf + jeweiliger sensor
if ($alarmbed == 0 and $Badsensor ) // 0 = alarmanlage scharf
	{setvalueboolean (47540 /*[Sicherheit\Alarmanlage\Alarmblinken Ein/Aus]*/, true);
	 SMTP_SendMailAttachment (25946 /*[Sicherheit\Alarmanlage\Alarm E-Mail senden an Elke]*/,$subject,$textbad,$imfile);
    SMTP_SendMailAttachment (48825 /*[Sicherheit\Alarmanlage\E-Mail Alarm senden Andi]*/,$subject,$textbad,$imfile);
	}
if ($alarmbed == 0 and $WCsensor )
	{setvalueboolean (47540 /*[Sicherheit\Alarmanlage\Alarmblinken Ein/Aus]*/, true);
	SMTP_SendMailAttachment (25946 /*[Sicherheit\Alarmanlage\Alarm E-Mail senden an Elke]*/,$subject,$textwc,$imfile);
	SMTP_SendMailAttachment (48825 /*[Sicherheit\Alarmanlage\E-Mail Alarm senden Andi]*/,$subject,$textwc,$imfile);
	}
if ($alarmbed == 0 and $garage )
	{
	IPS_RunScript(21030 /*[Sicherheit\Alarmanlage\Garagentorscript]*/);
	}
if ($alarmbed == 0 and $turtechnik )
	{
    IPS_RunScript(27945 /*[Sicherheit\Alarmanlage\Alarm Auslösen bei Türen]*/);
	}
if ($alarmbed == 0 and $melderEssZ ) // 0 = alarmanlage scharf
	{setvalueboolean (47540 /*[Sicherheit\Alarmanlage\Alarmblinken Ein/Aus]*/, true);
	 SMTP_SendMailAttachment (25946 /*[Sicherheit\Alarmanlage\Alarm E-Mail senden an Elke]*/,$subject,$textesszim,$imfile);
    SMTP_SendMailAttachment (48825 /*[Sicherheit\Alarmanlage\E-Mail Alarm senden Andi]*/,$subject,$textesszim,$imfile);
	}
if ($alarmbed == 0 and $melderschlafZ ) // 0 = alarmanlage scharf
	{setvalueboolean (47540 /*[Sicherheit\Alarmanlage\Alarmblinken Ein/Aus]*/, true);
	 SMTP_SendMailAttachment (25946 /*[Sicherheit\Alarmanlage\Alarm E-Mail senden an Elke]*/,$subject,$textschlafZ,$imfile);
    SMTP_SendMailAttachment (48825 /*[Sicherheit\Alarmanlage\E-Mail Alarm senden Andi]*/,$subject,$textschlafZ,$imfile);
	}
if ($alarmbed == 0 and $schiebetuer ) // 0 = alarmanlage scharf
	{
	IPS_RunScript(27945 /*[Sicherheit\Alarmanlage\Alarm Auslösen bei Türen]*/);
	}
if ($alarmbed == 0 and $haustuer ) // 0 = alarmanlage scharf
	{
	IPS_RunScript(27945 /*[Sicherheit\Alarmanlage\Alarm Auslösen bei Türen]*/);
	}

// Alarm EIN + jeweiliger sensor   OHNE Garage
if ($alarmbed == 1 and $Badsensor ) // 1 = alarmanlage Ein
	{setvalueboolean (47540 /*[Sicherheit\Alarmanlage\Alarmblinken Ein/Aus]*/, true);
	SMTP_SendMailAttachment (25946 /*[Sicherheit\Alarmanlage\Alarm E-Mail senden an Elke]*/,$subject,$textbad,$imfile);
	SMTP_SendMailAttachment (48825 /*[Sicherheit\Alarmanlage\E-Mail Alarm senden Andi]*/,$subject,$textbad,$imfile);
	}
if ($alarmbed == 1 and $WCsensor )
	{setvalueboolean (47540 /*[Sicherheit\Alarmanlage\Alarmblinken Ein/Aus]*/, true);
	SMTP_SendMailAttachment (25946 /*[Sicherheit\Alarmanlage\Alarm E-Mail senden an Elke]*/,$subject,$textwc,$imfile);
	SMTP_SendMailAttachment (48825 /*[Sicherheit\Alarmanlage\E-Mail Alarm senden Andi]*/,$subject,$textwc,$imfile);
	}
if ($alarmbed == 1 and $turtechnik )
	{
    IPS_RunScript(27945 /*[Sicherheit\Alarmanlage\Alarm Auslösen bei Türen]*/);
	}
if ($alarmbed == 1 and $melderEssZ ) // 1 = alarmanlage Ein
	{setvalueboolean (47540 /*[Sicherheit\Alarmanlage\Alarmblinken Ein/Aus]*/, true);
	SMTP_SendMailAttachment (25946 /*[Sicherheit\Alarmanlage\Alarm E-Mail senden an Elke]*/,$subject,$textesszim,$imfile);
	SMTP_SendMailAttachment (48825 /*[Sicherheit\Alarmanlage\E-Mail Alarm senden Andi]*/,$subject,$textesszim,$imfile);
	}
if ($alarmbed == 1 and $melderschlafZ ) // 1 = alarmanlage Ein
	{setvalueboolean (47540 /*[Sicherheit\Alarmanlage\Alarmblinken Ein/Aus]*/, true);
	SMTP_SendMailAttachment (25946 /*[Sicherheit\Alarmanlage\Alarm E-Mail senden an Elke]*/,$subject,$textschlafZ,$imfile);
	SMTP_SendMailAttachment (48825 /*[Sicherheit\Alarmanlage\E-Mail Alarm senden Andi]*/,$subject,$textschlafZ,$imfile);
	}
if ($alarmbed == 1 and $schiebetuer ) // 1 = alarmanlage Ein
	{
	IPS_RunScript(27945 /*[Sicherheit\Alarmanlage\Alarm Auslösen bei Türen]*/);
	}
if ($alarmbed == 1 and $haustuer ) // 1 = alarmanlage Ein
	{
	IPS_RunScript(27945 /*[Sicherheit\Alarmanlage\Alarm Auslösen bei Türen]*/);
	}

	
if ($alarmbed == 2) // 2=alarmanlage Aus
{echo "Alarmanlage AUS";}

?>

Ich schätze mal es ist sehr Umständlich aber es funktioniert

  1. Beim Öffnen einer Tür startet dieses durch IPS_RunScript
<?
$zurgarage = "C:\IP-Symcon\media\WAV Dateien\zürgarageoffen.wav";
$Biep1xa = "C:\IP-Symcon\media\WAV Dateien\alarm04.wav";
$Biep1x = "C:\IP-Symcon\media\WAV Dateien\alarm02.wav";
$hausverlassen = "C:\IP-Symcon\media\WAV Dateien\hausverlassen.wav";
$klingel = "C:\IP-Symcon\media\WAV Dateien\doorbell2.wav";
$tuergeoffnet = "C:\IP-Symcon\media\WAV Dateien\Reiner Tür geöffnet.wav";
$alarmstartet = "C:\IP-Symcon\media\WAV Dateien\Reiner Alarm startet.wav";
$STruf = "C:\IP-Symcon\media\WAV Dateien\alarm15.wav";
$sirene = "C:\IP-Symcon\media\WAV Dateien\sirens_x.wav";
$nachtOK = "C:\IP-Symcon\media\WAV Dateien\NachtOK.wav";
$AlarmAUS = "C:\IP-Symcon\media\WAV Dateien\alarmAus.wav";
$AL20secscharf = "C:\IP-Symcon\media\WAV Dateien\Alarm20sec.wav";
$AL10secscharf = "C:\IP-Symcon\media\WAV Dateien\alarm10sec.wav";
$Kirchenglocke = "C:\IP-Symcon\media\WAV Dateien\alarm10.wav";
$garageoffen = "C:\IP-Symcon\media\WAV Dateien\garageoffen.wav";
$alarmbed = getvalue (55262 /*[Sicherheit\Alarmanlage\Alarmanlage]*/);

$blinkenEin = getvalue (47540 /*[Sicherheit\Alarmanlage\Alarmblinken Ein/Aus]*/);

set_time_limit ( 0 ); // keine zeitbeschränkung
// 1. Ton 
	 if ($alarmbed == 2)
	   {echo "Alarm AUS
";}
 else
 { Sys_GetURLContent("http://10.0.0.51:81/decoder_control.cgi?command=31&user=admin&pwd=w4sd3b2!"); //kammera richtung eingsang drehen
	WAC_PlayFile (46687 /*[Sicherheit\Anwesenheitsschalter\Alarm Player]*/,$Biep1x);
   //WFC_SwitchPage(55209 /*[Hauptwebfront]*/, "al0100");  // Code Tastatur anzeigen
   //Licht Küche Ein
   HM_WriteValueFloat (44591 /*[Homematic Instanzen\Küchenschalter 2]*/ , "ON_TIME", 0.3);
	HM_WriteValueBoolean (44591 /*[Homematic Instanzen\Küchenschalter 2]*/, "STATE", true);
	
	sleep (1);
	
	WAC_PlayFile (46687 /*[Sicherheit\Anwesenheitsschalter\Alarm Player]*/,$AL20secscharf);
   sleep (5);


$alarmbed = getvalue (55262 /*[Sicherheit\Alarmanlage\Alarmanlage]*/);
   	if ($alarmbed == 2 )
	   	{0;}
		else
		   {
			WAC_PlayFile (46687 /*[Sicherheit\Anwesenheitsschalter\Alarm Player]*/,$Biep1x);
			sleep (1);
	      }
$alarmbed = getvalue (55262 /*[Sicherheit\Alarmanlage\Alarmanlage]*/);
   	if ($alarmbed == 2 )
	   	{0;}
		else
		   {
			WAC_PlayFile (46687 /*[Sicherheit\Anwesenheitsschalter\Alarm Player]*/,$Biep1x);
			sleep (1);
	      }
$alarmbed = getvalue (55262 /*[Sicherheit\Alarmanlage\Alarmanlage]*/);
   	if ($alarmbed == 2 )
	   	{0;}
		else
		   {
			WAC_PlayFile (46687 /*[Sicherheit\Anwesenheitsschalter\Alarm Player]*/,$Biep1x);
			sleep (1);
	      }
$alarmbed = getvalue (55262 /*[Sicherheit\Alarmanlage\Alarmanlage]*/);
   	if ($alarmbed == 2 )
	   	{0;}
		else
		   {
			WAC_PlayFile (46687 /*[Sicherheit\Anwesenheitsschalter\Alarm Player]*/,$Biep1x);
			sleep (1);
	      }

$imfile = "C:\IP-Symcon\media\FTP-Cam\cam.jpg"; //neues bild holen

$alarmbed = getvalue (55262 /*[Sicherheit\Alarmanlage\Alarmanlage]*/);
   	if ($alarmbed == 2 )
	   	{0;}
		else
		   {
			WAC_PlayFile (46687 /*[Sicherheit\Anwesenheitsschalter\Alarm Player]*/,$AL10secscharf);
			sleep (5);
	      }

$alarmbed = getvalue (55262 /*[Sicherheit\Alarmanlage\Alarmanlage]*/);
   	if ($alarmbed == 2 )
	   	{0;}
		else
		   {
			WAC_PlayFile (46687 /*[Sicherheit\Anwesenheitsschalter\Alarm Player]*/,$Biep1x);
			sleep (1);
	      }
$alarmbed = getvalue (55262 /*[Sicherheit\Alarmanlage\Alarmanlage]*/);
   	if ($alarmbed == 2 )
	   	{0;}
		else
		   {
			WAC_PlayFile (46687 /*[Sicherheit\Anwesenheitsschalter\Alarm Player]*/,$Biep1x);
			sleep (1);
	      }
$alarmbed = getvalue (55262 /*[Sicherheit\Alarmanlage\Alarmanlage]*/);
   	if ($alarmbed == 2 )
	   	{0;}
		else
		   {
			WAC_PlayFile (46687 /*[Sicherheit\Anwesenheitsschalter\Alarm Player]*/,$Biep1x);
			sleep (1);
	      }
$alarmbed = getvalue (55262 /*[Sicherheit\Alarmanlage\Alarmanlage]*/);
   	if ($alarmbed == 2 )
	   	{0;}
		else
		   {
			WAC_PlayFile (46687 /*[Sicherheit\Anwesenheitsschalter\Alarm Player]*/,$Biep1x);
			sleep (1);
	      }
$alarmbed = getvalue (55262 /*[Sicherheit\Alarmanlage\Alarmanlage]*/);
   	if ($alarmbed == 2 )
	   	{0;}
		else
		   {
			WAC_PlayFile (46687 /*[Sicherheit\Anwesenheitsschalter\Alarm Player]*/,$Biep1x);
			sleep (1);
	      }

	 }
$alarmbed = getvalue (55262 /*[Sicherheit\Alarmanlage\Alarmanlage]*/);
//$texttur = "Tür geöffnet";
$datum = date ("D - d.M.Y");
$zeit = date ("H:i");
$subject = "Alarmanlage am $datum um $zeit";
$schiebetuer = getvalue (59327 /*[Homematic Instanzen\Melder SchiebeTür\Satus]*/);
$haustuer = getvalue (53731 /*[Homematic Instanzen\Melder Haustür\Status]*/);
$turtechnik = getvalue (11880 /*[Homematic Instanzen\Melder Garage/Technik\Status]*/);

if ($schiebetuer)
	{$texttur = "Schiebetür geöffnet";}
if ($haustuer)
	{$texttur = "Haustür geöffnet";}
if ($turtechnik)
	{$texttur = "Tür Technikraum/Garage geöffnet";}

	 if ($alarmbed == 2)
	   {echo "Alarm AUS";}
	   else
	   {
	   setvalueboolean (47540 /*[Sicherheit\Alarmanlage\Alarmblinken Ein/Aus]*/, true);
	 	//SMTP_SendMailAttachment (25946 /*[Sicherheit\Alarmanlage\Alarm E-Mail senden an Elke]*/,$subject,$texttur,$imfile);
    	SMTP_SendMailAttachment (48825 /*[Sicherheit\Alarmanlage\E-Mail Alarm senden Andi]*/,$subject,$texttur,$imfile);
		}
?>

3.Der Alarm wird eingeschaltet durch die Variable Alarmblinken (Boolean), bei schalten auf „Ein“ startet dieses:

<?
$alarmblinkschalter = getvalueboolean (47540 /*[Sicherheit\Alarmanlage\Alarmblinken Ein/Aus]*/);
$alarmanlage = GetValueInteger (55262 /*[Sicherheit\Alarmanlage\Alarmanlage]*/);


if ($alarmblinkschalter)
	{
	WAC_PlayFile (46687 /*[Sicherheit\Anwesenheitsschalter\Alarm Player]*/,"C:\IP-Symcon\media\WAV Dateien\sirens_x.wav");
	HM_WriteValueFloat (22872 /*[Homematic Instanzen\Alarmsirene Außen]*/, "ON_TIME", 2);
	HM_WriteValueBoolean (22872 /*[Homematic Instanzen\Alarmsirene Außen]*/, "STATE", true);

	HM_WriteValueFloat (47250 /*[Homematic Instanzen\Klingel oben]*/, "ON_TIME", 2);
	HM_WriteValueBoolean (47250 /*[Homematic Instanzen\Klingel oben]*/, "STATE", true);
	

	//HM_WriteValueFloat (44591 /*[Homematic Instanzen\Küchenschalter 2]*/ , "ON_TIME", 0.3);
	//HM_WriteValueBoolean (44591 /*[Homematic Instanzen\Küchenschalter 2]*/, "STATE", true);

	IPS_SetScriptTimer($_IPS['SELF'], 3); // Startet das Script nach x Sekunden neu
	}
?>

Alarm wird angehalten durch codeeingabe = schaltet „Alarmbliken“ auf Aus

Also meine Fragen:
Kennt sich grundsätzlich wer aus (wenn man sich so lange damit beschäftigt vergisst man die logik)

bei scipt 2 (Auslösen bei Tür öffnen) hab ich ein problem, ich mach die Tür auf - Alarm geht los - geistesblitz - ich sollte die Alarmanlage ausmache - Tür fällt zu - und springt durch Dichtung wieder auf = Alarm startet zum 2. mal und die Töne überlagert sich

bei script 3 (Alarmblinken) sollte nach 2 oder 3 min von allein still sein (Gesetzliche Vorschrift für Alarmanlagen)
Wie mach ich das, hab überhaupt keine Plan.

Wäre nett wenn mir jemand helfen könnte, für verbesserungsvorschläge bin ich natürlich auch dankbar

Andi

Hallo!

Habe mich schon etwas mit dem Thema beschäftigt, komme aber nicht zu einer lösung.
in meinem haus habe ich eigentlich ziemlich alles über mdt aktoren gesteuert. Fensterkontakte und Bewegungsmelder sind auch verbaut.
Ich möchte nun gerne einen kleinen alarm einrichten, das zb. das licht im gesamten haus angeht und die raffstore hoch fahren wenn nachts ein kontakt oder ein bewegungsmelder auslöst.

Kann mir da vielleicht jemand hier helfen?:banghead:
Ich wäre sehr dankbar!

Grüße

Hast du denn, die Signale schon in IPS oder Siemens LOGO! bzw HomeMatik zur Verfügung? Denn das wäre ja erst einmal die Voraussetzung.

ob zb. die fenster geschlossen oder offen sind wird mir in ips, bzw in der webfront oder am handy in der app angezeigt.

Ich steuer im haus eigentlich alles über ips…

ABB MT/S 8.12.2M KNX Sicherheitsterminal 8-fach REG, 264,87 €, M

Dann kannst du einiges in der ETS Konfigurieren …