Variablen ID aus einem link herausbekommen

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 :slight_smile:

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 :wink:

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