Re: Timer Ablauf
Verfasst: 14. Jan 2022 08:29
Hi Udo.
Vielleicht kannst Du mir bei meinem Problem hier nochmal helfen. Grundsätzlich hat alles super funktionert. Da es jedoch alle 5 Min das Auto abgefragt wurde, konnte es oft passieren, dass ich das Ladeziel nicht rechtzeitig treffen konnte. Also das bei der nächsten Abfrage die Batterie bereits in den 5 Min 2-5% über dem eingestellten Ziel lag. Jetzt dachte ich, ich kann das relativ einfach lösen, indem ich kurz vor dem erreichen des Ladeziels die Abstände von 5 auf 1 Minute heruntersetze. Dazu hatte ich folgendes implementiert:
Aber irgendwie hängt das komplette System gegen Ende und ich muss openhab komplett neu starten. Weißt Du wo ich den Denkfehler habe?
Vielleicht kannst Du mir bei meinem Problem hier nochmal helfen. Grundsätzlich hat alles super funktionert. Da es jedoch alle 5 Min das Auto abgefragt wurde, konnte es oft passieren, dass ich das Ladeziel nicht rechtzeitig treffen konnte. Also das bei der nächsten Abfrage die Batterie bereits in den 5 Min 2-5% über dem eingestellten Ziel lag. Jetzt dachte ich, ich kann das relativ einfach lösen, indem ich kurz vor dem erreichen des Ladeziels die Abstände von 5 auf 1 Minute heruntersetze. Dazu hatte ich folgendes implementiert:
Code: Alles auswählen
rule "set charing target"
when
Item KebaState changed or
Item KebaPower changed or
System started
then
if(KebaPower.state > 0 && KebaState.state == 3 ){ // wenn die Wallbox in state "laden" übergeht
if(tMyTimer === null) { // nur falls der Timer noch nicht existiert
tMyTimer = createTimer(now.plusSeconds(1), [| // Timer flott starten
// die Berechnung, welche zyklisch erfolgen soll
RenaultZEServices_Zoe_Refresh.sendCommand(ON)
if((RenaultZEServices_Zoe_ChargeLevel.state as Number) >= (RenaultZEServices_Zoe_Charging_Target.state as Number)) { // Abbruchbedingung
tMyTimer = null
KebaSwitch.sendCommand(OFF)
logInfo("RemainingCharingTarget", "Zoe set charging target achieved. Switching off at : " + RenaultZEServices_Zoe_Charging_Target.state)
sendBroadcastNotification("Ladeziel erreicht. Schalte Ladevorgang ab bei: " + RenaultZEServices_Zoe_ChargeLevel.state + "%" )
// und was sonst noch zu erledigen ist, z.B. Ladevorgang abbrechen
} else{
if((RenaultZEServices_Zoe_ChargeLevel.state as Number) >= ((RenaultZEServices_Zoe_Charging_Target.state as Number)-3)){ //ab 3% weniger als Zielladung, aktualisiere alle 2 Min um genauer stoppen zu können
tMyTimer.reschedule(now.plusMinutes(2)) // Timercode in 5 Minuten erneut ausführen
} else{
tMyTimer.reschedule(now.plusMinutes(5)) // Timercode in 5 Minuten erneut ausführen
}
}
])
}
}
end
Aber irgendwie hängt das komplette System gegen Ende und ich muss openhab komplett neu starten. Weißt Du wo ich den Denkfehler habe?