Hallo Tom,
ich habe folgende Skrite im Einsatz für die Abfrage der Positionen. LCN-PCHK 2.8 !!!
Getriggert von ClientSocket LCN -> RegisterVariable
<?
$debug = true;
if ($_IPS['SENDER'] == "RegisterVariable")
{
$Value = 123456;
IPS_LogMessage($_IPS['SELF'],"S0_Zähler".$_IPS['VALUE']);
$Value = substr($_IPS['VALUE'],1,9);
//print_r($_IPS);
switch ($Value)
{
case "M000140.C":
//if ($Value == "M000140.C") // Modul 140
$Zaehler = substr($_IPS['VALUE'],10,1);
$wert = substr($_IPS['VALUE'],-11);
if ($debug) echo "
S0-Zähler:".$Zaehler." Zählerstand:". $wert."
";
switch ($Zaehler)
{
case 1:
setValue(38631 /*[LCN\S0-Zähler LCN\S0_Zaehler1]*/,$wert);
break;
case 2:
setValue(47914 /*[LCN\S0-Zähler LCN\S0_Zaehler2]*/,$wert);
break;
case 3:
setValue(35361 /*[LCN\S0-Zähler LCN\S0_Zaehler3]*/,$wert);
break;
case 4:
setValue(13236 /*[LCN\S0-Zähler LCN\S0_Zaehler4]*/,$wert);
break;
}
break;
break;
case "M000110.R":
$Roll = substr($_IPS['VALUE'],9);
$Pos = explode ("RM",$Roll);
for ($i=0;$i<=2;$i++)
{
$pos = substr($Pos[$i],0,1);
switch ($pos)
{
case 1:
echo "Motor 1 ".substr($Pos[$i],1,3);
SetValue (16317 /*[LCN\S0-Zähler LCN\Dachfenster Flur Motor 1]*/,(substr($Pos[$i],1,3)/2));
break;
case 2:
echo "Motor 2 ".substr($Pos[$i],1,3);
SetValue (14925 /*[LCN\S0-Zähler LCN\Dachfenster Flur Motor 2]*/,(substr($Pos[$i],1,3)/2));
break;
case 3:
echo "Motor 3 ".substr($Pos[$i],1,3);
SetValue (56690 /*[LCN\S0-Zähler LCN\Dachfenster Lager Motor 3]*/,(substr($Pos[$i],1,3)/2));
break;
case 4:
echo "Motor 4 ".substr($Pos[$i],1,3);
SetValue (34919 /*[LCN\S0-Zähler LCN\Dachfenster Lager Motor 4]*/,(substr($Pos[$i],1,3)/2));
break;
default:
break;
}
}
echo "Positon*******************".$Roll;
print_r($Pos);
break;
case "M000090.R":
$Roll = substr($_IPS['VALUE'],9);
$Pos = explode ("RM",$Roll);
for ($i=0;$i<=2;$i++)
{
$pos = substr($Pos[$i],0,1);
switch ($pos)
{
case 1:
echo "Motor 1 ".substr($Pos[$i],1,3);
SetValue (17970 /*[LCN\S0-Zähler LCN\Fenster Chef Motor 1]*/,(substr($Pos[$i],1,3)/2));
break;
case 2:
echo "Motor 2 ".substr($Pos[$i],1,3);
SetValue (52235 /*[LCN\S0-Zähler LCN\Fenster Sek. Motor 2]*/,(substr($Pos[$i],1,3)/2));
break;
case 3:
echo "Motor 3 ".substr($Pos[$i],1,3);
SetValue (12279 /*[LCN\S0-Zähler LCN\Fenster Aufenthaltsraum Motor 3]*/,(substr($Pos[$i],1,3)/2));
break;
case 4:
echo "Motor 4 ".substr($Pos[$i],1,3);
break;
default:
break;
}
}
echo "Positon*******************".$Roll;
print_r($Pos);
//RM12002000182401731RM22002000183901799
//=M000110.RM12002000182401731RM22002000183901799
break;
default:
break;
}
}
?>
- Skript getriggert durch Statusänderung der Motorenrelais
<?
LCN_SendCommand(21498 /*[UV (000,110)]*/, "R8","M1P1");
ips_sleep(100);
LCN_SendCommand(21498 /*[UV (000,110)]*/, "R8","M1P2");
ips_sleep(100);
LCN_SendCommand(48391 /*[UV (000,090)]*/, "R8","M1P1");
ips_sleep(100);
LCN_SendCommand(48391 /*[UV (000,090)]*/, "R8","M1P2");
?>