NEWS
Aternative Methode für getObjectList
-
Ich habe ein Problem bei einem Scipt mit dem ich bestimme Datenpunkte HmIP Geräte als Liste haben möchte. Konkret z.B. die Liste aller Fensterkontakte. Ja ich habe auch gelesen, dass die Methode getObjectList veraltet ist und nicht vorhanden ist. Welche Alternive gibt es um sich eine Liste bestimmter Datenpunkte zu erstellen.?
Hier ein kurzes Testscript um zu zeigen was ich meine:
// Ersetzen Sie 'hm-rpc.0' durch Ihren gewünschten Pfad
const rootPath = 'hm-rpc.0';// Alle Objekte unter dem angegebenen Pfad auflisten
const objects = getObjectList({ startkey: rootPath, endkey:${rootPath}\u9999
});// Filtern und ausgeben der Datenpunkte, die mit '0000' beginnen
const filteredObjects = objects
.filter(obj => obj._id.startsWith(${rootPath}.0000
))
.map(obj => obj._id);filteredObjects.forEach(id => console.log(id));
-
@flying-bolt sagte: bestimme Datenpunkte HmIP Geräte als Liste
Siehe $Selector()
-
@paul53 vielen Dank für die schnelle Antwort und ja der
$
-Selector ist mächtig und bietet viele Funktionen für den Umgang mit ioBroker-Objekten und -Zuständen. Aber in Hinweisen habe ich gelesen, dass die Verwendung des$
-Selectors in den aktuellen Versionen von ioBroker als veraltet betrachtet wird, und es wird empfohlen, die Funktionen vongetState
,setState
und anderen Funktionen der Skript-Engine zu verwenden.Genau das habe ich leider erfolglos versucht.
-
@flying-bolt sagte: gelesen, dass die Verwendung des $-Selectors in den aktuellen Versionen von ioBroker als veraltet betrachtet wird,
Wo gelesen?
-
@paul53 OpenGPT 3.5
-
@flying-bolt wie würde das obige Script aussehen, wenn man es mit $ Select implementiert?
-
const ids = $('hm-rpc.0.0000*'); ids.each(function(id) { log(id); });