Seite 1 von 1

Rule mit zweierlei Condtition

Verfasst: 15. Jan 2022 13:57
von Oekel
Moin,

ich versuche gerade folgendes (möglichst einfach )in eine einzige Rule zu quetschen:
WENN: Cronjob alle 5min
DANN: erzeuge einen TTS-String (der die Fenster einzelnd benennt +="sind offen." / bzw. "Alle Fenster geschlossen." setzt.)
DANN: Sende den String an ein TTS-Gerät
ABER NUR, WENN die Fenster-Gruppe == OFFEN (def. Parent: eines offen --> ganze Gruppe offen)

Code: Alles auswählen

configuration: {}
triggers:
  - id: "3"
    configuration:
      cronExpression: 0 0/5 * * * ? *
    type: timer.GenericCronTrigger
conditions:
  - inputs: {}
    id: "2"
    configuration:
      itemName: doorsWindows
      state: CLOSED
      operator: "!="
    type: core.ItemStateCondition
actions:
  - inputs: {}
    id: "4"
    configuration:
      considerConditions: true
      ruleUIDs:
        - tts_windows_DSL
    type: core.RunRuleAction
  - inputs: {}
    id: "1"
    configuration:
      blockSource: <xml Sprachausgabe /xml>
Funktioniert natürlich auch. Nun wird würde ich das ganze aber AUCH noch gerne 1x ausführen, wenn sich der Zustand eines Gruppenmitgliedes geändert hat bzw. alle Fenster geschlossen sind. (die Bedingung an sich kenne ich, doch ich bekomme es in keinen LOGISCHEN Einklang mit der ONLY-IF Bedingung ;) )

Am einfachsten geht es natürlich mit 2 Rules und ich wüsste natürlich auch, wie ich es im Script-Only erledige. Aber ich wollte mich mal an die Click-Varianten rantasten, da diese auch am einfachsten (innerhalb der Fam. erklärt werden können)

Re: Rule mit zweierlei Condtition

Verfasst: 15. Jan 2022 18:21
von udo1toni
Meine Frage wäre ja eher, warum überhaupt den Cron Job?

Ansonsten sind Klick-regeln meiner Meinung komplett überbewertet. Eine Hausautomation bedarf eines Administrators, der weiß, was er tut.

Re: Rule mit zweierlei Condtition

Verfasst: 15. Jan 2022 19:26
von HiG
Da ich ein ähnliches Problem habe...ich möchte abängig von 2 Werten die Rule ausführen...also entweder oder....


bin ich auf diesen Artikel gestoßen.
https://community.openhab.org/t/rule-wi ... on/36066/6

Klingt erstmal plausibel... funktioniert aber leider nicht bei mir. Weder "or" noch "OR" noch "Or" noch "||" gehen

Es kommt immer ne Meldung wie

Code: Alles auswählen

Configuration model 'xxx.rules' has errors, therefore ignoring it: [4,4]: no viable alternative at input 'Or'

Re: Rule mit zweierlei Condtition

Verfasst: 15. Jan 2022 19:45
von int5749
HiG hat geschrieben: 15. Jan 2022 19:26 Da ich ein ähnliches Problem habe...ich möchte abängig von 2 Werten die Rule ausführen...also entweder oder....


bin ich auf diesen Artikel gestoßen.
https://community.openhab.org/t/rule-wi ... on/36066/6

Klingt erstmal plausibel... funktioniert aber leider nicht bei mir. Weder "or" noch "OR" noch "Or" noch "||" gehen

Es kommt immer ne Meldung wie

Code: Alles auswählen

Configuration model 'xxx.rules' has errors, therefore ignoring it: [4,4]: no viable alternative at input 'Or'
Spätestens hier wäre Deine Rule interessant, in meiner Glaskugel herrscht Sturm :lol:

Re: Rule mit zweierlei Condtition

Verfasst: 15. Jan 2022 19:55
von HiG
int5749 hat geschrieben: 15. Jan 2022 19:45 in meiner Glaskugel herrscht Sturm
Scheint öfter vorzukommen :lol:

Wenn sich in Zeile 3 einer Rule schon ein Problem auftut...dann ist die meist nicht spannend ;-)

Code: Alles auswählen

rule "Temperatur Office"
when
   Item x_dg_of_ms_01_temp changed
then

val Number temp2_off   = ((x_dg_of_ms_01_temp.state as Number))
val Number temp1_off   = ((x_dg_of_hz_Temp_Ist.state as Number))
val Number temp_off   = ((temp1_off+temp2_off)/2)
logInfo("Heizung Office", temp_off.toString)
logInfo("Heizung Office", temp1_off.toString)
logInfo("Heizung Office", temp2_off.toString)

end
und anstatt

Code: Alles auswählen

Item x_dg_of_ms_01_temp changed
hätte ich gerne sowas

Code: Alles auswählen

Item x_dg_of_ms_01_temp OR x_dg_of_hz_Temp_Ist changed

Fastehste?

Re: Rule mit zweierlei Condtition

Verfasst: 15. Jan 2022 20:16
von int5749
HiG hat geschrieben: 15. Jan 2022 19:55 Fastehste?
Das nicht, aber mein Google Translator hat wahre Wunder vollbracht

Code: Alles auswählen

Item x_dg_of_ms_01_temp changed or
Item x_dg_of_hz_Temp_Ist changed
Sollte helfen?
PS: So steht es auch in dem Link, den Du gepostet hattest.

Du könntest natürlich auch beide Items in eine Gruppe, z.B. Group AlleMeineTempItems packen

Dann sollte auch

Code: Alles auswählen

Member of AlleMeineTempItems changed
funktionieren.

VG

Re: Rule mit zweierlei Condtition

Verfasst: 15. Jan 2022 20:25
von HiG
int5749 hat geschrieben: 15. Jan 2022 20:16 PS: So steht es auch in dem Link, den Du gepostet hattest.
jaja...streu dem alten Kerl noch Salz in die Wunde. Jetzt...wo Du es erwähnst...haste natürlich Recht #soifz

int5749 hat geschrieben: 15. Jan 2022 20:16 Du könntest natürlich auch beide Items in eine Gruppe,
You are my Held :!:

Re: Rule mit zweierlei Condtition

Verfasst: 15. Jan 2022 20:27
von int5749
Hauptsache es geht und mit einer Gruppe könntest Du leicht weitere Items hinzufügen, ohne die Rule ändern zu müssen.
Einfach eine neues Item in die Gruppe aufnehmen => schwupps fertig