openHAB 3 und die Next Gen Rule Engine

Allgemeine Fragen zum Thema "Smart Home" und Entscheidungshilfen

Moderator: seppy

Tokamak
Beiträge: 45
Registriert: 20. Aug 2019 08:37
Answers: 1
Wohnort: Aachen

openHAB 3 und die Next Gen Rule Engine

Beitrag von Tokamak »

Hallo zusammen,

wenn ich das richtig verstehe, soll mit openHAB 3 die Next Generation Rule Engine zur Standard-Engine werden, so dass JSR223 Scripting offiziell unterstützt wird.

Kann man daraus ableiten, dass die XBase-Rules-DSL auf der Liste der bedrohten Arten steht und nicht mehr weiterentwickelt wird? Ist es sinnvoll, bei neuen größeren Änderungen bzw. Erweiterungen bereits heute auf JSR223-Scripting zu setzen?

Viele Grüße
Raspberry 4 mit openhabian OH 2.4
Debian mit OH 2.5

Benutzeravatar
peter-pan
Beiträge: 661
Registriert: 28. Nov 2018 12:03
Answers: 3
Wohnort: Schwäbisch Gmünd

Re: openHAB 3 und die Next Gen Rule Engine

Beitrag von peter-pan »

... also ich hab NGRE und Scripted Automation mal auf meiner Test-Maschine installiert. Und muss sagen, dass das doch Welten sind (zumindest für mich). Obwohl man da ja mit Python, Groovy und JavaScript programmieren kann (ich aber leider nicht :cry: ).

Ich hab mal versucht eine kleine Regel zu schreiben, die nur eine "logInfo" ausgibt,

Code: Alles auswählen

from core.rules import rule
from core.triggers import when

@rule("my First Rule", description="Das ist Peter's erste JSR223 Rule", tags=["gutenTag", "schlechtenTag"])

@when("Item Dummy1 changed to ON")

def myFirstRule_function(event):
    myFirstRule_function.log.info("Dummy1 has switched to ON")  # logs only with "log:set debug jsr223"  ????
    events.postUpdate("Dummy31", "ON")
    myFirstRule_function.log.info("Dummy31 has switched to {}".format(items["Dummy31"]))

....das hat gedauert.

Es gibt so viele Möglichkeiten um zu loggen, da hat's bei mir schon ausgesetzt :o , aber deshalb fang ich schon mal an zu üben ;)

Ich kann mir aber nicht vorstellen das DSL so von jetzt auf nachher abgestellt wird. Wenn ich nur daran denke !!! :roll: . Aber die Entwicklung bleibt halt nicht stehen.

Tokamak
Beiträge: 45
Registriert: 20. Aug 2019 08:37
Answers: 1
Wohnort: Aachen

Re: openHAB 3 und die Next Gen Rule Engine

Beitrag von Tokamak »

Selbst, wenn die Rules-DSL nicht so schnell rausgekegelt wird, würde ich doch kein totes Pferd reiten wollen.

Die Abschaffung kann auch durch die Hintertür erfolgen, siehe etwa die fehlende v1-Binding-Unterstützung in OH 3.

Eine fehlende Weiterentwicklung kommt für mich einer schrittweisen Abschaltung gleich. Vor der OH3-Ankündigung hatte ich gehofft, dass die Rules-DSL weiterentwickelt werden würde, so dass man etwa eigene Klassen ggf. mit statischen Methoden, idealerweise Modul-übergreifend /reusable, nutzen kann.

Es geht mir da gar nicht um eine Kritik an der Entscheidung, nur um eine Roadmap. Wo soll es hingehen?
Raspberry 4 mit openhabian OH 2.4
Debian mit OH 2.5

violine21
Beiträge: 189
Registriert: 20. Sep 2019 05:49

Re: openHAB 3 und die Next Gen Rule Engine

Beitrag von violine21 »

Hallo,
hier hatte Udo schon eine kurze Info gegeben:
udo1toni hat geschrieben:
1. Feb 2020 14:24
Es geht in die Richtung Jython, wobei das Konzept verschiedene Sprachen zulässt. Das ist jetzt schon nutzbar, und die Gemeinde wird an dieser Stelle auch immer größer. Ich nutze das bisher aber nicht, da bisherige Codebeispiele mir unverständlicher erscheinen. Ich will mich damit momentan nicht auseinander setzen. :)

