Ich würde gerne die VariablenID aus einem Link herausbekommen, LinkByName gibt es, folgendes habe ich aufgebaut:
Gruß Helmut
GetLink führt zum Ziel:
IPS_GetLink IP-Symcon :: Automatisierungssoftware
Und im foreach ist GetLink falsch, da musst du GetChildrenIDs nutzen.
IPS_GetChildrenIDs — IP-Symcon :: Automatisierungssoftware
Wenn du dein Script hier gepostet hättest, und nicht als Screenshot, könnte man es auch korrigiert Posten
Ansonsten hier fertige Scripte:
Michael
Danke Michael,
etwas rumprobiert habe ich schon auch mit IPS_GetChildrenIDs, Variable gehen damit auch, nun möchte ich lieber Links nehmen, erscheint mir universeller.
Deshalb möchte ich auch mit foreach und $IPS Self arbeiten, ist kleiner
Hier das Script Zentral Aus mit Links:
<?
//IPS_Get
//foreach(IPS_GetCh
foreach(IPS_GetLink($_IPS['SELF']) as $item){ // alle Unterobjekte
//foreach(IPS_GetChildrenIDs($_IPS['SELF']) as $item){ // alle Unterobjekte
$IstEIN= Getvalue($item);
//$IstEIN= ENO_RequestStatus($item);
If ($IstEIN == true) {
SetValue($item , false); //$_IPS['VALUE']);
//ENO_DimSet($SchreibSchaltID,0);
//ModBus_WriteCoil($item, false);
}
}
?>
Und hier das Script mit Variablen, das funktioniert:
<?
//IPS_Get
//foreach(IPS_GetCh
//IPS_GetLink
//foreach(IPS_GetLink($_IPS['SELF']) as $item){ // alle Unterobjekte
foreach(IPS_GetChildrenIDs($_IPS['SELF']) as $item){ // alle Unterobjekte
$IstEIN= Getvalue($item);
//$IstEIN= ENO_RequestStatus($item);
If ($IstEIN == true) {
SetValue($item , false); //$_IPS['VALUE']);
//ENO_DimSet($SchreibSchaltID,0);
//ModBus_WriteCoil($item, false);
}
}
?>
IPS_GetLink($_IPS[‚SELF‘])
Kann nie funktionieren, da SELF eine ID von einem Script ist, und kein Link.
foreach (IPS_GetChildrenIDs($_IPS['SELF']) as $objekt)
{
if (IPS_GetObject($objekt)['ObjectType']==6)
{
// $objekt ist ID eines Link zu zeigt auf
$linkTarget = IPS_GetLink($objekt)['TargetID'];
If (GetValueBoolean($linkTarget))
SetValue($linkTarget , false);
}
}
Michael
Sowas in der Art? Ich weis ja nicht was Du dann genau machen willst.
// Links unterhalb eine Kategorie auslesen
$parentid = 12345; // Object ID des übergeordneten Objekts unter dem die Links gesucht werden sollen
$linklist = GetLinkList($parentid);
foreach($linklist as $link)
{
$linkinfo = IPS_GetLink($link);
$linkid = $linkinfo["LinkID"];
$targetid = $linkinfo["TargetID"];
echo "Der Link mit ObjektID ".$linkid." hat ".$targetid." als Ziel.
";
}
function GetLinkList($parentid)
{
$all_links = IPS_GetLinkList();
$linklist = array();
foreach ($all_links as $key => $objid)
{
$parent = IPS_GetParent($objid);
if($parent == $parentid)
{
$linklist[] = $objid;
}
}
return $linklist;
}
IPS_GetLinkList ist mit Kanonen auf Spatzen schießen.
Du hast ja einen ‚Start‘.
Also reicht IPS_GetChildrenIDs.
Michael
Ihr seid Spitze, beides bringt mich weiter
Ziel ist es die Variable zu beschreiben, Die bekommen dann ein Aktionsscript zum toogeln
Gruß Helmut
Hier findest du ein AuswerteScript für den Status.
Alle Links zu einer Variablen finden - Seite 2
Das steuern über AktionsSkript hast du oben schon, musst nur $_IPS[‚VALUE‘] in den If Vergleich einbauen.
Michael