OH3: OWM Temp basierte Regel

Einrichtung der openHAB Umgebung und allgemeine Konfigurationsthemen.

Moderatoren: seppy, udo1toni

AndreM77
Beiträge: 127
Registriert: 2. Feb 2021 21:31
Answers: 0

OH3: OWM Temp basierte Regel

Beitrag von AndreM77 »

Hi,

wenn es wärmer wird, möchte ich die Rolladen schließen (erst einmal zeitunabhängig, um für mich die Basics im Zusammenspiel zu verstehen).

Die Regel erstelle ich im PaperUI - Dialog.
triggers:
- id: "1"
configuration:
itemName: Weather_OWM_Temperature
state: "> 20"
type: core.ItemStateUpdateTrigger
conditions: []
actions:
- inputs: {}
id: "2"
configuration:
itemName: OG_Eltern_Dachfenster_Position
command: DOWN
type: core.ItemCommandAction
- inputs: {}
id: "3"
configuration:
itemName: OG_Kind2_Dachfenster_Position
command: DOWN
type: core.ItemCommandAction
Es passiert aber keine Action. Ich nehme an, der Trigger "When" zieht nicht, weil im "Weather_OWM_Temperature" 20 °C" steht.

Wie geht man jetzt damit am besten um? Das Item entsprechend umbauen? Was mach ich dann mit der Anzeige z.B. im HABPanel, oder macht man etwas an der Rule?

Hab jetzt hier eine Weile gesucht, aber viele haben scheinbar immer noch rules() aka OH2. Und jetzt hab ich mir doch wirklich schon fast alles aus den Textdateien heraus migriert und abgewöhnt o)

Danke & Grüße
André
--
Connectivity: Z-WAVE, TCP/IP, Velux KLF200, Hue Bridge und IO-Homecontrol
Backend: openHAB 4.0.2 im Docker Container auf QNAP NAS
UI: HABPanel auf Amazon Fire 8

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

Re: OH3: OWM Temp basierte Regel

Beitrag von udo1toni »

Du kannst im Trigger-Teil der Rule keine Conditions setzen. Du kannst triggern, wenn ein Itemstatus einen bestimmten Wert annimmt, nicht aber, wenn ein bestimmter Wert über- oder unterschritten wird. Was Du stattdessen tun kannst: die Rule löst bei Änderung des Status aus (das state-Feld bleibt dabei leer). Zusätzlich setzt Du über den But Only If Teil eine Condition. Hier kannst Du als Condition prüfen, ob ein bestimmter Wert überschritten wurde.
openHAB4.3.6 stable in einem Debian-Container (bookworm) (Proxmox 8.4.1, LXC), mit openHABian eingerichtet

AndreM77
Beiträge: 127
Registriert: 2. Feb 2021 21:31
Answers: 0

Re: OH3: OWM Temp basierte Regel

Beitrag von AndreM77 »

ah, good to know. Danke Udo!

Und der Inhalt "22" vs. "20 °C" (meine eigentliche Frage) ist OH egal?

Danke & Grüße
André
--
Connectivity: Z-WAVE, TCP/IP, Velux KLF200, Hue Bridge und IO-Homecontrol
Backend: openHAB 4.0.2 im Docker Container auf QNAP NAS
UI: HABPanel auf Amazon Fire 8

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

Re: OH3: OWM Temp basierte Regel

Beitrag von udo1toni »

AndreM77 hat geschrieben: 10. Jun 2021 16:15 Und der Inhalt "22" vs. "20 °C" (meine eigentliche Frage) ist OH egal?
Die hatte ich dann glatt überlesen...

Nein, das ist nicht egal. Wenn Du ein Item mit QuantityType im Status vergleichen willst, musst Du eine passende Einheit angeben. Ob Du dann aber 22 °C oder 71.6 °F oder 295.15 K schreibst, kannst Du selbst entscheiden - die UoM Funktion in openHAB rechnet das für Dich passend um - und damit sollte auch klar sein, warum es nicht reicht, die Zahl hin zu schreiben und warum dieses UoM so absolut wünschenswert ist. :)
openHAB4.3.6 stable in einem Debian-Container (bookworm) (Proxmox 8.4.1, LXC), mit openHABian eingerichtet

AndreM77
Beiträge: 127
Registriert: 2. Feb 2021 21:31
Answers: 0

Re: OH3: OWM Temp basierte Regel

Beitrag von AndreM77 »

ok. dann bin ich jetzt mal gespannt, ob das tut.

Hab verstanden, dass ich einfach gegen '> 23 °C' vergleiche. Bin gespannt o)

Danke!
--
Connectivity: Z-WAVE, TCP/IP, Velux KLF200, Hue Bridge und IO-Homecontrol
Backend: openHAB 4.0.2 im Docker Container auf QNAP NAS
UI: HABPanel auf Amazon Fire 8

AndreM77
Beiträge: 127
Registriert: 2. Feb 2021 21:31
Answers: 0

Re: OH3: OWM Temp basierte Regel

Beitrag von AndreM77 »

udo1toni hat geschrieben: 9. Jun 2021 23:22 Du kannst im Trigger-Teil der Rule keine Conditions setzen. Du kannst triggern, wenn ein Itemstatus einen bestimmten Wert annimmt, nicht aber, wenn ein bestimmter Wert über- oder unterschritten wird. Was Du stattdessen tun kannst: die Rule löst bei Änderung des Status aus (das state-Feld bleibt dabei leer). Zusätzlich setzt Du über den But Only If Teil eine Condition. Hier kannst Du als Condition prüfen, ob ein bestimmter Wert überschritten wurde.
Ich nochmal dazu. Die Ruhe wird nicht gezogen. Im Event.Log hab ich h dazu auch keinen Eintrag.

