Lichtschalter vs. Lichtszene

Hallo zusammen,

meine Lichtsteuerung in der Küche funktioniert zunächst mal so wie es soll. Ab bestimmter Lux und Bewegung werden verschiedene Lampen eingeschaltet. Wenn in der Küche keine Bewegung mehr ist, wird für 15 Min. gedimmt. Danach wird ein Skript ausgeführt, welches die Lampen alle ausschaltet.

// Skript 'Kueche Deckenbeleuchtung Lichtszene 01' wird ausgeführt
<?																																												// 20171101 1126 BS
$varLuminanceKueche = GetValue (52866 /*[Erdgeschoss\Küche\Zwave Aeotec MultiSensor 6 01 (NodeID 054)\Wert\Luminance]*/);														// Auslesen der Helligkeit
$varLuminanceEinfahrt = GetValue (18545 /*[Einfahrt\Steinel IS 140-2 (NodeID 072)\Wert\Luminance]*/);																			// Auslesen der Helligkeit
$varBewegungKueche = GetValue (10307 /*[Erdgeschoss\Küche\Zwave Aeotec MultiSensor 6 01 (NodeID 054)\Status]*/);																// Ermittelt die Bewegung

if (($varLuminanceKueche < 50) or ($varLuminanceEinfahrt <= 1500))																												// Bedingung
{
	if ($varBewegungKueche == true)																																				// Bedingung
	{
	ZW_SwitchMode(35989 /*[Erdgeschoss\Küche\Zwave Fibaro Releay 2xSwitch 01 Niesche (NodeID 018)\Fibaro Releay 2xSwitch 01 (NodeID 018) (SubID 1)]*/,true); 					// Nischenbeleuchtung einschalten
	ZW_DimSet (18679 /*[Erdgeschoss\Küche\Zwave Fibaro Dimmer 01 Deckenbeleuchtung rechts (NodeID 019)]*/,90);  																// Licht rechte Seite wird auf 90% eingeschaltet
	ZW_DimSet (16216 /*[Erdgeschoss\Küche\Zwave Fibaro Dimmer 02 Deckenbeleuchtung links (NodeID 021)]*/,25);  																	// Licht linke Seite wird auf 20% eingeschaltet
	ZW_SwitchMode(35905 /*[Erdgeschoss\Küche\Zwave Fibaro Releay 2xSwitch 01 Niesche (NodeID 018)\Fibaro Releay 2xSwitch 01 Arbeitsplatte (NodeID 018) (SubID 2)]*/, true);		// LED-Beleuchtung unter der Arbeitsplatte wird eingeschaltet
	ZW_SwitchMode(58154 /*[Erdgeschoss\Küche\Zwave Fibaro Wallplug 01 (NodeID 037)]*/, true);  																					// Regalbeleuchtung an der Kaffeebar wird eingeschaltet
	IPS_SetScriptTimer(55750 /*[Erdgeschoss\Küche\Skripte\Kueche Deckenbeleuchtung Lichtszene 02]*/,0);																			// Skript-Timer auf 0 Sekunden stellen
	}
		
	Else
	{
	ZW_SwitchMode(35989 /*[Erdgeschoss\Küche\Zwave Fibaro Releay 2xSwitch 01 Niesche (NodeID 018)\Fibaro Releay 2xSwitch 01 (NodeID 018) (SubID 1)]*/,false); 					// Nischenbeleuchtung ausschalten
	ZW_DimSet (18679 /*[Erdgeschoss\Küche\Zwave Fibaro Dimmer 01 Deckenbeleuchtung rechts (NodeID 019)]*/,15);  																// Deckenbeleuchtung rechts wird auf 15% eingeschaltet
	ZW_DimSet (16216 /*[Erdgeschoss\Küche\Zwave Fibaro Dimmer 02 Deckenbeleuchtung links (NodeID 021)]*/,15);  																	// Deckenbeleuchtung links wird auf 15% eingeschaltet
	ZW_SwitchMode(35905 /*[Erdgeschoss\Küche\Zwave Fibaro Releay 2xSwitch 01 Niesche (NodeID 018)\Fibaro Releay 2xSwitch 01 Arbeitsplatte (NodeID 018) (SubID 2)]*/, true);		// LED-Beleuchtung unter der Arbeitsplatte wird eingeschaltet
	ZW_SwitchMode(58154 /*[Erdgeschoss\Küche\Zwave Fibaro Wallplug 01 (NodeID 037)]*/, true);  																					// Regalbeleuchtung an der Kaffeebar wird eingeschaltet
	IPS_SetScriptTimer(55750 /*[Erdgeschoss\Küche\Skripte\Kueche Deckenbeleuchtung Lichtszene 02]*/,900);																		// Skript-Timer wird auf 15 Minuten eingeschaltet
	}
}
Else 
{
ZW_DimSet (18679 /*[Erdgeschoss\Küche\Zwave Fibaro Dimmer 01 Deckenbeleuchtung rechts (NodeID 019)]*/,0);  																		// LDeckenleuchte rechte Seite wird ausgeschaltet
ZW_DimSet (16216 /*[Erdgeschoss\Küche\Zwave Fibaro Dimmer 02 Deckenbeleuchtung links (NodeID 021)]*/,0);																		// Deckenleuchte linke Seite wird ausgeschaltet
ZW_SwitchMode(35905 /*[Erdgeschoss\Küche\Zwave Fibaro Releay 2xSwitch 01 Niesche (NodeID 018)\Fibaro Releay 2xSwitch 01 Arbeitsplatte (NodeID 018) (SubID 2)]*/, false);		// LED-Beleuchtung unter der Arbeitsplatte wird ausgeschaltet
ZW_SwitchMode(35989 /*[Erdgeschoss\Küche\Zwave Fibaro Releay 2xSwitch 01 Niesche (NodeID 018)\Fibaro Releay 2xSwitch 01 (NodeID 018) (SubID 1)]*/,false); 						// Nischenbeleuchtung ausschalten
ZW_SwitchMode(58154 /*[Erdgeschoss\Küche\Zwave Fibaro Wallplug 01 (NodeID 037)]*/, false);  																					// Regalbeleuchtung an der Kaffeebar wird ausgeschaltet
}
?>

Jetzt zu meiner Frage:

Wenn ich jetzt die Deckenbeleuchtung per Lichtschalter/Wandtaster einschalte, wird das Licht unabhängig vom Skript eingeschaltet. Wenn jedoch der Bewegungsmelder keine Bewegung registriert, wird nach einer bestimmten Zeit das Licht wieder ausgeschaltet. Wie kann ich das verhindern? Wie kann ich der Betätigung von Lichtschaltern immer die höchte Priorität geben?

Du legst Dir am besten eine Bool Hilfsvariable an. Dann setzt Du auf alle Schalter ein Ereignis das diese Variable beim Einschalten auf True setzten und wenn ein Lichtschalter ausschaltet die Variable auf False. Das Schalten verteilst Du auf verschiedene Skripte. Das Einschalten macht ein Skript das Ausschalten abhängig von Zeit und Bewegung ein zweites Skript. In dem zweiten Skript ergänzt Du noch eine if Abfrage die die Variable ausliest die Dir angibt ob irgendein Lichtschalter gedrückt worden ist. Wenn Du dann also das Licht manuell einschaltest bleibt es dann auch an bis es wieder manuell ausgeschaltet wird.

Ich habe bemerkt, dass der Fibaro Aktor eine eigene Variable hat für das manuelle Schalten:

Darüber habe ich die manuelle Betätigung dann abgefangen.

Danke für den Tip!