Hallo zusammen,
hat jemand ein Idee warum die erste Regel "Brunnenschalter_on" nicht funktioniert, wenn ich diese in Verbindung mit der zweiten Regel "Wechselschalter_Aussentemperatur_Brunnen2" innerhalb einer "xxx.rules" Datei habe?
Wenn ich die erste Regel in eine extra xxx.rules Datei packe funktioniert diese ohne Probleme.
rule "Brunnenschalter_on"
when
Time cron "0 22 11 ? * *"
then
Brunnenschalter.sendCommand(ON) //Brunnenschalter On
sendTelegram("bot1", "Brunnenschalter - " + Brunnenschalter.state.toString())
end
val aTemp = Temperature.state as Number
rule "Wechselschalter_Aussentemperatur_Brunnen2"
when
Item Temperature changed //wenn Außentemperatur sich ändert dann
then
if (aTemp <= 15.00){
SonoffT1.sendCommand(OFF)
//sendTelegram("bot1", "Temperatur im Garten beträgt: " + Temperature.state.toString())
}else if (aTemp > 16.00){
SonoffT1.sendCommand(ON)
//sendTelegram("bot1", "Temperatur im Garten beträgt: " + Temperature.state.toString())
}
end
Das einzige was mir auffällt ist das Var/Val am Anfang oder innerhalb der Regeln deklariert werden das würde ich mal ausprobieren in dem ich das val innerhalb des then Teils setzt.
rule "Brunnenschalter on"
when
Time cron "0 22 11 ? * *"
then
Brunnenschalter.sendCommand(ON) // Brunnenschalter On
sendTelegram("bot1", "Brunnenschalter - " + Brunnenschalter.state.toString())
end
rule "Außentemperatur Brunnen2"
when
Item Temperature changed // wenn Außentemperatur sich ändert
then
val Number aTemp = if(Temperature.state instanceof Number) (Temperature.state as Number) else 15.5
if(aTemp <= 15)
SonoffT1.sendCommand(OFF)
else if(aTemp > 16)
SonoffT1.sendCommand(ON)
if(aTemp <= 15 || aTemp > 16)
//sendTelegram("bot1", "Temperatur im Garten beträgt: " + aTemp.toString)
end
Der ternäre Operator in der Wertzuweisung bewirkt, dass aTemp auf einen Wert gesetzt wird, der sich innerhalb des Hysteresefensters befindet, falls der Sensor keinen gültigen Wert liefert.
openHAB4.3.3 stable in einem Debian-Container (bookworm) (Proxmox 8.3.5, LXC), mit openHABian eingerichtet
Hi Udo,
danke für den Tipp und die Modifikationen an der Regel.
Leider funktioniert die Geschichte immer noch nicht, wenn ich meine Code deaktiviere und Deinen verwende.
Es geht wieder nur dann, wenn ich die erste Regel in eine extra Datei kopiere.
Das kann doch alles nicht sein.
Hast Du noch eine Idee wo der Fehler liegen kann?
Ja ich hatte extra eine neue Datei erstellt, dass ich mit den Sonoffs nicht durcheinander komme.
Wie gesagt wenn ich die beiden Regeln in unterschiedliche Dateien packe geht alles wie es sein sollte.
Habe den Raspberry auch schon neu gestartet... das ist zum Mäuse melken.
Bist Du sicher, dass Du keine namensgleiche Rule in einer anderen Datei hast? Ich kann mir ehrlich gesagt nicht vorstellen, wie dieser fehler zustande kommen soll, solange alle Rules systemweit eindeutige Namen haben ist es unerheblich, wie viele Rules in wievielen Dateien auf dem System liegen, sie werden alle passend ausgeführt (vorausgesetzt natürlich, die Ressourcen reichen aus).
Hast Du eine andere Rule, welche ebenfalls auf Time cron "0 22 11 ..." triggert?
openHAB4.3.3 stable in einem Debian-Container (bookworm) (Proxmox 8.3.5, LXC), mit openHABian eingerichtet
Hi Udo,
bin ja froh das nur ich die Situation nicht erklären kann
Nein ich habe keinen anderen trigger der um diese Zeit startet, es ist auch egal welche Zeit ich einstelle es funktioniert nicht.
Ich habe auch keine Rule die den gleichen Namen hat, ich habe schon die mit Zahlen aufgefüllt.
Danke aber für Deinen Einsatz, ich werde das ganze jetzt in einer extra-Datei abwickeln.