Vermutlich ist es so, dass Du die Informationen nur im geparkten Zustand vor der Haustür bekommst, richtig? Und dann bekommst Du auch nur die Momentaufnahme, aber keinen Verlauf. Ich bezweifle, dass Du damit vollautomatisch und zuverlässig den Schnitt errechnen kannst. Mindestens müsstest Du openHAB irgendwie mitteilen, wenn das Fahrzeug geladen wurde. openHAB kann sicher anhand des Kilometerstands bei einer Änderung die gefahrenen Kilometer bestimmen. Ebenso kann es bei geändertem Ladestand die Differenz zum alten Ladestand erkennen. Aber danach kann openHAB allenfalls offensichtliche Fehler erkennen, aber nicht zuverlässig, ob (und vor allem wie viel) zwischenzeitlich geladen wurde. Beispiel:
Items:
Code: Alles auswählen
Number ZoeKM "Kilometer [%.1f km]"
Number ZoePower "Ladung [%.1f kWh]"
Number ZoeDiffKM "Differenz [%.1f km]"
Number ZoeDiffPower "Diff. Ladung [%.1f kWh]"
Number ZoeAVG "Schnitt [%.3f kWh/km]"
Rule:
Code: Alles auswählen
rule "Zoe km"
when
Item ZoeKM changed
then
ZoeDiffKM.postUpdate(newState - previousState)
end
rule "Zoe Ladung"
when
Item ZoePower changed
then
ZoeDiffPower.postUpdate(newState - previousState)
end
rule "Zoe Schnitt"
when
Item ZoeDiffKM received update
then
val wert = (ZoeDiffPower.state as Number)/(ZoeDiffKM.state as Number)
if(wert < 0) {
// es wurde sicher getankt; Tank voller als vor der Fahrt
return;
}
if(wert < (ZoeAVG.state as Number)*2/3 ) {
// so sparsam fährt niemand, vermutlich wurde getankt
return;
}
ZoeAVG.postUpdate(wert)
end
Die beiden ersten Rules bilden die Differenz zum letzten bekannten Wert. Die dritte Rule errechnet den Schnitt. Falls der Schnitt den letzten Schnitt um mehr als 33% unterschreitet, wird das Ergebnis verworfen.
Die Rules werden so sicher nicht auf Anhieb funktionieren, denn die Items müssen erst mal initialisiert werden. Insbesondere der Schnitt wird ja selbst zur Berechnung herangezogen, ist aber initial NULL, da knallt es dann. Und ob eine Abweichung von mehr als 33% nach unten ein sicheres Indiz ist, ist auch schwer abzuschätzen... Aber zumindest als grobe Idee könnte es ja helfen.

openHAB4.3.3 stable in einem Debian-Container (bookworm) (Proxmox 8.3.5, LXC), mit openHABian eingerichtet