FHT80 fensterkontakte auslesen

Hallo Gemeinde,

in verschiedenen Räumen bei mir wird die FHT80b als Heizungsregelung eingesetzt.
Jetzt bin ich grade am scripten, denn ich möchte die dazugehörigen Fensterkontakte mit den Funktionen IPS_GetInstanceListByModuleID() und dann mit IPS_GetChildrenIDs()auslesen.
Was mich hier irritiert, ist die
Tatsache, daß der Fensterkontakt im Array mal an zweiter Position , mal an siebter Position…eben immer unterschiedlich auftaucht. Ich war eigentlich der Meinung, daß das Array immer gleich aufgebaut ist.

Liegt da irgend ein Denkfehler meinerseits vor, oder ist meine Abfrage falsch?

Grüße

direkt auslesen kann man sie nicht, aber wenn ich mir die fht80-b Variablen anschaue, dann stehen in IP-Symcon die Variable Fenster geöffnet, die ich ja benutzen kann immer in der selben Reihenfolge. Nur wenn ich mit besagter IPS_GetChildrenIDs() Funktion diese Variablen in ein Array schreibe, dann habe ich den Wert nicht immer an derselben Stelle im Array stehen. Darum geht’s.
Der Fensterkontakt ist natürlich nicht einzel auslesbar. Nur über die FHZ80b… Das ist klar.

Hallo cafis,

wie Arrays genau aufgebaut werden weiss ich nicht, die Problematik wird glaube ich hier

angesprochen.

Gruß
Bruno

Hallo cafis,

es gibt für jede Statusvariable einer Instance eine definierte „VariableID“. Deswegen ist dies der bessere Weg, da dieser auch funktioniert wenn die Variable mal verschoben wird.
Beispiel für die FHT Fensterkontakte:

<?
foreach (IPS_GetInstanceListByModuleID("{A89F8DFA-A439-4BF1-B7CB-43D047208DDD}") as $ID){
    $StatusVarID = IPS_GetStatusVariableID($ID,'WindowOpen');
    if (GetValue($StatusVarID)) $Status = "offen";
    else $Status = "geschlossen";
    echo IPS_GetName($ID)." " . $Status."
";
}
?>

Infos gibt es hier.

Gruß

…und ich setz mich hin und versuche das Rad neu zu erfinden.

siehe da es funktioniert.:smiley:
Ist ja ganz einfach.

Also das sind Statusvariablen. aha. Wieder ein Stück klüger geworden…:smiley: