NEWS
Objektbaum parsen
-
Hallo,
ich möchte gern den Objektbaum parsen und bestimmte Werte auslesen.
Also so ungefähr:
- Starte an der Wurzel
- Suche nach einem Ast der mit MQTT startet
- Suche darin nach Elementen "value"
- Gibt den Wert von "value" und den Pfad dahin aus
- Suche weiter nach einem Ast "Smartthings"
- Suche nach Elementen "Tag"
...
Ich kann zwar problemlos auf einzelne Elemente zugreifen, aber wie ich mit JS durch einen Baum wandere habe ich noch nicht gefunden.
-
Hallo,
ich möchte gern den Objektbaum parsen und bestimmte Werte auslesen.
Also so ungefähr:
- Starte an der Wurzel
- Suche nach einem Ast der mit MQTT startet
- Suche darin nach Elementen "value"
- Gibt den Wert von "value" und den Pfad dahin aus
- Suche weiter nach einem Ast "Smartthings"
- Suche nach Elementen "Tag"
...
Ich kann zwar problemlos auf einzelne Elemente zugreifen, aber wie ich mit JS durch einen Baum wandere habe ich noch nicht gefunden.
@warhammer73 sagte: wie ich mit JS durch einen Baum wandere
Das geht nur "rückwärts", beginnend bei einem Datenpunkt, den man mit dem $Selector finden kann.
-
Hallo,
ich möchte gern den Objektbaum parsen und bestimmte Werte auslesen.
Also so ungefähr:
- Starte an der Wurzel
- Suche nach einem Ast der mit MQTT startet
- Suche darin nach Elementen "value"
- Gibt den Wert von "value" und den Pfad dahin aus
- Suche weiter nach einem Ast "Smartthings"
- Suche nach Elementen "Tag"
...
Ich kann zwar problemlos auf einzelne Elemente zugreifen, aber wie ich mit JS durch einen Baum wandere habe ich noch nicht gefunden.
der js-controller besitzt die Funktion getForeignStates (in verschiedenen Ausprägungen, welche aber im javascript-adapter nicht bereitgestellt wurde (könnte man aber, warum auch immer man diese ausgelassen hat, Performance?)
https://github.com/ioBroker/ioBroker.js-controller/blob/851d3cfa4fed442b25db63e3455b29f5081e45b6/packages/adapter/src/lib/adapter/adapter.ts#L9180Wenn du einen eigenen Adapter erstellts, hast du über das Adapter-Objekt Zugriff auf diesen Befehl.
Für deinen Anwendungsfall dürfte wahrscheinlich das folgende der bessere Weg sein.
Du installierst dir den Adapter SimpleAPI und kannst dann über den RequestAlle Objekte
https://github.com/ioBroker/ioBroker.simple-api#objects-1oder nach Suchmuster
https://github.com/ioBroker/ioBroker.simple-api#objectsabrufen und dann bekommst du die Daten als JSON zurück.
Nachtrag: gibt auch noch den Befehl
https://github.com/ioBroker/ioBroker.simple-api#states-1
Hey! Du scheinst an dieser Unterhaltung interessiert zu sein, hast aber noch kein Konto.
Hast du es satt, bei jedem Besuch durch die gleichen Beiträge zu scrollen? Wenn du dich für ein Konto anmeldest, kommst du immer genau dorthin zurück, wo du zuvor warst, und kannst dich über neue Antworten benachrichtigen lassen (entweder per E-Mail oder Push-Benachrichtigung). Du kannst auch Lesezeichen speichern und Beiträge positiv bewerten, um anderen Community-Mitgliedern deine Wertschätzung zu zeigen.
Mit deinem Input könnte dieser Beitrag noch besser werden 💗
Registrieren Anmelden