Seite 1 von 1

Rules Openhab

Verfasst: 3. Dez 2020 11:05
von Philipp00
Hallo zusammen

Ich bins mal wieder.;-)
Habe mich vorgewagt in den Bereich Rules.

Unten habe ich einen Code eingefügt, habe einfach versucht einen Temperaturwert mit einem Schatler zu verbinden.
Leider erhalte ich immer eine Fehlermeldung, siehe Foto, seht ihr den Fehler den ich mache?

Code: Alles auswählen

rule "Alarm"
    when  
        Item BadKleinHBadklein >= 50

     then 
         
         sendCommand (BuroBBeleuchtungBuero, "on")

end

VSCODE.JPG

Re: Rules Openhab

Verfasst: 3. Dez 2020 11:10
von Pepe1907

Philipp00 hat geschrieben:Hallo zusammen

Ich bins mal wieder.;-)
Habe mich vorgewagt in den Bereich Rules.

Unten habe ich einen Code eingefügt, habe einfach versucht einen Temperaturwert mit einem Schatler zu verbinden.
Leider erhalte ich immer eine Fehlermeldung, siehe Foto, seht ihr den Fehler den ich mache?

Code: Alles auswählen

rule "Alarm"
    when  
        Item BadKleinHBadklein >= 50

     then 
         
         sendCommand (BuroBBeleuchtungBuero, "on")

end

VSCODE.JPG

Code: Alles auswählen

Rule "alarm"
When
BadKleinHBadklein.state => 50 
then 
BuroBBeleuchtungBuero.sendCommand(ON) 
End
Versuche es mal so

Gesendet von meinem SM-G981B mit Tapatalk


Re: Rules Openhab

Verfasst: 3. Dez 2020 11:22
von Philipp00
Geht auch nicht dann erhalte ich die Fehlermeldung bei "BadKleinHBadklein"

Re: Rules Openhab

Verfasst: 3. Dez 2020 11:23
von Pepe1907
Philipp00 hat geschrieben:Geht auch nicht dann erhalte ich die Fehlermeldung bei "BadKleinHBadklein"
Welche Fehlermeldung erhälst du denn?
Und die Item Datei würde ich gerne mal sehen.

Gesendet von meinem SM-G981B mit Tapatalk



Re: Rules Openhab

Verfasst: 3. Dez 2020 11:25
von PeterA
Also,

Den Fehler kann man im Screenshot nicht erkennen.

openHAB ist ja immer "EVENT" Basierend.
Das bedeutet "when" sich etwas ereignet "then" prüfe was sich ereignet hat und führe dann den Code aus:
Ein Vorschlag aus dem Kopf und nicht getestet:

Code: Alles auswählen

rule "Alarm"
when  
  Item BadKleinHBadklein changed // hier wird auf das Ereignis getriggert.    
then 
      if (BadKleinHBadklein.state<=50) { 		// hier wird geprüft ob das Ereignis zutrifft 
      // und zwischen den geschweiften Klammern wir der Code ausgeführt
      BuroBBeleuchtungBuero.sendCommand(ON)
      logInfo("Beleuchtung Büro","Eingeschaltet.")
	}
end

Re: Rules Openhab

Verfasst: 3. Dez 2020 13:57
von Philipp00
Danke für eure Hilfe, so hat es funktioniert, dann lag es vorallem daran den Event zu erfasen.

Gruss



Code: Alles auswählen

rule "Alarm"
when  
  Item BadKleinHBadklein changed // hier wird auf das Ereignis getriggert.    
then 
      if (BadKleinHBadklein.state <= 50) { 		// hier wird geprüft ob das Ereignis zutrifft 
      // und zwischen den geschweiften Klammern wir der Code ausgeführt
      //sendCommand (BuroBBeleuchtungBuero, ON)
      BuroBBeleuchtungBuero.sendCommand(ON)
      logInfo("Beleuchtung Büro","Eingeschaltet.")
	}
      else 
      {
      sendCommand (BuroBBeleuchtungBuero, OFF)
      logInfo("Beleuchtung Büro","Ausgeschaltet.")  
      }        
end

Re: Rules Openhab

Verfasst: 3. Dez 2020 14:11
von peter-pan
...genau wie Peter es beschrieben hat. Wobei die Schreibweise von Peter "myItem.sendCommand" gegenüber der von dir benutzten Variante "sendCommand(..)" zu präferieren ist. Schau mal in die Doku. ;)

Re: Rules Openhab

Verfasst: 3. Dez 2020 15:48
von udo1toni
Das ist das Problem mit Tapatalk, es ändert gerne mal eigenmächtig Schreibweisen ab (ich falle da auch gerne rein...)

In openHAB ist Groß/Kleinschreibung wichtig, und zwar jeder einzelne Buchstabe. when ist ein Schlüsselwort, When ist kein Schlüsselwort. wHen ist ein anderes Wort als When und so weiter. on ist ebenfalls etwas anderes als ON
Im when-Teil der Rule muss natürlich auch das Schlüsselwort Item angegeben werden (welches die Trigger Art angibt). Dass die Methode der Action vorzuziehen ist, hat Peter-Pan ja schon geschrieben ;)

Re: Rules Openhab

Verfasst: 3. Dez 2020 16:24
von Philipp00
Perfekt Danke für euer Feedback, habs soweit verstanden.