Das nachfolgende Beispiel ist für alle interessant, die bei einer Visualisierung den exakten
Dimmwert einer Beleuchtung des FS20 Systems erfassen wollen.
Die Variable „Lampe_Dim_ist“ ist den jeweiligen Gerät (Intensity) zuzuordnen.
Es besteht aus zwei Skripten: Dimmen_Plus und Dimmen_Minus, die jeweils z.B. durch einen Taster getriggert werden.
Wobei der 1. Tastendruck den Dimm-Aktion startet und der 2. sie stoppt.
Die beiden Funktionen der Skripte sind gegenseitig „verriegelt“.
Wer nur die aktuelle Helligkeit um ein Wert verändern möchte, ohne den aktuellen Wert zu kennen,
der kann die IP-Symcon Befehle: FS20_DimUp und FS20_DimDown verwenden (verfügbar mit dem nächsten Update).
MST
<?
/*
*******************************
IP-SYMCON Event Scripting
*******************************
File : Dimmen_Plus.ips.php
Trigger : beliebige Variable
Interval :
*/
$id = 30780;
$value = GetValueInteger("Lampe_Dim_ist");
$script = "Dimmen_Minus";
$speed = 2;
if($IPS_SENDER == "Variable")
{
if (IPS_GetScriptTimer($IPS_SELF) == 0) {
IPS_SetScriptTimer($script, 0);
IPS_SetScriptTimer($IPS_SELF, 1);
SetDim($value + $speed);
} else {
IPS_SetScriptTimer($IPS_SELF, 0);
}
}
else if($IPS_SENDER == "TimerEvent")
{
if($value>=16) {
IPS_SetScriptTimer($IPS_SELF, 0);
} else {
SetDim($value + $speed);
}
}
function SetDim($value) {
global $id;
if($value > 16) {
$value = 16;
}
if($value==0) {
FS20_SwitchMode($id, FALSE);
SetValueInteger("Lampe_Dim_ist", 0);
} else {
FS20_SetIntensity($id, $value, 0);
}
}
?>
<?
/*
*******************************
IP-SYMCON Event Scripting
*******************************
File : Dimmen_Minus.ips.php
Trigger : beliebige Variable
Interval :
*/
$id = 30780;
$value = GetValueInteger("Lampe_Dim_ist");
$script = "Dimmen_Plus";
$speed = 2;
if($IPS_SENDER == "Variable")
{
if (IPS_GetScriptTimer($IPS_SELF) == 0) {
IPS_SetScriptTimer($script, 0);
IPS_SetScriptTimer($IPS_SELF, 1);
FS20_SetIntensity($id, $value - $speed, -1);
SetDim($value - $speed);
} else {
IPS_SetScriptTimer($IPS_SELF, 0);
}
}
else if($IPS_SENDER == "TimerEvent")
{
if($value<=0) {
IPS_SetScriptTimer($IPS_SELF, 0);
} else {
SetDim($value - $speed);
}
}
function SetDim($value) {
global $id;
if($value < 0) {
$value = 0;
}
FS20_SetIntensity($id, $value, 0);
}
?>