Anfängerproblem mit Rule

Allgemeine Fragen zum Thema "Smart Home" und Entscheidungshilfen

Moderator: seppy

Antworten
WABerlin
Beiträge: 2
Registriert: 25. Aug 2025 12:32
Answers: 0

Anfängerproblem mit Rule

Beitrag 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?

Harka
Beiträge: 521
Registriert: 30. Apr 2021 13:13
Answers: 19

Re: Anfängerproblem mit Rule

Beitrag 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.

WABerlin
Beiträge: 2
Registriert: 25. Aug 2025 12:32
Answers: 0

Re: Anfängerproblem mit Rule

Beitrag von WABerlin »

Vielen Dank, das war die Lösung.
Ich hatte dazu keine Information in der Dokumentation gefunden.

Harka
Beiträge: 521
Registriert: 30. Apr 2021 13:13
Answers: 19

Re: Anfängerproblem mit Rule

Beitrag 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.

Antworten