irgendwie komme ich derzeit mit meinem Timer nicht weiter. Für die Zielladung unseres EVs nutze ich einen Timer, der um 0:01 berechnet wird um das Auto dann am frühen Morgen fertig geladen zu haben. Die max. Ladeleistung beträgt dabei schonende 8kW.
So weit und gut, das klappt auch gut mit dem kleinen Fiat 500 meiner Frau, da dieser "nur" eine 42kWh Batterie hat. Zudem sind dann meist noch 10-15% im Akku und wir laden auf 85%. Somit fängt er dann irgendwann um 3 Uhr an uns ist um 6:40 fertig.
Unser EV6 mit 77kWh Batterie braucht da schon etwas länger und daher wäre die Frage ob man auch einen Tag im voraus den Timer setzen kann.
Ich habe die Rule mal auf den Part der Zeitberechunng reduziert und dort auch bewusst lokale Variablen genutzt.
Code: Alles auswählen
rule "Setze Startzeit"
when
Item SetSmartCharge received command ON
then
val actions = getActions("pushover", "pushover:pushover-account:account")
var vWarp = ((evcc_targetSoc.state as Number).intValue - (evcc_vehicleSoc.state as Number).intValue)
var vPower = ((vWarp * 0.74) - 4.140).floatValue
var vDuration = ((vPower / 0.138) + 45).intValue
val vChargeEnd = LocalTime.MIDNIGHT.withHour((EVChargeEndHour.state as Number).intValue).withMinute((EVChargeEndMinutes.state as Number).intValue).withSecond(0)
val vChargeStart = vChargeEnd.with(vChargeEnd).minusMinutes((vDuration as Number).intValue)
actions.sendMessageToDevice("J", "Startzeit ist: " + vChargeStart.toString, "EV Charger")
end
Würde openHAB automatisch den Timer für den nächsten Tag starten?
Gesetzt wird der Timer mit
Code: Alles auswählen
tChargeNow = createTimer((ZonedDateTime.now().with(vChargeStart)), [|
hier macht er etwas
])