maddin2020 hat geschrieben: ↑29. Mär 2020 15:54
anscheinend wir RasenmaehernaechsterStart changed nicht akzeptiert da es ja ein item DateTime ist ...
Der Trigger funktioniert, allerdings nur für den Zeitpunkt, wenn der Mäher die Zeit das nächste Mal setzt. Du müsstest also auf jeden Fall noch ein System started als Trigger hinzufügen, damit beim Systemstart bzw. wenn die Rules neu geladen werden ebenfalls eine Berechnung angestoßen wird.
maddin2020 hat geschrieben: ↑29. Mär 2020 15:54
wie genau ziehe ich von der Zeit 5 min ab
Es handelt sich ja um ein DateTime Item. Die Berechnung ist also leider etwas umständlich.
Code: Alles auswählen
rule "Rasenmäher Garage Update"
when
System started or
Item RasenmaehernaechsterStart changed
then
if(RasenmaehernaechsterStart.state == NULL) {
logWarn("lawngarage","Berechnung Rasenmähergaragenöffnung fehlgeschlagen!")
// evtl. weitere Warnung über telegram, mail, Warmlampe, whatever...
return;
}
val nextStart = new DateTime(RasenmaehernaechsterStart.state.toString)
GarageNaechsteOeffnung.postUpdate(nextStart.minusMinutes(5).toString)
end
Diese Rule berechnet aber nur den Zeitpunkt, zum berechneten Zeitpunkt passiert aber nichts. Dazu braucht es noch etwas mehr:
Code: Alles auswählen
// globale Variablen werden zu Beginn der Datei definiert!
var Timer tlawnMowerGarage = null
rule "Rasenmäher Garage Update"
when
System started or
Item RasenmaehernaechsterStart changed
then
if(RasenmaehernaechsterStart.state == NULL) {
logWarn("lawngarage","Berechnung Rasenmähergaragenöffnung fehlgeschlagen!")
// evtl. weitere Warnung über telegram, mail, Warmlampe, whatever...
return;
}
val nextStart = new DateTime(RasenmaehernaechsterStart.state.toString)
GarageNaechsteOeffnung.postUpdate(nextStart.minusMinutes(5).toString)
if(nextStart.minusMinutes(5).isAfter(now)) {
tlawnMowerGarage?.cancel
tlawnMowerGarage = createTimer(nextStart.minusMinutes(5),[|
LawnMowerGarage.sendCommand(UP)
])
} else {
logWarn("lawngarage","Berechnung Öffnungszeitpunkt liegt in der Vergangenheit!")
}
end
So sollte es funktionieren.
openHAB4.3.6 stable in einem Debian-Container (bookworm) (Proxmox 8.4.1, LXC), mit openHABian eingerichtet