Wollte soeben wieder eine Frage fragen, da habe ich den Grund gesehen. Ich hatte die beiden Klammern unter dem Wort ChildrenIDs nicht wahrgenommen. Somit ist ja dies ein leerer Array und kein weiter verschachteltes. Also muss diese Ebene ja auch beim IF wegfallen. Und schon sieht die Ausgabe auch wesentlich freundlicher aus:
Habe die Sache etwas erweitern wollen. Möchte eine Objekt-ID zu Beginn festlegen. Dann auswerten, ob es ein Dummy Modul ist.
Aber $dummy_id ist nur im ersten IF gesetzt und scheint in dessen ELSE-Zweig verloren zu gehen. Füge ich Zeile 7 zusätzlich in Zeile 20 ein, funktioniert es. Was kann das sein?
<?
// Einrichtescript für Variablen und Scripte für die Rolladen unter den Räumen bzw. Links unter Webfront
// Id des Dummy-Moduls, unter dem die Variablen im Objektbaum angelegt werden sollen
$dummy_id = 38925 /*[Wohnzimmer\Rolladen\dummytestfenster]*/;
$dummy_id2 = $dummy_id;
// Id im WF, unter der der Link zum Dummy-Modul für das WF angelegt werden soll
$webfront_id = 43274 /*[Webfront\Räume\Wohnzimmer\Rolläden\Rolläden]*/ ;
// -----------------------------------------------------------------------------------------------------------------------------------------------
echo "Vor 1.IF: ".$dummy_id."
";
if ($dummy_id = 0 or $webfront_id = 0)
{
echo "Script wird nicht ausgeführt - es fehlen die korrekten Einträge für die Objekte, unter denen alles erstellt werde soll!";
}
else
{
echo "Vor 2.IF: ".$dummy_id."
";
$i = IPS_GetInstance($dummy_id);
print_r($i); // zu Debugzwecken
if ($i['ModuleInfo']['ModuleID'] != "{485D0419-BE97-4548-AA9C-C083EB82E61E}")
{
echo "Die ID ".$dummy_id." ist kein Dummy-Modul! Weitere Ausführung nicht möglich!";
}
else
{
echo "alles gut und nun geht es los";
}
}
?>