Seite 1 von 1

Anfängerproblem mit Rule

Verfasst: 25. Aug 2025 12:50
von WABerlin
Guten Tag, ich bin neu bei openHAB. Die aktuelle Version läuft auf einem Raspi 4. Die Einrichtung war erfolgreich. Es existieren Items und ein Model.
Nun versuche ich eine Rule mit inline script zu erstellen und scheitere.
Der Code sieht wie folgt aus:

Code: Alles auswählen

onfiguration: {}
triggers:
  - id: "1"
    configuration:
      itemName: Schaltsteckdose_Pumpe_Leistung
    type: core.ItemStateChangeTrigger
conditions: []
actions:
  - inputs: {}
    id: "3"
    configuration:
      type: application/vnd.openhab.dsl.rule
      script: |-
        rule "FB_DECT210_Pumpe_Power changed"
          when
            item Schaltsteckdose_Pumpe_Leistung changed
          then
            logInfo("Schaltsteckdose_Pumpe_Leistung", "changed")
          end
    type: script.ScriptAction
Beim Aufruf des Action Scripts über "run Now" wird folgender Fehlerlog geschrieben:

Code: Alles auswählen

  1. The method or field rule is undefined; line 1, column 0, length 4
   2. The method or field when is undefined; line 2, column 40, length 4
   3. The method or field item is undefined; line 3, column 49, length 4
   4. The method or field changed is undefined; line 3, column 85, length 7
   5. The method or field then is undefined; line 4, column 95, length 4
   6. The method or field end is undefined; line 6, column 159, length 3
   7. This expression is not allowed in this context, since it doesn't cause any side effects.; line 1, column 5, length 32
   8. This expression is not allowed in this context, since it doesn't cause any side effects.; line 3, column 54, length 30
FRAGE: was ist da falsch?

Re: Anfängerproblem mit Rule

Verfasst: 25. Aug 2025 16:23
von Harka
Moin,
versuch mal

Code: Alles auswählen

configuration: {}
triggers:
  - id: "2"
    configuration:
      itemName: StromzaehlerZ_Leistung_A_aktuell
    type: core.ItemStateChangeTrigger
conditions: []
actions:
  - inputs: {}
    id: "1"
    label: FB_DECT210_Pumpe_Power changed
    configuration:
      type: application/vnd.openhab.dsl.rule
      script: logInfo("Schaltsteckdose_Pumpe_Leistung", "changed")
    type: script.ScriptAction
Du hast über die Benutzeroberfläche den Auslöser schon festgelegt. Im Inlinescript legst Du nur fest, was dann passieren soll. Hier:

Code: Alles auswählen

logInfo("Schaltsteckdose_Pumpe_Leistung", "changed")
Den optinalen Namen des Scriptes kannst Du beim Parameter label hinterlegen.

Re: Anfängerproblem mit Rule

Verfasst: 26. Aug 2025 09:32
von WABerlin
Vielen Dank, das war die Lösung.
Ich hatte dazu keine Information in der Dokumentation gefunden.

Re: Anfängerproblem mit Rule

Verfasst: 26. Aug 2025 15:41
von Harka
ja, war da meiner Erinnerung zu Anfang auch etwas verwirrt.
Das mit

Code: Alles auswählen

rule "<RULE_NAME>"
when
    <TRIGGER_CONDITION> [or <TRIGGER_CONDITION2> [or ...]]
then
    <SCRIPT_BLOCK>
end
ist für Nutzer des IDE Support. Wenn Du derartige Lösungen im Forum oder der Hilfe sieht sind diese aber leicht konvertierbar.