Rules verzögerung - OpenHab3

Allgemeine Fragen zum Thema "Smart Home" und Entscheidungshilfen

Moderator: seppy

Antworten
Wolle39
Beiträge: 66
Registriert: 28. Apr 2021 19:46

Rules verzögerung - OpenHab3

Beitrag von Wolle39 »

Hallo zusammen.

Ich habe ein Rule die ein sends a command to a item (insgesamt 7 Stück) sendet.
Also wenn der Status eines Items wechselt werden die 7 anderen Items angesprochen.

Es scheint so, als wären das zu viele auf einmal, den es werden nicht immer alle geschaltet.
Das ganze habe ich über die OpenHab - Rules vorgenommen.

Hier der Code

Code: Alles auswählen

triggers:
  - id: "1"
    configuration:
      itemName: Szenen_Beleuchtung
      command: "4"
    type: core.ItemCommandTrigger
conditions: []
actions:
  - inputs: {}
    id: "8"
    configuration:
      itemName: Anel1_LichtEingang
      command: ON
    type: core.ItemCommandAction
  - inputs: {}
    id: "3"
    configuration:
      itemName: Anel1_Grillplatz
      command: ON
    type: core.ItemCommandAction
  - inputs: {}
    id: "4"
    configuration:
      itemName: Anel1_LichtEingang
      command: ON
    type: core.ItemCommandAction
  - inputs: {}
    id: "5"
    configuration:
      itemName: Anel1_Treppenlichter
      command: ON
    type: core.ItemCommandAction
  - inputs: {}
    id: "6"
    configuration:
      itemName: Anel1_WasserLED
      command: ON
    type: core.ItemCommandAction
  - inputs: {}
    id: "7"
    configuration:
      itemName: Anel1_Wasserlauf
      command: ON
    type: core.ItemCommandAction
  - inputs: {}
    id: "2"
    configuration:
      itemName: Anel1_Baumlichter
      command: ON
    type: core.ItemCommandAction


Kann ich da eine Verzögerung zwischen jedem command einbauen?

Danke und Gruß
Wolle
Gruß Wolle
--------------------------------------------------------
Windows 11 und openHAB 4 im Einsatz

BOP
Beiträge: 197
Registriert: 23. Sep 2018 19:43
Answers: 1

Re: Rules verzögerung - OpenHab3

Beitrag von BOP »

Ich kann mir nicht vorstellen, dass openHAB das nicht schafft. Ich denke da liegt das Problem woanders.

Aber, warum packst du die Items nicht alle in eine Gruppe und schaltest dann die Gruppe? Für das Vorhaben benötigt es doch keine Rule, die Items einzeln schaltet.

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

Re: Rules verzögerung - OpenHab3

Beitrag von udo1toni »

Das Problem ist nicht openHAB :) sondern das Binding, welches die Koppelung zwischen openHAB und Hardware bildet. Anders ausgedrückt: openHAB ist nicht zu langsam, sondern zu schnell. Anel kann nur eine bestimmte Anzahl Kommandos pro Zeiteinheit senden. Leider ist es regelmäßig so, dass Bindings nicht in der Lage sind, die Befehle (unbegrenzt) zu puffern. Die Lösung mit einer Verzögerung ist also naheliegend und richtig.

Die Rule allerdings ist nicht geeignet, eine Verzögerung einzubauen.
Eine simple Rule auf Basis der Rules DSL sähe so aus:

Code: Alles auswählen

rule "szene aufrufen"
when
    Item Szenen_Beleuchtung received command 4
then
    Anel1_LichtEingang.sendCommand(ON)
    Thread::sleep(250)
    Anel1_Grillplatz.sendCommand(ON)
    Thread::sleep(250)
    Anel1_LichtEingang.sendCommand(ON)
    Thread::sleep(250)
    Anel1_Treppenlichter.sendCommand(ON)
    Thread::sleep(250)
    Anel1_WasserLED.sendCommand(ON)
    Thread::sleep(250)
    Anel1_Wasserlauf.sendCommand(ON)
    Thread::sleep(250)
    Anel1_Baumlichter.sendCommand(ON)
end
Diese Rule ist allerdings nicht sonderlich schön. Du willst die Lampen gemeinsam schalten, dann nutze ein Group Item und ordne die Items dem Group Item zu. Nehmen wir an, das Group Item heißt gAnel, dann sähe die Rule so aus:

Code: Alles auswählen

rule "szene aufrufen"
when
    Item Szenen_Beleuchtung received command 4
then
    gAnel.members.forEach[ i |
        i.sendCommand(ON)
        Thread::sleep(250)
    ]
end
Die 250 steht für 250 Millisekunden, das entspricht dann also vier Kommandos pro Sekunde.

Die Rule ist (in beiden Formen) auch über die UI anzulegen. Dabei wird der Trigger wie gehabt definiert, der Teil zwischen then und end landet bei add Action mit "Run a Script -> Rule DSL" in einem Script.
openHAB4.1.2 stable in einem Debian-Container (bookworm) (Proxmox 8.1.5, LXC), mit openHABian eingerichtet

Wolle39
Beiträge: 66
Registriert: 28. Apr 2021 19:46

Re: Rules verzögerung - OpenHab3

Beitrag von Wolle39 »

Hallo udo1toni.

Wie immer auf den Punkt!
So gemacht und es schnurrt jetzt alles.

Vielen Dank für deine / eure Unterstützung.

Gruß Wolle
Gruß Wolle
--------------------------------------------------------
Windows 11 und openHAB 4 im Einsatz

Antworten