Und wenn im KG die Taste nur 1x betätigt wird bleibt das Licht im EG an!?
Ich glaube man kann bei IPS (noch nicht) die Zeit der letzten Aktualisierung ermitteln …
Geht dann so:
Mann benötigt eine Float-Variable [Schaltzeit] in der die Zeit der letzten Betätigung gespeichert wird.
Dann noch eine Ereignissteuerung bei Statusänderung der Kellerlampe.
Und ein Script zum auswerten/steuern das vom Ereignis gestartet wird.
Ich mache mit einem mehrmaligen Schalten (in kurzer Zeit) einen zusätzlichen Aktor an, noch in anderen Abhängigkeiten (wie Stromverbrauch…).
Die grundsätzliche Frage ist halt, ob Du ein Betätigen unabhängig von IPS zum Schalten mindestens einer Lampe führen soll. Für mich ist dies eine Bedingung, praktisch auch im Ausfall von IPS wenigstens das Licht noch anzubekommen. Ohne diese „Notwendigkeit“ ist man sicher freier in den Möglichkeiten:
<?
//
$Geschaltet=49118 /*[Licht und Steckdosen\ZimerrZ-Wave Dimmer (NodeID 017)\Geschaltet]*/;
$RunScript=54931 /*[Energieverbrauch\Plugwise-Stecker\Zimmer\Einschalten]*/;
$PlugObject=16566 /*[Program\IPSLibrary\data\hardware\Plugwise\Circles\PC\Status]*/;
//
// Ermittlung letzte Aktualisierungszeit
$time = microtime(true);
$timeupdate_auto=IPS_GetVariable($Geschaltet); //hier für einfachsten Fall die FIBARO-Status-Variable
$timeupdate_auto= $timeupdate_auto['VariableUpdated'];
$Difftime=(floor(abs($time-$timeupdate_auto)));
if ($Difftime<1) {
// echo "Lichtschalter prellt $Difftime";
Goto Ende_Script;
}
// echo"Schalter betätigt vor $Difftime sec ";
If ($Difftime<4) {
// echo "Erneute Bedienung registriert";
IPS_RunScript($RunScript);
}
Ende_Script:
SetValue($Geschaltet,True); //diese Variable dient nur zur Unterscheidung ob per Hand oder per IPS geschaltet wurde (sonst den Stati des Fibaros auswerten)
?>