var HeizungPartyraum_Solltemperatur = 6 // HeizungPartyraum_Solltemperatur_Fensterkontakt
var Timer AussentuerePartyraumHeizungMeldung = null
rule "Türe Partyraum Auf Heizung aus"
when
Item AussentuerePartyraum_TurFensterstatus changed
then
//cancel timer if running
AussentuerePartyraumHeizungMeldung?.cancel
AussentuerePartyraumHeizungMeldung = null
if (AussentuerePartyraum_TurFensterstatus.state == OPEN)
AussentuerePartyraumHeizungMeldung = createTimer(ZonedDateTime.now.plusMinutes(1), [|
HeizungPartyraum_Solltemperatur = HeizungPartyraum_Solltemperatur_Fensterkontakt.state as Number
HeizungPartyraum_Solltemperatur_Fensterkontakt.sendCommand(6)
])
if (AussentuerePartyraum_TurFensterstatus.state == CLOSED){
HeizungPartyraum_Solltemperatur_Fensterkontakt.sendCommand(HeizungPartyraum_Solltemperatur)
}
end
doch jetzt wenn ich die Türe auf und in weniger als 1. Minute zu mache gegt die Heizung immer auf 6 Grad (Aus).Ich finde den Fehler nicht wenn die Tür länger als 1 Minute auf ist geht die Heizung auf 6 Grad und wenn ich sie wieder schließe auch wieder auf die vor der Öffnung eingestellte Temperatur.
openhab4.1.1 auf Pi 4 im Docker Portainer /Grafana&InfluxDB auf Pi 3 in Docker Portainer
Dies liegt daran, das der Timer beim öffnen der Türe startet. Dann schließt Du die Türe < 1Min und die Heizung wird auf den alten Wert gesetzt.
Dann läuft der Timer ab und setzt die 6 Grad.
Lösung: Du musst den Timer beim schließen der Türe beenden. Zudem ist die Var ja schon initialisiert, da kannst Du dies in der Rule sparen.
var HeizungPartyraum_Solltemperatur = 6 // HeizungPartyraum_Solltemperatur_Fensterkontakt
var Timer AussentuerePartyraumHeizungMeldung = null
rule "Türe Partyraum Auf Heizung aus"
when
Item AussentuerePartyraum_TurFensterstatus changed
then
//cancel timer if running
AussentuerePartyraumHeizungMeldung?.cancel
if (AussentuerePartyraum_TurFensterstatus.state == OPEN)
AussentuerePartyraumHeizungMeldung = createTimer(ZonedDateTime.now.plusMinutes(1), [|
HeizungPartyraum_Solltemperatur = HeizungPartyraum_Solltemperatur_Fensterkontakt.state as Number
HeizungPartyraum_Solltemperatur_Fensterkontakt.sendCommand(6)
])
if (AussentuerePartyraum_TurFensterstatus.state == CLOSED){
//cancel timer if running
AussentuerePartyraumHeizungMeldung?.cancel
HeizungPartyraum_Solltemperatur_Fensterkontakt.sendCommand(HeizungPartyraum_Solltemperatur)
}
end
ungetestet und ohne Gewehr
openHAB 4.1.0 Release mit openHABian in einem Debian Bookworm (LXC) unter Proxmox 8.1.3
he vielen Dank für deine Hilfe. Leider ist es bei deiner Rule das gleiche. Wenn ich die Türe innerhalb von einer Minute schließe geht die Heizung auf 6 Grad.
openhab4.1.1 auf Pi 4 im Docker Portainer /Grafana&InfluxDB auf Pi 3 in Docker Portainer
Hmm, was sagt denn das Log dazu? Interessant wäre der Zeitraum wenn Du die Türe öffnest, innerhalb 1 Min wieder schließt und die Temp wieder auf 6 gesetzt wurde. Gerne bereinigt um die o.g. Items.
VG
openHAB 4.1.0 Release mit openHABian in einem Debian Bookworm (LXC) unter Proxmox 8.1.3
Ich denke es hängt vielleicht mit den Speichern der Temperatur zusammen oder mit dem Timer Abbruch. Habe es jetzt mehrmals getestet und es läuft so wie es soll.
openhab4.1.1 auf Pi 4 im Docker Portainer /Grafana&InfluxDB auf Pi 3 in Docker Portainer
Das Problem dürfte sein, dass Du die Temperatur einfach so sicherst, es kann aber sein, dass die Absenkung schon stattgefunden hat. Genauso könnte gar keine gültige Temperatur geliefert werden. Es wäre also sinnvoller, hier ein paar Vorkehrungen zu treffen, was bei ungültigen Werten passieren soll.
openHAB4.1.2 stable in einem Debian-Container (bookworm) (Proxmox 8.1.5, LXC), mit openHABian eingerichtet