Die Idee dahinter ist aber super, denn es wird dann möglich, Rules so zu generalisieren, dass man komplette Lösungen für ein Problem als "Modul" anbieten kann, der Anwender muss dann nur noch die notwendigen Items anlegen und auf beiden Seiten verknüpfen - einmal in Richtung Channels, einmal in Richtung Rule.
Das interessiert mich auch, da es wohl besser ist, sich gar nicht mehr in das alte System rein zu arbeiten.
Ich denke aber, das angesichts der Menge der OH-User die das jetzige Rule-System nutzen, am Ende etwa so etwas wie eine Rule-Migration zur Verfügung steht.

Benutzeravatar
seppy
Beiträge: 729
Registriert: 24. Sep 2015 20:25
Answers: 4
Wohnort: Bonn

Re: openHAB 3 und die Next Gen Rule Engine

Beitrag von seppy »

Hi,
was mir nicht klar ist, warum immer derUmweg über eine "Scriptsprache". Wenn ich mir die Syntax und die Komplexität so anschaue, könnte man die Regeln noch gleich in nativ Java schreiben ... oder verstehe ich etwas falsch.
Grüße,
Seppy
Homematic und HomematicIP über Raspberrymatic (RaspPi 4 4GB) mit 2x HMLAN. Steuerung und Visualisierung durch OpenHAB2 auf RaspPi in Hutschienengehäuse im Sicherungskasten. Rund 100 Aktoren/Sensoren

- Abgesichert durch APC USV
- Bewässerungssteuerung mit Hunter Magnetventilen (HM-LC-Sw4-DR)
- Beleuchtungssteuerung Innen und Aussen (HM-LC-Sw4-DR + HM-LC-SW1-FM + HMW-IO-12-SW7-DR)
- Rolladensteuerung mit Beschattungsautomatik über Temperaturdifferenzsensor (HM-LC-Bl1PBU-FM)
- Wetter und Unwetterinformationen von wunderground
- Benachrichtigung der Bewohner via Pushover
- Multimediawand und Dreambox Steuerung (HM-LC-SW1-FM)
- Heizungssteuerung mit Komfort und Energiesparfunktionen (HM-CC-RT-DN + HM-Sec-SC-2 + HMIP-eTRV-2)
- Werkstatt Kompressorsteuerung (HMW-IO-12-SW7-DR)
- Weihnachtsbeleuchtung außen
- Präsenzerkennung über Geolocation (iCloud Binding), iBeacon und WLAN (Unifi Binding)
- Philips HUE & Tasmota Devices (Tuya) Einbindung

Benutzeravatar
udo1toni
Beiträge: 2950
Registriert: 11. Apr 2018 18:05
Answers: 16
Wohnort: Darmstadt

Re: openHAB 3 und die Next Gen Rule Engine

Beitrag von udo1toni »

Es ist erklärtes Ziel, die DSL abzuschaffen. Das wird aber noch dauern. Auch OH3 wird volle Funktionalität über die DSL bieten (zumindest ist das so bei mir angekommen).
openHAB ist ein recht altes Projekt, als ich 2012 eingestiegen bin, war gerade OH1.0 aktuell, und das ist auch nicht über Nacht entstanden. Die verschiedenen Techniken wurden baukastenartig zusammengesetzt, um in kurzer Zeit ein vollständiges System zu erhalten (Es gab auch mal einen Editor für openHAB Dateien, den openHAB Designer, der ähnlich vollständig funktionierte, wie jetzt VSCode, also mit Fehleranzeige, Kontexthilfe, Autocompletion)
Die DSL war da ein logischer Weg. Die DSL (DomainSpecificLanguage) ermöglicht es, komfortabel Programme zu entwickeln, ohne gleich einen kompletten Parser oder Compiler programmieren zu müssen. Nur deshalb kann man Items als Objekte nutzen, mit all den Vorteilen, die sich daraus ergeben.
Letztlich ist es egal, welche Sprache man verwendet, das könnte auch Basic sein ;) aber die zu verwendenden openHAB Objekte müssen komfortabel zur Verfügung stehen, so wie in der DSL. Imports die immer gebraucht werden, sind eher lästig, das war in OH1 für die DSL auch nötig, aber in OH2 nicht mehr (die wichtigsten Imports werden automatisch vorgenommen). Ich hoffe inständig, dass dies in OH3 dann auch für Jython und Konsorten so sein wird.

