ich bin schon längere Zeit stiller Mitleser und konnte so auch schon einiges umsetzen, habe aber absolut kein Hintergrund wissen wenn es um Programmiersprachen geht. Nun habe ich nach einigen Jahren den Umstieg von openhab 2 auf openhab 4 gewagt, und auch soweit alles hinbekommen (Neuinstallation).
Aktuell auf einem Raspberry 3B+ 1GB, openHabian – openHAB 4.2.1
Geplant ist, wenn alles wieder läuft auf einen Rasperry Pi 5 4GB und openhab 4 -64bit umzusteigen
Die Suchfunktion habe ich natürlich benutzt und auch einiges gelesen, konnte aber nichts finden das mir weiterhilft.
Ich schaffe es einfach nicht, bzw. fehlt mir der Ansatz, wie ich eine Regel (war unter openhab 2 als .rules abgelegt) unter openhab 4 zum Laufen bringe.
folgende Regel (natürlich kopiert und angepasst, nicht selbst erstellt) hat die letzten Jahre Problemlos unter openhab 2.5 funktioniert:
Code: Alles auswählen
import java.util.concurrent.locks.ReentrantLock
val Number MODE_OFF = 0
val Number MODE_STANDBY = 1
val Number MODE_ACTIVE = 2
val Number MODE_FINISHED = 3
var ReentrantLock finishLock = new ReentrantLock()
rule "Status Waschmaschine"
when
Item Waschmaschine_Leistung changed
then
if (Waschmaschine_Leistung.state < 0.1)
Waschmaschine_Status.postUpdate(MODE_OFF)
else if (Waschmaschine_Leistung.state > 60)
Waschmaschine_Status.postUpdate(MODE_ACTIVE)
else if (Waschmaschine_Leistung.state < 3.5) {
if (Waschmaschine_Leistung.state == MODE_OFF)
Waschmaschine_Status.postUpdate(MODE_STANDBY)
else if (Waschmaschine_Status.state == MODE_ACTIVE) {
finishLock.lock()
try {
Thread::sleep(13000) // Debounce for 13 seconds
if (Waschmaschine_Leistung.state < 3.5) {
Waschmaschine_Status.postUpdate(MODE_FINISHED)
sendTelegram("bot1", "Waschmaschine ist fertig!")
sendNotification("xxx@xxx.xx", "Waschmaschine ist fertig!")
}
} finally {
finishLock.unlock()
}
}
}
end
Ich wäre sehr Dankbar, wenn mir jemand kurz erklären kann, wie ich diese Regel am Besten in openhab 4 erstellen kann.
vielen Dank im voraus!