Seite 1 von 1

Rule; Temperatur triggert nicht

Verfasst: 2. Dez 2022 19:58
von Uwe307
Hallo zusammen,

ich habe ein Problem mit dem Rule-Assistenten. Ich nutze einen Temperaturfühler, der an einem SonOff-Schalter angeschlossen ist und möchte von der angezeigten Temperatur die Heizung umschalten. Leider triggert die Abfrage nie!?

configuration: {}
triggers:
- id: "1"
configuration:
itemName: EG_WZ_Leselampe_TemperaturWohnzimmer
state: < 15.1
type: core.ItemStateChangeTrigger
conditions: []
actions:
- inputs: {}
id: "2"
configuration:
message: Temp Low
type: notification.SendBroadcastNotification

Ist die angezeigte Temperatur gar keine Zahl, sondern ein Text?

Vielen Dank fürs Lesen!

LG
Uwe

Re: Rule; Temperatur triggert nicht

Verfasst: 2. Dez 2022 21:40
von peter-pan
So wie es aussieht, fehlt in deiner Regel auf jeden Fall der Operator, bzw. steht falsch.
Hier mal eine Muster-Regel, die ich mit dem Rule-Editor erstellt habe.

Code: Alles auswählen

configuration: {}
triggers:
  - id: "1"
    configuration:
      itemName: esp_amica_01_temp1
    type: core.ItemStateChangeTrigger
conditions:
  - id: "3"
    configuration:
      itemName: esp_amica_01_temp1
      operator: <
      state: "15.5"
    type: core.ItemStateCondition
actions:
  - inputs: {}
    id: "2"
    configuration:
      type: application/vnd.openhab.dsl.rule
      script: logInfo("test trigger", "Test Trigger")
    type: script.ScriptAction
Den Status-Wert habe ich nicht in HOCHKOMMA ("15.5") gestellt. Das hat der Editor gemacht. Ich weiss auch nicht, wie das mit Items ist, die eine Einheit haben.

Re: Rule; Temperatur triggert nicht

Verfasst: 2. Dez 2022 23:53
von udo1toni
Der eigentliche Punkt ist ein Missverständnis.

OpenHAB arbeitet eventgesteuert. Rules werden ausgeführt, wenn ein bestimmtes Ereignis auftritt. Dieses Ereignis wird im when-Teil der Rule definiert.
Wert < 15.5 ist kein Ereignis, sondern ein Zustand. Es ist wichtig, den Unterschied zu verstehen, dann fällt es auch leichter, in openHAB Rules zu definieren.

Ein Ereignis wäre z.B. eine Wertänderung, auch hin zu einem konkreten Wert oder weg von einem konkreten Wert, oder auch beides. In diesem Fall bringt das aber nichts.
Stattdessen muss Deine Rule also auf die Wertänderung als solche reagieren.

Nun soll die Rule aber nur dann tätig werden, wenn der Wert unter 15.5 sinkt. Hier kommt der But-Only-If Teil der Rule zum Tragen. Hier können konkrete Einschränkungen aufgrund von Zuständen gemacht werden, also z.B. Wert < 15.5.

Also unter when -> Item geändert (ohne irgendwas anderes)
unter but only if -> Itemstatus < 15.5
Und unter then -> Heizung einschalten (oder was auch immer).

Grundsätzlich: Zustand -> etwas andauerndes. Event -> kann immer einem konkreten Zeitpunkt zugeordnet werden, notfalls auf eine Millisekunde genau.

Re: Rule; Temperatur triggert nicht

Verfasst: 3. Dez 2022 17:17
von Uwe307
Hallo peter-pan und udo1toni,

herzlichen Dank für die tolle und umfassende Hilfe!!!

Damit werde ich zurecht kommen.

LG
Uwe