Seite 1 von 1

Durchsuchen von Gruppen mit ECMA Skript

Verfasst: 24. Mär 2022 21:05
von Baumtasche
Hallo zusammen,

ich bin ein wenig am verzweifeln. Ich stelle gerade mein OH2.5 auf OH3 um, und erstelle die Regeln mit ECMA-Skript. Soweit habe ich inzwischen auch alles umgestellt, bis auf das Durchsuchen meiner Fenstergruppe. Ich habe ein Gruppe mit allen meinen Fenstern angelegt und will wissen, welches Fenster bzw. Fenster geöffnet ist /sind. In Openhab mit DSL habe ich es folgendermaßen gelöst - auch damals mit Hilfe von diesem Forum

Code: Alles auswählen

msg = gFenster.members.filter[ i | i.toString.contains("OPEN")].map[ label ].reduce[ s, label | s + " und " + label ]  
Seit zwei Tagen versuche im Internet die Syntax für Javaskript zu finden, um das zu realisieren, aber leider ohne Erfolg. Jetzt hoffe ich das hier jemand eine Idee hat.

Vielen Dank im voraus

Re: Durchsuchen von Gruppen mit ECMA Skript

Verfasst: 24. Mär 2022 22:55
von udo1toni
Warum?

ECMA ist noch nicht mal unbedingt eine sinnvolle Wahl, weil überhaupt nicht klar ist, ob es langfristig von openHAB unterstützt wird.
ECMA ist mit an Bord, weil Blockly ECMA Code erzeugt.

Re: Durchsuchen von Gruppen mit ECMA Skript

Verfasst: 25. Mär 2022 07:54
von Baumtasche
Na , ja ich war / bin der Meinung, dass Javaskript in Openhab die Zukunft ist. Außerdem haben einige berichtet das ihr Openhab mit DSL mit der Zeit immer langsamer wurde. Deswegen habe ich auf das neue Javaskript gesetzt.

Re: Durchsuchen von Gruppen mit ECMA Skript

Verfasst: 25. Mär 2022 10:34
von udo1toni
Also, mit der Zeit immer langsamer kann ich so nicht bestätigen.

Es ist halt wichtig, die Regeln korrekt zu definieren :) Ich hatte Beispielsweise mal eine Rule, welche sich selbst referenziert hat, sie hat auf received update getriggert und dann ein postUpdate ausgeführt, auf eben dieses Item, welches als Trigger angegeben war. Wenn die Rule einmal ausgelöst hat, lief sie etwa 20 mal pro Sekunde, wobei sie allerdings einige zehntel Sekunden für einen Durchlauf brauchte. Damit waren dann jedes Mal alle Threads durch diese Rule belegt und es ging nichts mehr, was auf Rules angewiesen war. Hat eine Weile gedauert, den Fehler zu finden, weil man eigenen Code meist nicht unter solchen Aspekten betrachtet… Nachdem ich den Denkfehler gefunden hatte, war das Problem schnell gefixt und seitdem macht das System keinen Ärger mehr. Ich betreibe openHAB seit 10 Jahren, da ist nix mit der Zeit langsam.
Zugegebenermaßen wird das System aber mindestens einmal im Monat neu gestartet - eher vielleicht zwei- bis dreimal, weil z.B. Softwareupdates anstehen oder es grundlegende Änderungen an der Konfiguration gibt, oder, oder, oder… Aber ich hatte auch schon mal einen Monat, in dem ich das System nicht angefasst habe…

Und wie gesagt, ECMA und JavaScript werden jetzt unterstützt, aber ob das so bleibt, steht in den Sternen.
Die DSL ist definitiv langsamer, aber ob das tatsächlich relevant ist, hängt vor allem davon ab, wie und was man steuert.

Re: Durchsuchen von Gruppen mit ECMA Skript

Verfasst: 25. Mär 2022 18:00
von Harka
Über den Umweg Blockly habe ich eine Möglichkeit gefunden durch Gruppen zu laufen. Dafür werden for...in-Schleifen erzeugt mit den Du die entsprechenden Zustände der Fenster auslesen kannst.
Beispiele: https://community.openhab.org/t/group-h ... y/130630/5
Ev. kannst Du ja damit was anfangen.

Re: Durchsuchen von Gruppen mit ECMA Skript

Verfasst: 25. Mär 2022 22:52
von Baumtasche
Mega , das ist die Lösung. Vielen Dank, hat mir sehr weitergeholfen.
Dieses Forum ist einfach spitze, bis jetzt konnte mir immer jemand helfen.

Daaaaanke