Wie erwähnt kann man schon jetzt umsteigen und openHAB vollumfänglich mittels Jython automatisieren, man muss aber die Unterstützung dafür händisch installieren und mit einigen Einschränkungen leben (frag nicht welche, ich hab das auch nicht verstanden).

Jython hat gegenüber der DSL mindestens den Vorteil, dass der Code wesentlich schneller abgearbeitet wird (wenn ich mich richtig erinnere, so ungefähr Faktor 50). Dafür ist aber der Code in meinen Augen weitaus schlechter lesbar und nicht so gut verständlich - das mag aber mein persönliches Empfinden sein.

Benutzeravatar
sihui
Beiträge: 848
Registriert: 11. Apr 2018 19:03
Answers: 1

Re: openHAB 3 und die Next Gen Rule Engine

Beitrag von sihui »

udo1toni hat geschrieben:
12. Feb 2020 16:29
Dafür ist aber der Code in meinen Augen weitaus schlechter lesbar und nicht so gut verständlich - das mag aber mein persönliches Empfinden sein.
Nee, ist bei mir genauso ... ich habe zwar die Unterstützung für Jython auf einem Testsystem bereits installiert, werde aber noch nicht so ganz warm damit :oops:
openHAB2 mit Zwave, Tinkerforge, Alexa, ESP8266, Logitech Harmony, Philips HUE und Xiaomi Hardware

Tokamak
Beiträge: 45
Registriert: 20. Aug 2019 08:37
Answers: 1
Wohnort: Aachen

Re: openHAB 3 und die Next Gen Rule Engine

Beitrag von Tokamak »

Ja, die Unterstützung ist noch sehr mau. Gefunden habe ich Helper Libraries for openHAB Scripted Automation.

Es war schon ein hartes Stück Arbeit, sich in die Rules-DSL reinzufuchsen, was dank zahlreicher Forenbeiträge immer wieder ging.

Bei Jython ist die Dokumentationslage viel dünner. Forenbeiträge sind, wenn überhaupt, nur in homöpathischen Dosen zu finden.
Raspberry 4 mit openhabian OH 2.4
Debian mit OH 2.5

Benutzeravatar
peter-pan
Beiträge: 661
Registriert: 28. Nov 2018 12:03
Answers: 3
Wohnort: Schwäbisch Gmünd

Re: openHAB 3 und die Next Gen Rule Engine

Beitrag von peter-pan »

sihui hat geschrieben:
12. Feb 2020 20:08
Nee, ist bei mir genauso ... ich habe zwar die Unterstützung für Jython auf einem Testsystem bereits installiert, werde aber noch nicht so ganz warm damit
Was meinst du mit "Unterstützung für Jython" ! Die "helper libraries" ??? Oder gibt es da noch etwas anderes ?

Ja dieser "Stoff" ist wirklich gewöhnungsbedürftig, zumal ich immer noch mit den Möglichkeiten (und natürlich auch den Tücken :oops: - für mich) der Rules-DSL, z.B. "Lambda" :?: zu "kämpfen" habe.

An OH1-Bindings, habe ich "Gott sei Dank" nur noch "HTTP" und "MapDB", die sicherlich in der nächsten Zeit portiert werden, wenn es auf OH3 zugeht, da das doch schon sehr "schwergewichtige" Bindings sind und auch in Zukunft eine Rolle spielen werden.

Benutzeravatar
sihui
Beiträge: 848
Registriert: 11. Apr 2018 19:03
Answers: 1

Re: openHAB 3 und die Next Gen Rule Engine

Beitrag von sihui »

peter-pan hat geschrieben:
13. Feb 2020 10:23
Was meinst du mit "Unterstützung für Jython" ! Die "helper libraries" ???
Ja.
openHAB2 mit Zwave, Tinkerforge, Alexa, ESP8266, Logitech Harmony, Philips HUE und Xiaomi Hardware

Antworten