ich habe im Hausfur einen Bewegungsmelder (FS20) installiert und ihn so eingestellt, dass wenn es dunkel ist das Licht eingeschaltet wird. Das problem ist, dass das oft nicht funktioniert (Wenn z.B. Licht in der Küche an ist.
Ich würde gerne den Helligkeitswert im Bewegungsmelder ausschalten und das Licht einschalten wenn der Dämmerungssensor im Garten von Tag auf Nacht schaltet. Also der Bewegungsmelder meldet immer, es wird aber nur geschaltet wenn der Dämmerungssensor auf fals steht.
Für Zeitabfrage kenn ich den Befehl nur nicht für die Abfrage eines Aktors.
Bestimmt wurde sowas schon öfters gefragt, kann aber nichts brauchbares finden.
Das war nur ein Beispiel dafür, dass an der Stelle Etwas gemacht wird. Du ersetzt einfach „DoSomething“ durch etwas sinnvolles, wie zu Beispiel FS20_SwitchDuration, und dann wird es, das Sinnvolle, auch passieren.
Wenn man Variablennamen wie $tag_nacht hat und dann mit true und false arbeitet ist das manchmal recht verwirrend. Ist true nun Tag? Oder Nacht? Oder ist false Nacht?
Man kann das ganze mit Konstanten lesbarer machen; das ist bei so einem kleinen Script zwar noch nicht wirklich notwending aber am besten sollte man sich sowas angewöhnen.
Hier mal als Beispiel:
<?
define("TAG",true);
define("NACHT",false);
define("AN",true);
define("AUS",false);
$Tag_Nacht = GetValue(35237 /*[Sensoren\Sensor Tag / Nacht\Status]*/); // true oder false
if ($Tag_Nacht == NACHT)
{
FS20_SwitchDuration(48688 /*[Räume\Hausflur\Licht Eingang]*/, AN, 120);
}
?>
Also Tag ist true und nacht ist false. Funktioniert jetzt auch.
Ich glaube kürzer als das Beispiel von Tonic gehts nicht.
Aber gut zu wissen, dass man sich das Leben auch leichter machen kann
Mal sehen was ich mit dem neuen Wissen so alles anstellen kann… :rolleyes:
Funktion ist nicht die Frage. Funktionieren wird das immer. Nur in 2 Jahren hast du vergessen das True = Nacht bedeutet oder war jetzt Nacht = false oder machen wir den Tag zur Nacht wenn true = false?!? Das Problem liegt dann fast immer zwischen den Ohren. Dem kann man mit dem Beispiel von sysrun und mir dann direkt vorbeugen.
Das darfst du nem Programmierer nie sagen. Sonst fühlt er sich herausgefordert.