OH3 UI, Rules: Zweck von "run now" (Ctrl-R)

Einrichtung der openHAB Umgebung und allgemeine Konfigurationsthemen.

Moderatoren: seppy, udo1toni

Antworten
martin_aus_Ddorf
Beiträge: 56
Registriert: 2. Apr 2018 15:45
Answers: 0

OH3 UI, Rules: Zweck von "run now" (Ctrl-R)

Beitrag von martin_aus_Ddorf »

Hallo zusammen,

wenn ich in OH3 auf der Web Oberfläche eine Rule erstelle, dann nahm ich an, dass ich diese mit dem Button "run now" testen kann. Dass das also den Trigger ersetzt und die Aktion abhängig von weiteren Bedingungen ausführt.

Tuts aber nicht.

Ich habe ein Item "_Rasenzeitsteuerung" mit den Zuständen on und off. In einer bereits täglich laufenden Rule wird dieser Schalter ausgewertet und auch beachtet. Bei off zündet die Rule die "then" Bedingung nicht. Alles suppi.

Nur wenn ich die gleiche Rule mit "run now" testen will (oder eben andere Bedingungen), dann wir die "then" Bedingung immer ausgeführt.

In der OH Doku habe ich nichts zu dem Button "run now" finden können. Hat jemand eine Idee, was das dann soll, oder besser noch, wie ich meine Rule wirklich testen kann?

Danke euch!

Grüße
Martin

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

Re: OH3 UI, Rules: Zweck von "run now" (Ctrl-R)

Beitrag von peter-pan »