Code: Alles auswählen

triggers:
  - id: "1"
    configuration:
      itemName: Weather_OWM_Temp_h3
    type: core.ItemStateUpdateTrigger
Time Based Rules tun. Was kann es noch sein? Wo kann ich noch debuggen?

Danke!

Grüße
André
--
Connectivity: Z-WAVE, TCP/IP, Velux KLF200, Hue Bridge und IO-Homecontrol
Backend: openHAB 4.0.2 im Docker Container auf QNAP NAS
UI: HABPanel auf Amazon Fire 8

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

Re: OH3: OWM Temp basierte Regel

Beitrag von udo1toni »

Wie gesagt, der Trigger kann kein größer als.
Stattdessen musst Du den Trigger auf changed ändern. Dann packst Du noch eine "But only if" Bedingung dazu. Dort schränkst Du ein, dass die Rule nur gestartet wird, wenn der konkrete Wert über Deinem Grenzwert liegt. Dort müsstest Du auch den Wert mit Einheit angeben können.

Es ist möglich, dass Du die Einheit mit der Pipe anhängen musst. Dann stünde da z.B. > 22 | °C (Das ist die Schreibweise, wie sie in normalen DSL Rules Verwendung findet)
openHAB4.3.6 stable in einem Debian-Container (bookworm) (Proxmox 8.4.1, LXC), mit openHABian eingerichtet

AndreM77
Beiträge: 127
Registriert: 2. Feb 2021 21:31
Answers: 0

Re: OH3: OWM Temp basierte Regel

Beitrag von AndreM77 »

Hi,

ich noch einmal. Diese Regel nervt. Sie tut gar nichts und ich weiß auch nicht, wo ich noch suchen soll.

- Itemsteuerung geht
- löse ich die Rule manuell aus, tut es auch wie es soll

Nur, der eventbasierte Teil - da passt scheinbar gar nix.
triggers:
- id: "1"
configuration:
itemName: Weather_OWM_Temp_h3
type: core.ItemStateUpdateTrigger
conditions:
- inputs: {}
id: "2"
configuration:
itemName: OG_Eltern_Dachfenster_Position
state: UP
operator: =
type: core.ItemStateCondition
- inputs: {}
id: "4"
configuration:
itemName: Weather_OWM_Temp_h3
state: 20 | °C
operator: ">"
type: core.ItemStateCondition
- inputs: {}
id: "5"
configuration:
startTime: 08:30
endTime: 14:00
type: core.TimeOfDayCondition
actions:
- inputs: {}
id: "3"
configuration:
itemName: OG_Eltern_Dachfenster_Position
command: DOWN
type: core.ItemCommandAction
- inputs: {}
id: "6"
configuration:
itemName: HI_OG_Eltern_Dachfenster_Position_SunClose
command: ON
type: core.ItemCommandAction
Weather_OWM_Temp_h3 wird auch aktualisiert
2021-08-12 13:10:41.751 [INFO ] [openhab.event.ItemStateChangedEvent ] - Item 'Weather_OWM_Temp_h3' changed from 24.76 °C to 24.84 °C
Wo/Wie kann ich noch suchen?

Andere Regeln, zeitbasiert, erledigen wunderbar ihre Aufgabe.

Danke!!

Grüße
André
--
Connectivity: Z-WAVE, TCP/IP, Velux KLF200, Hue Bridge und IO-Homecontrol
Backend: openHAB 4.0.2 im Docker Container auf QNAP NAS
UI: HABPanel auf Amazon Fire 8

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

Re: OH3: OWM Temp basierte Regel

Beitrag von peter-pan »

Ich hab mal etwas "gespielt" und mir eine "ähnliche" Rule gebastelt. die sieht so aus:

Code: Alles auswählen

triggers:
  - id: "1"
    configuration:
      itemName: OC_WaF_Current_Temperature
    type: core.ItemStateChangeTrigger
conditions:
  - id: "5"
    configuration:
      itemName: OC_WaF_Current_Temperature
      operator: ">="
      state: 28.1 °C
    type: core.ItemStateCondition
actions:
  - inputs: {}
    id: "2"
    configuration:
      type: application/vnd.openhab.dsl.rule
      script: 'logInfo("test","test: {}", OC_WaF_Current_Temperature.state)'
    type: script.ScriptAction
  - inputs: {}
    id: "3"
    configuration:
      itemName: Dummy_3
      command: ON
    type: core.ItemCommandAction
Und macht eigentlich nichts anderes als ein LogInfo auszugeben und einen Schalter (Dummy_3) einzuschalten. Was ich anders gemacht habe als sonst in DSL-Rules, ich habe beim Vergleichswert auf das Pipe-Symbol vor dem UoM verzichtet, obwohl das Item selber ein UoM-Item ist.

Evtl. erkennt OH3 das von selbst !!?? ;)
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

OH3: OWM Temp basierte Regel

Beitrag von udo1toni »

Wichtig beim posten von Code wäre auch, den Code als Code zu markieren. Bitte keinesfalls als Zitat markieren!

yaml Code berücksichtigt die Einrückungen, es ist ungemein schwierig, das von Hand wieder korrekt einzurücken.
openHAB4.3.6 stable in einem Debian-Container (bookworm) (Proxmox 8.4.1, LXC), mit openHABian eingerichtet

Antworten