Normalverwendetes Licht mit Bewegungsmelder im ausgeschaltenen Zustand

Hallo!

ich hab wieder mal eine Spezialfrage an Euch!

Ich möchte ein Licht das ich normal verwende auch mit einem Bewegungssensor verbinden… in der Regel kann ich das auch aber jetzt kommts!
Ich möchte das der Bewegungsmelder nur dann das Licht schaltet wenn es aus ist … momentan ist es so das wenn das Licht eingeschalten ist und jemand beim Bewegungsmelder vorbei geht wird das List nach der im Skript angegebenen Zeit abgeschalten … ich möchte aber das wenn das List aktiv ist der Bewegungsmelder keine Funkion auf das Licht hat …

dieses Skript aktiviert der Bewegungsmelder … was muss ich da noch hineintun in das Skript!

<?

$VarSwitchID = 43731 /[Hardware\Homematic\Licht\Wohngeschoss\Licht Vorzimmer\STATE]/ ; // ID der Boolvariable

HM_WriteValueFloat(58682 /[Hardware\Homematic\Licht\Untergeschoss\Licht Poolhausumrandung]/, „ON_TIME“, 20); // 0,5 Min
HM_WriteValueBoolean(58682 /[Hardware\Homematic\Licht\Untergeschoss\Licht Poolhausumrandung]/, „STATE“ , true);

?>

Danke für eure Hilfe

LG
Christian

Zuerst einmal musst du registrieren können das das Licht anders eingeschaltet wurde. Wenn du das weißt nimmst du dies als „Sperre“ für den Bewegungsmelder, also kein Ausschalten per Bewegungsmelder solange das Licht das letzte mal von Hand angeschaltet wurde. Ob du das per extra Variable machst die sich merkt das der Anschalter "per Hand " war oder anders liegt an dir. Wenn dann das Licht per Hand auch wieder ausgeschaltet wurde die Variable wieder zurücksetzen.

So wie Hagbard das beschreibt, so habe ich es auch bei mir mit der AktorSteuerung gelöst. Wird das Licht am Wandtaster eingeschaltet, dann erkennt das ein Skript und setzt die Hilfsvariable „Sperre“ auf AKTIV. Will in der Zwischenzeit ein Skript die zugehörigen Lampen schalten, dann wird das nicht ausgeführt. Wird das Licht dann wieder über den Wandtaster ausgeschaltet, dann wird die Sperre wieder deaktiviert und Skripte können die Beleuchtung wieder schalten.

Funktioniert wunderbar so. Man muss sich nur vorher überlegen, wann wie was Vorrang haben soll und wann wie was evtl. doch eine Sperre „übersteuern“ darf.

Hier sieht man ein wenig, wie ich das mache:
AktorSteuerung (alle Aktoren über eine zentrale Steuerung ansprechen/bedienen)

Grüße,
Chris

Hallo!

vielen Dank für eure Hilfe … hab jetzt dein Skript angesehen … uf ich hab mein ganzes System schon fertig und hab sorge das ich mir meine Einstellungen verändere wenn ich dieses System installiere …

Frage: was muss ich zu meine Skript noch hinzufügen damit die Sperre aktiv wird

<?

$VarSwitchID = 43731 /*[Hardware\Homematic\Licht\Untergeschoss\Licht Poolhausumrandung\STATE]*/  ; // ID der Boolvariable

HM_WriteValueFloat(58682 /*[Hardware\Homematic\Licht\Untergeschoss\Licht Poolhausumrandung]*/, "ON_TIME",  20);    // 0,5 Min
HM_WriteValueBoolean(58682 /*[Hardware\Homematic\Licht\Untergeschoss\Licht Poolhausumrandung]*/, "STATE" , true);

?>

Hallo nochmal!

ich hab die Antwort auf meine Frage.

<?

$VarSwitchID = 43731 /*[Hardware\Homematic\Licht\Untergeschoss\Licht Poolhausumrandung\STATE]*/  ; // ID der Boolvariable
$VarSwitchVal = GetValue ($VarSwitchID);

if ($VarSwitchVal == false)

HM_WriteValueFloat(58682 /*[Hardware\Homematic\Licht\Untergeschoss\Licht Poolhausumrandung]*/, "ON_TIME",  20);    // 0,5 Min
HM_WriteValueBoolean(58682 /*[Hardware\Homematic\Licht\Untergeschoss\Licht Poolhausumrandung]*/, "STATE" , true);
?>

Gibt es hierbei was zum Aussetzen oder passt das aus eurer Sicht so

lg
Christian

Ohne {} bringt die if Bedingung nichts ;).

Hallo Ralf,

es funktionier habe aber deinen Rat befolgt hat aber denn eine Fehler angezeigt

<?

$VarSwitchID = 31525 /*[Hardware\Homematic\Licht\Untergeschoss\Carport\STATE]*/  ; // ID der Boolvariable
$VarSwitchVal = GetValue ($VarSwitchID);

{if} ($VarSwitchVal == false)

HM_WriteValueFloat(25772 /*[Hardware\Homematic\Licht\Untergeschoss\Carport]*/, "ON_TIME",  120);    // 2 Min
HM_WriteValueBoolean(25772 /*[Hardware\Homematic\Licht\Untergeschoss\Carport]*/, "STATE" , true);


?>

Das {} kommt um die Anweisungen, die ausgeführt werden sollen.

PHP: if - Manual