Liste aller Objekt-IDs in einem Teilbaum

Hallo zusammen,

gibt es eigentlich einen Befehl, mit dem man alle Objekt-IDs in einem Teilbaum listen kann?

IPS_GetObjectList liefert alle Objekt-IDs des kompletten Objektbaums, man kann hier nicht eine andere Wurzel-ID angeben.

Und IPS_GetChildrenIDs gibt nur die direkten Unter-Objekte zurück, man kann hier keinen Scope definieren.

Ich würde was in der Art suchen:


$arrayChildIDs = IPS_GetObjectList($differentRootId);

oder


$arrayChildIDs = IPS_GetChildrenIDs($differentRootId, Array('Scope' => 'Sub'));

oder alternativ auch ein boolean Parameter für sub / nicht sub;

Hab ich da was übersehen?

Viele Grüße

Gustl

Ich hatte mir mal für sowas ein Skript geschrieben. Findest Du jetzt hier

Viele Grüsse
Harald

Hallo Harald,

Danke für das Skript. Du iterierst also alles von Hand mit einem Start mit anhand der Childitems durch.

Bei meinen Tests am Wochendende habe ich es jetzt so gelöst:

  • Ich hole mir alle ObjekteId in einen Array per IPS_GetObjectList.
  • Dann iteriere ich diese per foreach durch, hole mir den Variablennamen und wenn dieser auf eine Regex match (In diesem Fall die Standard-Namen für Z-Wave Strom-Metering) dann hol ich mir die Object-ID des Parent.
  • Dann hole ich mir alle Childitems und schau, ob ich da eine Variable finde, deren Namen auf die Regex für meine Stromkosten passt
  • Wenn die Variable existiert werden die Stromkosten berechnet, ansonste eine Meldung ins Log geschrieben, dass noch eine Variable benötigt wird.

Ich poste heute Abend mal den Code.

Ich habe eigentlich gedacht, dass eine direkte IPS-Funktion das ohne viel Overhead erledigen kann. Nachdem aber selbst mein aufwändiger Rotz da oben in deutlich weniger als einer Sekunde durchläuft lohnt sich der Aufwand wohl gar nicht.

Ich werde das trotzdem mal gegen as Skript von Dir tauschen, weil mich interessiert, was schneller läuft.

Viele Grüße und vielen lieben Dank.

Gustl