Verbrauch pro 100 km berechnen

Einrichtung der openHAB Umgebung und allgemeine Konfigurationsthemen.

Moderatoren: seppy, udo1toni

shuo
Beiträge: 181
Registriert: 1. Sep 2018 18:24
Answers: 0

Verbrauch pro 100 km berechnen

Beitrag von shuo »

Hallo zusammen,
ich habe einen Zoe und kann bestimmte Werte erfolgreich an openhab - Items übergeben. Nun würde ich gerne den Verbrauch pro 100 km ermitteln.
Dazu stehen mir zwei entscheidende Items zur Verfügung:
  1. Aktueller Kilometerstand
  2. Verfügbare Energie
Ich stehe gerade bisschen auf dem Schlauch wie ich
  1. Den Kilomterstand alle 100km erkenne, unabhängig von irgendwelche Neustarts etc
  2. Die Differenz von der verfügbaren Energie. Hier kann es natürlich sein, dass zwischendurch ein Ladevorgang stattfinden kann. Das heißt das nach 100 gefahrenen Kilometer die verfügbare Energie größer ist als am Anfang
Hat jemand eine Idee wie ich das angehen könnte?

Benutzeravatar
udo1toni
Beiträge: 15249
Registriert: 11. Apr 2018 18:05
Answers: 242
Wohnort: Darmstadt

Re: Verbrauch pro 100 km berechnen

Beitrag von udo1toni »

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

shuo
Beiträge: 181
Registriert: 1. Sep 2018 18:24
Answers: 0

Re: Verbrauch pro 100 km berechnen

Beitrag von shuo »

Hi Udo,
vielen Dank für den Vorschlag.

Grundsätzlich rufe ich alle Daten im Minuten-Takt ab. Sollte also "eigentlich" relativ genau funktioneren. Das Auto muss nicht dazu daheim sein.

Für mich noch nicht versändlich wie ich das mit dem "Tanken" umsetzen soll. Es muss quasi immer nur die "Abgänge" von der verfügbaren Energie berücksichtigt werden.

Bspw:
aktuelle verfügbare Energie 12 kw
vorherige verfügbare Energie 14 kw

Also 2 kw verbraucht auf Diffkm.

Wenn ich jetzt aber dazwischen tanke könnte es so aussehen:
aktuelle verfügbare Energie 52 kw
vorherige verfügbare Energie 12 kw

Der Betrag wären somit 40 was ja nicht dem Verbrauch entsprechen würde.

shuo
Beiträge: 181
Registriert: 1. Sep 2018 18:24
Answers: 0

Re: Verbrauch pro 100 km berechnen

Beitrag von shuo »

Um es besser zu veranschaulichen zeige ich hier mal einen typisch möglichen Verlauf der verfügbaren Energie:
remaining_energy.png
Du hast keine ausreichende Berechtigung, um die Dateianhänge dieses Beitrags anzusehen.

EmptySoft
Beiträge: 247
Registriert: 7. Jan 2020 14:45
Answers: 2
Kontaktdaten:

Re: Verbrauch pro 100 km berechnen

Beitrag von EmptySoft »

Kann die Zoe Rekuperation? Falls nicht, kannst Du Werte wenn sie größer werden weglassen, sonst musst ein wenig mehr programmieren
BYe
Harald

shuo
Beiträge: 181
Registriert: 1. Sep 2018 18:24
Answers: 0

Re: Verbrauch pro 100 km berechnen

Beitrag von shuo »

ja, kann sie. Daher die Idee wenn der Wert größer wird, heißt es laden und für den Durchschnitt eben nur die Werte die weniger werden....

EmptySoft
Beiträge: 247
Registriert: 7. Jan 2020 14:45
Answers: 2
Kontaktdaten:

Re: Verbrauch pro 100 km berechnen

Beitrag von EmptySoft »

Aber wenn Du länger bergab fährst, dann wird länger rückgewonnen (sieht aus wie laden) und Deine Werte stimmen nicht mehr. Wenn sich der Km Stand nicht verändert, aber die Kapazität erhöht, ladest Du, das würde ich miteinbauen
BYe
Harald

shuo
Beiträge: 181
Registriert: 1. Sep 2018 18:24
Answers: 0

Re: Verbrauch pro 100 km berechnen

Beitrag von shuo »

Guter Hinweis. Ich bin mir nur nicht sicher ob ich das so fein granular hinbekomme.

Derzeit noch am überlegen wie das mit der Energie-Differenz hinbekomme, wenn ein Ladevorgang dazwischen ist....

EmptySoft
Beiträge: 247
Registriert: 7. Jan 2020 14:45
Answers: 2
Kontaktdaten:

Re: Verbrauch pro 100 km berechnen

Beitrag von EmptySoft »

Ich bin nicht so gut in Rules blind tippen (bin mehr der try and error Type)

Code: Alles auswählen

rule "Zoe km"
when
  Item ZoeKM changed or 
  Item ZoePower changed
then
 if(ZoePower.state == 0)
  {
  logInfo("Zoe.rules","Zoe bewegt sich nicht -> wird an Steckdose geladen")
  } else {
  logInfo("Zoe.rules","Zoe bewegt sich -> Verbrauch speichern")
  var Entfernung = ZoeKM(newState - previousState)
  logInfo("Zoe.rules","Entfernung: " + Entfernung)
  var Verbrauch = ZoePower (newState - previousState)
  logInfo("Zoe.rules","Verbrauch: " + Verbrauch)
  var VerbrauchProKm=Verbrauch/Entfernung
  logInfo("Zoe.rules","VerbrauchProKm: " + VerbrauchProKm)
  }
end
Dann kannst Du die Werte in persistente MySQL speichern und nach allen gewünschten Arten auswerten
BYe
Harald

Benutzeravatar
udo1toni
Beiträge: 15249
Registriert: 11. Apr 2018 18:05
Answers: 242
Wohnort: Darmstadt

Re: Verbrauch pro 100 km berechnen

Beitrag von udo1toni »

An die Rekuperation hab ich gar nicht gedacht... (oller Dieselfahrer) [emoji6]
Aber wenn die Daten ohnehin quasi lückenlos zur Verfügung stehen (3 Minuten scheint mir da ein guter Kompromiss zu sein), kannst Du ja recht einfach rechnen. Wenn die Kapazität zunimmt, der km-Stand sich aber nicht ändert, lädt das Fahrzeug an einer Steckdose. Verändert sich der km-Stand, wird das Fahrzeug bewegt.

Ich würde versuchen, das über mehrere Rules zu erschlagen. Eine Rule für km changed. Die prüft, wann die letzte Änderung stattfand (.changedSince). Ist die letzte Änderung länger her, beginnt nun eine Fahrt. -> Startwert sichern. Ist die letzte Änderung erst vor kurzem erfolgt, fährt das Fahrzeug noch.
Eventuell müsste man in der Rule einem Timer auf 3 Minuten einbauen. Läuft der ab, wurde das Fahrzeug vermutlich geparkt. Die genauen Parameter muss man vermutlich noch etwas tunen, um Stau und sowas zu ignorieren.
Eine weitere Rule kann dann laufend den Schnitt berechnen, solange die Fahrt dauert. Wird die Fahrt beendet, wird auch die Berechnung des Schnitts beendet und der Start-Kilometerstand gelöscht.

Gesendet von meinem SM-G973F mit Tapatalk


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

Antworten