mich hat die Anzeige in IPS bei einem gesperrten Regler gestört, da her mal q&d zwei Skripte für Temperatur ! :
Code: Alles auswählen
<?
// Skript Name ist : "Reglersperre"
$regler1_ID =14059 /*[LCN-Module\018-ix Trockner\Values (0, 18)\Feuchte soll R2]*/ ;
$regler1 = GetValueFloat($regler1_ID);
if ($regler1 >= 3276.8){
$reg1 =$regler1- 3276.8;
$id = CreateVariableByName($_IPS['SELF'], "Regler1", 2);
SetValue($id, $reg1);
$id = CreateVariableByName($_IPS['SELF'], "Regler", 0);
SetValue($id, 1);
// print_r ($reg1);
} else {
$reg1 =$regler1;
$id = CreateVariableByName($_IPS['SELF'], "Regler1", 2);
SetValue($id, $regler1);
$id = CreateVariableByName($_IPS['SELF'], "Regler", 0);
SetValue($id, 0);
}
function CreateVariableByName($id, $name, $type)
{
$vid = @IPS_GetVariableIDByName($name, $id);
if($vid===false) {
$vid = IPS_CreateVariable($type);
IPS_SetParent($vid, $id);
IPS_SetName($vid, $name);
}
return $vid;
}
?>
und über eine eigene VAR per aktion setzen :
Code: Alles auswählen
<?
// Skript Name ist : "Reglersperre" , Skript "Reglersperre" muss unter dem gleichen Baum liegen
$id = IPS_GetParent($_IPS['SELF']);
$id1= IPS_GetObjectIDByName("Reglersperre", $id);
$soll_id = IPS_GetObjectIDByName('Regler1', $id1);
$soll = GetValueFloat($soll_id );
LCN_SetTargetValue(25647 /*[LCN-Module\018-ix Trockner\Values (0, 18)]*/, 1, $soll);
?>
Dmit wir auch eine VAR erzeugt, den den Regler als gesperrt oder nicht gesperrt anzeigt.
Schnellschuss, ID's müsst Ihr anpassen.