So hier mal der Erste Versuch…
Wie man schon sieht ist das sehr komplex und unübersichtlich. Es funktioniert zwar, aber sehr schwer zu ändern, oder anzupassen.
40826 /[!Aktuelle Projekte\Alarmanlage\02 Aktuell Welche Art der Überwachung (Tag Nacht Urlaub)\aktualisieren]/
<?
$IDAuswahl = 52577 /*[!Aktuelle Projekte\Alarmanlage\02 Aktuell Welche Art der Überwachung (Tag Nacht Urlaub)]*/;
$IDLink01 = 13878 /*[!Aktuelle Projekte\Alarmanlage\02 Aktuell Welche Art der Überwachung (Tag Nacht Urlaub)\1 Anzahl]*/;
$IDLink02 = 23993 /*[!Aktuelle Projekte\Alarmanlage\02 Aktuell Welche Art der Überwachung (Tag Nacht Urlaub)\2 Anzahl]*/;
$IDLink03 = 33470 /*[!Aktuelle Projekte\Alarmanlage\02 Aktuell Welche Art der Überwachung (Tag Nacht Urlaub)\3 Anzahl]*/;
$IDAktuell = 35241 /*[!Aktuelle Projekte\Alarmanlage\03 Aktuell Wieviele Fenster offen]*/;
$IDAlarmScharf = 27778 /*[!Aktuelle Projekte\Alarmanlage\05 Alarmscharf]*/;
// Welcher Status ist aktuell?
$Auswahl = getvalue ($IDAuswahl);
switch ($Auswahl){
case 1: $AkutelleAnzahl = GetValue(IPS_GetLink ($IDLink01) ['TargetID']); break;
case 2: $AkutelleAnzahl = GetValue(IPS_GetLink ($IDLink02) ['TargetID']); break;
case 3: $AkutelleAnzahl = GetValue(IPS_GetLink ($IDLink03) ['TargetID']); break;
}
setvalue ($IDAktuell, $AkutelleAnzahl);
?>
56366 /[!Aktuelle Projekte\Alarmanlage\02 Aktuell Welche Art der Überwachung (Tag Nacht Urlaub)\bei änderung von Tag Nachtwache]/
<?
$IDAuswahl = 52577 /*[!Aktuelle Projekte\Alarmanlage\02 Aktuell Welche Art der Überwachung (Tag Nacht Urlaub)]*/;
$IDLink01 = 13878 /*[!Aktuelle Projekte\Alarmanlage\02 Aktuell Welche Art der Überwachung (Tag Nacht Urlaub)\1 Anzahl]*/;
$IDLink02 = 23993 /*[!Aktuelle Projekte\Alarmanlage\02 Aktuell Welche Art der Überwachung (Tag Nacht Urlaub)\2 Anzahl]*/;
$IDLink03 = 33470 /*[!Aktuelle Projekte\Alarmanlage\02 Aktuell Welche Art der Überwachung (Tag Nacht Urlaub)\3 Anzahl]*/;
$IDAktuell = 35241 /*[!Aktuelle Projekte\Alarmanlage\03 Aktuell Wieviele Fenster offen]*/;
$IDAlarmScharf = 27778 /*[!Aktuelle Projekte\Alarmanlage\05 Alarmscharf]*/;
$IDSpeicher = 42903 /*[!Aktuelle Projekte\Alarmanlage\04 Anzahl Fenster Beim Alarm Einschalten]*/;
// Welcher Status ist aktuell?
$Auswahl = getvalue ($IDAuswahl);
switch ($Auswahl){
case 1: $AkutelleAnzahl = GetValue(IPS_GetLink ($IDLink01) ['TargetID']); break;
case 2: $AkutelleAnzahl = GetValue(IPS_GetLink ($IDLink02) ['TargetID']); break;
case 3: $AkutelleAnzahl = GetValue(IPS_GetLink ($IDLink03) ['TargetID']); break;
}
setvalue ($IDAktuell, $AkutelleAnzahl);
setvalue ($IDSpeicher, $AkutelleAnzahl);
?>
10260 /[!Aktuelle Projekte\Alarmanlage\05 Alarmscharf\Alarm kurzzeitig ausschalten, wenn Wohnung verlassen (Wohnungstür)]/
<?
$IDWohnungstuerInnen = 39773 /*[Hardware\Homematic\Türschalter\Wohnungstür\STATE]*/;
$IDAlarmScharf = 27778 /*[!Aktuelle Projekte\Alarmanlage\05 Alarmscharf]*/;
if (getvalue ($IDWohnungstuerInnen) == true){
if (getvalue ($IDAlarmScharf) == true){
setvalue ($IDAlarmScharf, false);
IPS_Sleep (20000 /*[Objekt #20000 existiert nicht]*/);
setvalue ($IDAlarmScharf, true);
}else{}
}else{
}
?>
57338 /[!Aktuelle Projekte\Alarmanlage\05 Alarmscharf\Alarm Scharf Schalten wenn Niemand im Haus]/
<?
$IDJemandImHaus = 31334 /*[!Aktuelle Projekte\Alarmanlage\01 Jemand im Haus]*/;
$IDAlarmScharf = 27778 /*[!Aktuelle Projekte\Alarmanlage\05 Alarmscharf]*/;
$JemandImHaus = getvalue($IDJemandImHaus);
// Wenn jemand im Haus (AKM) dann Alarm Aus, sonst ein
if ($JemandImHaus == true) {
setvalue ($IDAlarmScharf, false);
}else{
setvalue ($IDAlarmScharf, true);
}
?>
39372 /[!Aktuelle Projekte\Alarmanlage\05 Alarmscharf\wenn Alarm Scharf und Fenster Anzahl geändert]/
<?
$IDAlarmAusloesen = 18856 /*[!Aktuelle Projekte\Alarmanlage\06 Alarm ausgelöst]*/;
$IDAlarmScharf = 27778 /*[!Aktuelle Projekte\Alarmanlage\05 Alarmscharf]*/;
$IDAnzFensterSpeicher = 42903 /*[!Aktuelle Projekte\Alarmanlage\04 Anzahl Fenster Beim Alarm Einschalten]*/;
$IDAnzFensterAktuell = 35241 /*[!Aktuelle Projekte\Alarmanlage\03 Aktuell Wieviele Fenster offen]*/;
$AnzFensterAktuell = getvalue ($IDAnzFensterAktuell);
$StatusAlarmScharf = getvalue ($IDAlarmScharf);
$AnzFensterSpeicher = getvalue ($IDAnzFensterSpeicher);
// Nur wenn Alarm Scharf
if ($StatusAlarmScharf == true){
// Ein Fenster wurde geschlossen
if ($AnzFensterAktuell < $AnzFensterSpeicher){setvalue ($IDAnzFensterSpeicher, $AnzFensterAktuell);}
// Ein Fenster wurde geöffnet
if ($AnzFensterAktuell > $AnzFensterSpeicher){setvalue ($IDAnzFensterSpeicher, $AnzFensterAktuell); setvalue ($IDAlarmAusloesen, true); ips_sleep (5000); setvalue ($IDAlarmAusloesen, false);}
}
?>
29733 /[!Aktuelle Projekte\Alarmanlage\05 Alarmscharf\wenn Alarm scharfgeschalten wird Fenster Anzahl übernehmen]/
<?
$IDAlarmAusloesen = 18856 /*[!Aktuelle Projekte\Alarmanlage\06 Alarm ausgelöst]*/;
$IDAlarmScharf = 27778 /*[!Aktuelle Projekte\Alarmanlage\05 Alarmscharf]*/;
$IDAnzFensterSpeicher = 42903 /*[!Aktuelle Projekte\Alarmanlage\04 Anzahl Fenster Beim Alarm Einschalten]*/;
$IDAnzFensterAktuell = 35241 /*[!Aktuelle Projekte\Alarmanlage\03 Aktuell Wieviele Fenster offen]*/;
$AnzFensterAktuell = getvalue ($IDAnzFensterAktuell);
$StatusAlarmScharf = getvalue ($IDAlarmScharf);
$AnzFensterSpeicher = getvalue ($IDAnzFensterSpeicher);
setvalue ($IDAnzFensterSpeicher, $AnzFensterAktuell);
?>