... das kann ich mir fast nicht vorstellen. Wie sehen denn die Regeln aus ?
Pi5/8GB(PiOS Lite 64-bit(bookworm)/SSD 120GB - OH4.3.5 openhabian

martin_aus_Ddorf
Beiträge: 56
Registriert: 2. Apr 2018 15:45
Answers: 0

Re: OH3 UI, Rules: Zweck von "run now" (Ctrl-R)

Beitrag von martin_aus_Ddorf »

isch schwör!

Code: Alles auswählen

triggers:
  - id: "1"
    configuration:
      cronExpression: 0 0 7,9,11,13,15,17,19 * * ? *
    type: timer.GenericCronTrigger
conditions:
  - inputs: {}
    id: "9"
    configuration:
      itemName: Rasenzeitsteuerung
      state: ON
      operator: =
    type: core.ItemStateCondition
  - inputs: {}
    id: "3"
    label: weniger als 1 mm in den letzten 24 h
    configuration:
      itemName: OneCallAPIhistorydata_Regen
      state: "1"
      operator: <=
    type: core.ItemStateCondition
  - inputs: {}
    id: "4"
    label: derzeit weniger als 0,1 mm Regen
    configuration:
      itemName: Wetterinformationen_Regen
      state: "0.1"
      operator: <=
    type: core.ItemStateCondition
  - inputs: {}
    id: "5"
    label: in den nächsten 3 Stunden weniger als 0,3 mm Regen
    configuration:
      itemName: Localweatherandforecast_VorhergesagterRegen
      state: "0.3"
      operator: <=
    type: core.ItemStateCondition
actions:
  - inputs: {}
    id: "2"
    configuration:
      itemName: SchattenrasenAnAus
      command: ON
    type: core.ItemCommandAction
Test war das Item Rasenzeitsteuerung. Ist das auf OFF, zündet die Regel wie gewünscht im Realbetrieb NICHT. Im Test aber immer, unabhängig von der Schalterstellung des Item Rasenzeitsteuerung.

Grüße
Martin

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

Re: OH3 UI, Rules: Zweck von "run now" (Ctrl-R)

Beitrag von peter-pan »

...mea culpa. Ich hab's gerade mal ausprobiert mit einer Test-Rule und es wurde die IF-Anweisung schlicht und einfach nicht beachtet. Das ist ja mal richtig sch....ade.

Wenn ich das gleiche mit einer DSL-Rule erledige und "run now" anklicke, dann werden die Bedingungen aber richtig behandelt.

Ist das ein Bug, oder sind wir zu blöd :D :D ???
Pi5/8GB(PiOS Lite 64-bit(bookworm)/SSD 120GB - OH4.3.5 openhabian

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

Re: OH3 UI, Rules: Zweck von "run now" (Ctrl-R)

Beitrag von udo1toni »

Ich glaube, da herrscht ein Missverständnis.
Der Trigger startet die Rule, unter der Bedingung, die unter Only If definiert ist.
Der Run Now Knopf startet die Rule. Punkt.
openHAB4.3.6 stable in einem Debian-Container (bookworm) (Proxmox 8.4.1, LXC), mit openHABian eingerichtet

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

Re: OH3 UI, Rules: Zweck von "run now" (Ctrl-R)

Beitrag von peter-pan »

udo1toni hat geschrieben: 9. Jun 2021 22:07 Der Trigger startet die Rule, unter der Bedingung, die unter Only If definiert ist.
Der Run Now Knopf startet die Rule.
...sorry, das hab ich jetzt nicht ganz verstanden.
Ich habe mal zum besseren Verständnis eine kleine Regel gemacht. Einmal über die WebUI mit dem Rules-Designer:

Code: Alles auswählen

triggers:
  - id: "1"
    configuration:
      itemName: Sonoff_Basic_03
      state: ON
      previousState: OFF
    type: core.ItemStateChangeTrigger
conditions:
  - inputs: {}
    id: "3"
    configuration:
      itemName: Sonoff_T1_01
      state: ON
      operator: =
    type: core.ItemStateCondition
actions:
  - inputs: {}
    id: "2"
    configuration:
      itemName: Sonoff_Basic_04
      command: ON
    type: core.ItemCommandAction
Und einmal als DSL-Rule:

Code: Alles auswählen

// Triggers:
// - When Sonoff_Basic_03 changed to ON

// context: test-7
if (Sonoff_T1_01.state == ON) {
    logInfo("Sonoff-Schalter", "Deckenlampe brennt")
    Sonoff_Basic_04.sendCommand(ON)
    }
else {
   logInfo("Sonoff-Schalter","Deckenlampe ist nicht angeschaltet {}", Sonoff_T1_01.state )
     }
Wenn ich nun bei der ersten Regel den "Run Now" Knopf drücke, wird nicht berücksichtigt, ob die Bedingung (Sonoff_T1_01= ON) erfüllt ist. Die folgende Aktion wird einfach ausgeführt.

Wenn ich das (für mein Verständnis) gleiche mit der DSL-Rule mache und den "Run_Now"-Knopf drücke, wird die IF-Anweisung (if (Sonoff_T1_01.state == ON)) jedoch berücksichtigt.

Wo ist der Denkfehler ?
Pi5/8GB(PiOS Lite 64-bit(bookworm)/SSD 120GB - OH4.3.5 openhabian

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

Re: OH3 UI, Rules: Zweck von "run now" (Ctrl-R)

Beitrag von udo1toni »

Der Denkfehler liegt darin, dass Du den But Only If-Bereich als Teil Deines Codes siehst (was er nicht ist). Conditions sind Conditions, keine bedingten Verzweigungen.
Bei klassischen Rules gibt es keine Conditions, stattdessen wird die Rule bei jedem Trigger ausgeführt. Es bleibt dann dem Code überlassen, geforderte Randbedingungen abzuprüfen.

Wenn Du so willst, sind die Conditions das nachgerüstete AND im Trigger-Teil (wobei das natürlich so nicht stimmt, aber man kann es sich so vorstellen...)
openHAB4.3.6 stable in einem Debian-Container (bookworm) (Proxmox 8.4.1, LXC), mit openHABian eingerichtet

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

Re: OH3 UI, Rules: Zweck von "run now" (Ctrl-R)

Beitrag von peter-pan »

udo1toni hat geschrieben: 10. Jun 2021 10:09 Der Denkfehler
👍. Ich hab dir ja von meinem Traum (im anderen Thread) geschrieben ;) :lol:
Pi5/8GB(PiOS Lite 64-bit(bookworm)/SSD 120GB - OH4.3.5 openhabian

Antworten