Kurz-Version, bei der bei Bewegungserkennung an einem Bewegungsmelder eine Lampe eingeschaltet werden soll und wenn keine Bewegung mehr ist, dann die Lampe wieder ausschalten:
<?
// Ereignisse hinzufügen > Variablenänderung der Variablen von Bewegungsmelder1 und Bewegungsmelder2
$Bewegungsmelder1 = GetValue(12345); // Bool Variable, welche Bewegung mit TRUE anzeigt
$Bewegungsmelder2 = GetValue(56789); // Bool Variable, welche Bewegung mit TRUE anzeigt
if (($Bewegungsmelder1 === true) OR ($Bewegungsmelder2 === true)) { // Wenn bei einem Bewegungsmelder Bewegung erkannt wurde
// Bewegung > LAMPE(N) EINSCHALTEN
}
else {
// Keine Bewegung > LAMPE(N) AUSSCHALTEN
}
?>
Lang-Version, bei der die Lampe(n) nur unter bestimmten Bedingungen eingeschaltet werden sollen:
<?
// Ereignis-Trigger hinzufügen > Variablenänderung der Variablen von Bewegungsmelder1 und Bewegungsmelder2
$Bewegungsmelder1 = GetValue(12345); // Bool Variable, welche Bewegung mit TRUE anzeigt
$Bewegungsmelder2 = GetValue(56789); // Bool Variable, welche Bewegung mit TRUE anzeigt
$Nacht = GetValue(11111); // Bool Variable, welche den Zustand NACHT mit TRUE anzeigt
$Dunkel = GetValue(22222); // Bool Variable, welche den Zustand DUNKEL mit TRUE anzeigt
$VariablenID_ZeitpunktLetzterBewegung = 55555; // Hier die Onjekt-ID einer String Variable eintragen, in welcher Datum und Uhrzeit der letzten erkannte Bewegung gespeichert werden
if (($Bewegungsmelder1 === true) OR ($Bewegungsmelder2 === true)) { // Wenn bei einem Bewegungsmelder Bewegung erkannt wurde
if (($Nacht === true) OR ($Dunkel === true)) { // Wenn es Nacht oder Dunkel ist
// Werktags zw. 18.00 und 22.59 Uhr die Lampe einschalten, sonst nicht
if (((date("H") >= 18) AND (date("H") < 23)) AND ((Date("w") >= 1) AND (Date("w") <= 5))) {
// LAMPE(N) EINSCHALTEN
}
else {
// KEINE AKTION
}
}
// Zeitpunkt der letzten Bewegung in Variable abspeichern
$timestamp = time();
$Datum = date("d.m.Y - H:i", $timestamp);
$Zeitpunkt = $Datum. " Uhr";
SetValueString($VariablenID_ZeitpunktLetzterBewegung, $Zeitpunkt);
}
else {
// LAMPE(N) AUSSCHALTEN
}
?>
Version mit Timer - Hier wird die Lampe bei Bewegungserkennung eingeschaltet, dann ein Timer erstellt, welcher das Skript nach 120 Sekunden erneut aufruft und dann die Lampe wieder ausschaltet. Wird innerhalb der 120 Sekunden eine neue Bewegung erkannt, dann verlängert sich der Timer wieder auf 120 Sekunden. Erst wenn keine Bewegung mehr erkannt wird und 120 Sekunden vergangen sind, dann wird das Licht ausgeschaltet.
<?
// Ereignisse hinzufügen > Variablenänderung der Variablen von Bewegungsmelder1 und Bewegungsmelder2
$Bewegungsmelder1 = GetValue(12345); // Bool Variable, welche Bewegung mit TRUE anzeigt
$Bewegungsmelder2 = GetValue(56789); // Bool Variable, welche Bewegung mit TRUE anzeigt
if ($_IPS['SENDER'] != "TimerEvent") {
if (($Bewegungsmelder1 === true) OR ($Bewegungsmelder2 === true)) { // Wenn bei einem Bewegungsmelder Bewegung erkannt wurde
// Bewegung > LAMPE(N) EINSCHALTEN
IPS_SetScriptTimer($_IPS['SELF'], 120); // Timer mit 120 Sekunden aktivieren
}
}
else {
IPS_SetScriptTimer($_IPS['SELF'], 0); // Timer deaktivieren
// LAMPE(N) AUSSCHALTEN
}
?>