Skript auslösen per Wandschalter

Hallo,

ich möchte beim Betätigen des Z-Wave-Wandschalters (Düwi 05460, hat nur die beiden Batterie-Variablen),
das an einem bestimmten Aktor das Licht für einen gewissen Zeitraum per Skript eingeschaltet und dann wieder ausgeschaltet wird.
Hierzu verwende ich folgendes Skript:


if ($_IPS['SENDER'] != "TimerEvent") {
//	if ($Status = true)
		ZW_Switchmode(10057 /*[Obergeschoss\Büro\Licht\Aktor Büro Wand]*/, true);
		IPS_SetScriptTimer($_IPS['SELF'], 30); // Timer mit 30 Sekunden aktivieren
}
else {
   IPS_SetScriptTimer($_IPS['SELF'], 0);  // Timer deaktivieren
   ZW_Switchmode(10057 /*[Obergeschoss\Büro\Licht\Aktor Büro Wand]*/, false);
}
?>

Ich bin mir nun aber nicht sicher, wie ich es hinkriege, das beim Tasterdruck das Skript ausgeführt wird, ich kann es ja nicht von einer Variablenänderung wie sonst üblich abhängig machen.

Kann mir hierzu jemand einen Tipp geben ?

Danke,
Fred

Hallo Fred,

ich weiß jetzt nicht genau, wie es bei den DüWi’s ist. Bei mir mit Homematic habe ich eine Variable bei den Wandschaltern, die nur prüft, ob der Taster bedient wurde. Auf der Variablen-Aktualisierung (wichtig: nicht Variablen-Änderung) lasse ich dann Scripte starten.

Viele Grüße,

Burkhard

Hallo Burki

Wie sieht diese Variable genau aus bei Dir, welches Profil hast Du hinterlegt ?

Gruß,
Fred

Hallo Fred,

die Variable ist eine normale Bool-Variable ohne hinterlegtem Profil. Beim Bedienen des Schalters wird diese über die Zentrale von Homematic aktualisiert, was zum Beispiel mit der eigentlichen Variablen „PRESS_SHORT“ nicht passiert. Da übermittelt die Zentrale (CCU) kein Wert.

Schaue einfach mal, welche Variable bei Deinem Taster bei Betätigung aktualisiert wird und da hängst Du dann das Script ran. Aber wie gesagt, nicht auf Variablenänderungen achten, sondern auf die Aktualisierung des Zeitstempels.

Mittels eines Ereignisses lasse ich das angehängte Script dann bei jeder Aktualisierung ausführen:

<?
$STATE = GetValueBoolean(49375 /*[Hardware\Hue\Gruppen\Küche\State]*/);
if ($STATE == 0)
{
HUE_SetState(17637 /*[Hardware\Hue\Gruppen\Küche]*/, true);
}
else
{
HUE_SetState(17637 /*[Hardware\Hue\Gruppen\Küche]*/, false);
}
?>

Viele Grüße,

Burkhard