Unterschied zwischen Rule, Script, Scene und Schedule

Einrichtung der openHAB Umgebung und allgemeine Konfigurationsthemen.

Moderatoren: seppy, udo1toni

Antworten
Hoggle
Beiträge: 221
Registriert: 16. Dez 2017 10:49
Answers: 0

Unterschied zwischen Rule, Script, Scene und Schedule

Beitrag von Hoggle »

Kann mich mal jemand mit "normalen" Worten über die Unterschiede informieren? Herr/Frau Google hat mich nur noch mehr verwirrt.
Schedules sind einfach gesagt Rules, die zu einer speziellen Zeit ausgeführt werden???
Der Unterschied zwischen Rule und Script verstehe ich nicht.
Und was sind Scenes?
Ich habe mal eine Testscene angelegt, aber ich kann nur Items auswählen und sehe nicht, was ich damit machen kann?

Benutze OH4 RC1
RPI4/8GB RAM mit openhabian (bullseye) - Kernel Linux 6.1.21-v8+ - openhab 4.0.2 - Release Build - HM-CCU3 - ZWave UZB-USB Stick - Wifi-LED-Stripes - Logitech Harmony Hub - AVM Fritzbox - Enigma2-Box - Gardena HUB - Fronius-Binding - Miele@Home

Harka
Beiträge: 517
Registriert: 30. Apr 2021 13:13
Answers: 19

Re: Unterschied zwischen Rule, Script, Scene und Schedule

Beitrag von Harka »

Hi,
ich habe das so verstanden:
  • Rule = WENN und DANN
  • Schedule = Rule mit Zeit als Auslöser und dem Tag "Schedule" - wird in einer Wochenansicht angezeigt
  • Script = nur DANN ohne Auslöser (Blockly, DSL, ECMA …)
  • Scenes = nur DANN ohne Auslöser (Items mit Sollwert)
Alle 4 können einen (zusätzlichen) Auslöser vom Nutzer, Page per Widget, Floorplan-Marker oder eine Rule bekommen.

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

Re: Unterschied zwischen Rule, Script, Scene und Schedule

Beitrag von udo1toni »

Ja, das passt so ungefähr.
Immer dran denken, openHAB arbeitet eventbezogen.
Früher gab es nur Rules für die Automation. Entsprechend musste man z.B. für eine "Zeit Automation" eine Rule schreiben, die als Auslöser Time Cron nutzte. Wollte man so etwas wie Szenen realisieren, musste man eine Rule schreiben, die man durch ein bestimmtes Item (eben den Szenenwähler) triggern ließ. Wollte man von mehreren Rules aus identischen Code nutzen, so musste man diesen Code auch früher schon als Script im System ablegen und dann aus den Rules über callScript() aufrufen.

Weil das vielen Anwendern nicht flexibel genug war, wurde nun eine separate Möglichkeit geschaffen, scheduled Tasks anzulegen oder Scenes zu definieren.
Letztlich sind beide Varianten "kastrierte" Rules. Die entsprechende Funktionalität kann aus der Rule Engine auch nicht gestrichen werden, das wäre eine nicht hinzunehmende Regression.
Es gibt nun also einfach jeweils zwei Optionen, die gewünschte Art Automation zu erstellen.

Bezüglich der Scripte ist natürlich noch zu ergänzen, dass man früher ausschließlich DSL Scripte nutzen konnte, alles andere wäre allenfalls über Umwege (executeCommandLine) nutzbar gewesen.
Ich habe es noch nicht ausprobiert, aber in der Theorie sollte es nun egal sein, von welcher Rule-Art man welche Script-Art ausführt, also z.B. von DSL aus JavaScript, oder von JRuby aus ein Jython Script... das verspricht eine fantastische Flexibilität.
openHAB5.0.0 stable in einem Debian-Container (bookworm) (Proxmox 9.0.3, LXC)

Antworten