Rules

Einrichtung der openHAB Umgebung und allgemeine Konfigurationsthemen.

Moderatoren: seppy, udo1toni

mamoel
Beiträge: 137
Registriert: 12. Jan 2019 19:56
Answers: 0

Re: Rules

Beitrag von mamoel »

Z.B. so:

Code: Alles auswählen

rule "Temp_Stal_rule"

when
    Item Stall_Temp changed

then
    logInfo("bot1", "Temperaturänderung erkannt.")
    if(Stall_Temp.state instanceof QuantityType) {
        logInfo("Temperaturstatus ist vom Typ QuantityType.") //ist das nicht der Fall, wird auch nichts ausgeführt
        val Number nTemp = Stall_Temp.state as QuantityType<Number>
        val Number nTempPrev = previousState as QuantityType<Number>
        
        logInfo("bot1", "Neuer Wert: " + nTemp)
        logInfo("bot1", "Letzter Wert: " + nTempPrev)

        if(nTemp <= 0 && nTempPrev > 0) {
           logInfo("bot1", "Temperatur unter 0")
           sendTelegram("bot1", "Stall Temperatur ist nun {}",nTemp)
        }

        if(nTemp <= -5 && nTempPrev > -5) {
           logInfo("bot1", "Temperatur unter -5")
           sendTelegram("bot1", "Stall Temperatur ist nun {}",nTemp)
        }

        if(nTemp <= -10 && nTempPrev > -10) {
           logInfo("bot1", "Temperatur unter -10")
           sendTelegram("bot1", "Stall Temperatur ist nun {}",nTemp)
        }

    }
end
openHAB 2.5 (M1) in Docker auf NAS: Synology DS418play
mit Homematic, Hue, TP-Link, AVM Fritz!, FritzboxTR064, Nuki, Amazon Echo, Sonos, Harmony, zigbee2mqtt, Denon/Marantz, ...

matze.lingen
Beiträge: 52
Registriert: 28. Jul 2018 18:35
Answers: 0

Re: Rules

Beitrag von matze.lingen »

hab ich so nun eingetragen und warte nun auf log einträge

mamoel
Beiträge: 137
Registriert: 12. Jan 2019 19:56
Answers: 0

Re: Rules

Beitrag von mamoel »

Es müsste zumindest für jeden Temperaturwechsel ein Eintrag geschrieben werden, nämlich "Temperaturänderung erkannt.". Das müsstest Du sofort im Logfile sehen können.
openHAB 2.5 (M1) in Docker auf NAS: Synology DS418play
mit Homematic, Hue, TP-Link, AVM Fritz!, FritzboxTR064, Nuki, Amazon Echo, Sonos, Harmony, zigbee2mqtt, Denon/Marantz, ...

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

Re: Rules

Beitrag von udo1toni »

Du musst Log-Meldungen einbauen. Die Zeile

Code: Alles auswählen

logInfo("stallTemp","nTemp = {}, nTempPrev = {}",nTemp,nTempPrev)
gibt z.B. die beiden Variablen aus (sofern bereits definiert)
die geschweiften Klammern werden durch die Werte der Variablen ersetzt, in der Reihenfolge der Listung.
Der erste String ist Teil des Loggernamens, darüber kann man das Logging pro Loggernamen steuern - z.B. nur Fehler mit logError(), dann werden die logInfo-Zeilen ignoriert.
Es bietet sich an, eine Logzeile zu Beginn der rule (1. Zeile nach then) einzubauen, damit siehst Du, dass die Rule gestartet wurde.
Eine weitere logZeile könntest Du verwenden, um den Status von Stall_Temp auszugeben, und so weiter.
openHAB4.3.3 stable in einem Debian-Container (bookworm) (Proxmox 8.3.5, LXC), mit openHABian eingerichtet

matze.lingen
Beiträge: 52
Registriert: 28. Jul 2018 18:35
Answers: 0

Re: Rules

Beitrag von matze.lingen »

Hab nun nochmal ins Log geguckt, es wird kein Log Eintrag erzeugt.

mamoel
Beiträge: 137
Registriert: 12. Jan 2019 19:56
Answers: 0

Re: Rules

Beitrag von mamoel »

Wenn Du die log-Ausgaben so wie ich beschrieben habe eingebaut hast und trotzdem nichts im Log erscheint, dann ändert sich entweder die Temperatur nicht (unwahrscheinlich) oder die Regel wird überhaupt nicht ausgeführt.
Bei jeder Temperaturänderung (die auch vom Sensor registriert werden muss), wird ein Logeintrag geschrieben.
openHAB 2.5 (M1) in Docker auf NAS: Synology DS418play
mit Homematic, Hue, TP-Link, AVM Fritz!, FritzboxTR064, Nuki, Amazon Echo, Sonos, Harmony, zigbee2mqtt, Denon/Marantz, ...

matze.lingen
Beiträge: 52
Registriert: 28. Jul 2018 18:35
Answers: 0

Re: Rules

Beitrag von matze.lingen »

Ich sehe die Changes für die Temperatur im Log, nur dein Log wird nicht geschrieben.

mamoel
Beiträge: 137
Registriert: 12. Jan 2019 19:56
Answers: 0

Re: Rules

Beitrag von mamoel »

Dann erstelle mal ein komplett neues File (ohne andere Regeln):

Code: Alles auswählen

rule "Temp_Stal_rule"

when
    Item Stall_Temp changed

then
    logInfo("bot1", "Temperaturänderung erkannt.")
end
Nenne das "temptest.rules" und lege es in den "rules" Ordner. Wenn dann nichts passiert, suchen wir an der falschen Stelle. Achte auch mal darauf, was im Log angezeigt wird, wenn Du dieses File in den "rules" Ordner legst.
openHAB 2.5 (M1) in Docker auf NAS: Synology DS418play
mit Homematic, Hue, TP-Link, AVM Fritz!, FritzboxTR064, Nuki, Amazon Echo, Sonos, Harmony, zigbee2mqtt, Denon/Marantz, ...

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

Re: Rules

Beitrag von peter-pan »

Kannst du die logs (changes) mal posten.
Pi5/8GB(PiOS Lite 64-bit(bookworm)/SSD 120GB - OH4.3.5 openhabian

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

Re: Rules

Beitrag von udo1toni »

Und bei der Gelegenheit, schau mal in openhab.log nach, ob dort nach Bearbeiten der Rules eine Meldung kommt, dass openHAB die Datei neu eingelesen hat. Vielleicht gibt es auch eine Meldung der Art

Code: Alles auswählen

dateiname.rules has errors, therefor ignoring it
Da gibt es dann eine Zeilen- und Spaltenangabe, wo der erste schwere Fehler vorhanden ist.
openHAB4.3.3 stable in einem Debian-Container (bookworm) (Proxmox 8.3.5, LXC), mit openHABian eingerichtet

Antworten