-
Notifications
You must be signed in to change notification settings - Fork 2
DE Feature Trips
Jede Fahrt wird aus dem Stream rekonstruiert und gespeichert: Strecke, Dauer, Start- und Zielort, verbrauchter Ladezustand sowie BMWs eigene Werte je Fahrt zu Verbrauch, Rekuperation und Fahrstil. Ohne REST-Kontingent.
Kein Finanzamt-konformes Fahrtenbuch. Das hier ist ein Fahrtenbuch und eine Hilfe für Spesen; es ist rechtlich nicht manipulationssicher.
Fahrten werden aus dem Live-GPS im Stream rekonstruiert (die Integration verfolgt die Strecke entlang der GPS-Spur), eine Konfiguration ist nicht nötig. Achte darauf, dass die Datengruppe Elektrofahrzeug und die Standort-Deskriptoren in Schritt 4 aktiviert sind.
Eine Fahrt wird später bemerkt, als sie beginnt, und später geschlossen, als sie endet — BMWs Positions-Stream kann minutenlang schweigen, und eine Fahrt schließt erst, wenn das Auto fünf Minuten stillstand. Start und Ende werden dafür korrigiert, sie zeigen also Fahrzeiten und keine Erkennungszeiten:
- Start — wann das Auto zuletzt geparkt gesehen wurde, sofern dein Auto die Fahrertür streamt (die Tür schließt sich, weil der Fahrer eingestiegen ist) und sie sich in den letzten fünf Minuten geschlossen hat. Sonst der erste GPS-Punkt, der Bewegung zeigte.
- Ende — der letzte GPS-Punkt, der Bewegung zeigte, nicht der Moment, in dem der Fünf-Minuten-Timer ablief. Beendet stattdessen das Öffnen der Fahrertür die Fahrt, ist das die Ankunft.
Beides bleiben Schätzungen, begrenzt dadurch, wie oft dein Auto seine Position meldet: Eine lange Lücke im Stream ist eine lange Lücke im Wissen.
„Fünf Minuten keine Bewegung“ hat zwei sehr verschiedene Ursachen: Das Auto hat angehalten, oder der Stream hat aufgehört. Nur das Erste beendet eine Fahrt — das Zweite zu schließen, teilte früher eine Fahrt durch einen Tunnel oder ein Funkloch in zwei Fahrten.
Ein Halt wird daher erst umgesetzt, wenn etwas ihn bestätigt: eine Positionsmeldung, die das Auto stehend zeigt, oder ein ausdrückliches „bewegt sich nicht“ bei Autos, die so etwas senden. Fehlt beides, bleibt die Fahrt offen, bis die Meldungen zurückkommen und es klären — ist das Auto weitergefahren, war es die ganze Zeit eine Fahrt; taucht es dort wieder auf, wo es verschwand, stand es wirklich, und die Fahrt endet rückwirkend bei der letzten Bewegung. Kommt der Stream nie zurück, schließt die Fahrt nach einer halben Stunde, und weil das Ende in jedem Fall rückdatiert wird, kostet ein spätes Schließen keine Genauigkeit.
Eine laufende Fahrt steht noch nicht im Fahrtenbuch — sie hat kein Ende, keine endgültige Strecke und nichts zum Zuordnen —, daher wird sie getrennt und live angezeigt:
- Ein Binärsensor Fahrt aktiv pro Fahrzeug:
an, solange eine Fahrt läuft, mit der bisherigen Fahrt als Attributen —started,start_location,distance_km,duration_s,soc_start,soc_now,energy_kwh,last_movementundheld. - Auf der Karte: ein Abzeichen in der Übersicht (Strecke und Minuten bisher, antippen für die Attribute) und eine aktive Zeile oben in der Fahrten-Ansicht — woher du kamst, Strecke und Zeit bisher und, bei eingeschalteter Routenaufzeichnung, die bisherige Route auf einer Karte.
- In
bavariandata.get_trips: eine Listeopen_tripsneben den gespeicherten Fahrten.
Zwei Dinge, bevor du darauf automatisierst:
-
Es ist kein Sensor „Auto bewegt sich“, deshalb heißt er auch nicht so. Er
sagt dir, dass eine Fahrt offen ist. Eine Fahrt öffnet bei der ersten
Positionsmeldung mit Bewegung und schließt fünf Minuten nach der letzten — länger,
solange der Stream schweigt (siehe oben),
und genau so sieht Parken in der Tiefgarage aus. Er bleibt nach der Ankunft also
einige Minuten
an, und bis zu einer halben Stunde, wenn das Auto ohne Empfang parkt. Das Ende der gespeicherten Fahrt wird trotzdem richtig rückdatiert; nur das Live-Signal hängt nach. Für die feinere Frage nutze das Attributlast_movement. -
Die Werte sind vorläufig. Die Strecke kommt vom Kilometerstand, der nur in
ganzen Kilometern zählt, sie zeigt in der ersten Minute einer Fahrt also
unknownund hängt danach etwas hinter der GPS-Spur her. Der endgültige Datensatz wird beim Schließen aus der besten verfügbaren Quelle berechnet. - Über einen Neustart kommt nichts: Eine laufende Fahrt existiert nur im Speicher,
ein Neustart von Home Assistant mitten in der Fahrt beendet sie also und das
Signal geht auf
aus.
Endpunkte werden als Ortsnamen gespeichert, nie als Koordinaten:
- Ein Punkt innerhalb einer Zone von Home Assistant zeigt den Namen der Zone.
- Ein Punkt außerhalb jeder Zone wird nur dann als Adresse gespeichert, wenn du unter Konfigurieren → Fahrten Adressen auflösen einschaltest. Dabei werden die Koordinaten des Endpunkts an Nominatim von OpenStreetMap gesendet; gespeichert wird die Adresse, die Koordinaten selbst nie.
Standardmäßig behält eine Fahrt nur ihre benannten Endpunkte — genug für das Fahrtenbuch, aber nicht für eine Karte. Schalte Route aufzeichnen unter Konfigurieren → Fahrten ein, und jede neue Fahrt speichert zusätzlich ihre GPS-Spur: die Linie der Koordinaten entlang der Fahrt, jeweils mit Zeitpunkt, sodass eine Karte zeigen kann, wo das Auto fuhr, und die Fahrt abspielen kann.
- Das ist die einzige Einstellung, die rohe Koordinaten auf die Festplatte schreibt — deine genauen Start- und Zielpunkte eingeschlossen —, deshalb ist sie standardmäßig aus und unabhängig von der Adressauflösung.
- Sie wirkt ab der nächsten Fahrt, die beginnt; schon gespeicherte Fahrten behalten, womit sie aufgezeichnet wurden, und eine laufende Fahrt behält die Einstellung, mit der sie begann.
- Die Spur hängt am Fahrt-Datensatz und wird von
bavariandata.get_tripszurückgegeben (als Listetrackvon Punkten). Jeder Punkt ist[lat, lon, t], wobeitdie ganzen Sekunden seit Fahrtbeginn sind — so kann eine Karte die Route in Echtzeit animieren und nach Tempo einfärben. Routen von vor dieser Funktion speichern zweistellige Punkte[lat, lon]und kommen ohne Zeiten zurück; ihre Zeiten lassen sich nicht nachträglich ergänzen. Die Spur ist nie im CSV- oder druckbaren Export enthalten, der bei Ortsnamen bleibt. - Die Spur ist begrenzt und leicht ausgedünnt, sodass auch eine mehrstündige Fahrt eine kompakte Route bleibt statt eines endlosen Stroms von Punkten. Ein Halt erscheint als einzelner Punkt, dessen Abstand zum nächsten Zeitstempel zeigt, wie lange das Auto stand.
Sind Routen aufgezeichnet, zeichnet die Ansicht Fahrtenkarte der Dashboard-Karte
(view: map) sie auf einer Karte, eingefärbt nach Zuordnung und filterbar nach
Zeitraum (siehe Karte).
Fahrten werden automatisch als geschäftlich, privat oder Pendeln eingeordnet:
- Lege unter Konfigurieren → Fahrten eine Arbeitszone fest, damit Fahrten Zuhause↔Arbeit als Pendelfahrten erkannt werden.
- Alles andere wird als Standard-Typ eingeordnet — ab Werk Privat. Wähle Geschäftlich, wenn das für deine Fahrten der ehrliche Standard ist, oder nicht zuordnen, um jede Fahrt von Hand einzuordnen.
- Korrigiere jede Vermutung mit
bavariandata.set_trip_classoder dem Bearbeiten-Element auf der Fahrten-Karte.
Die automatische Zuordnung ist immer nur ein Ausgangspunkt: Eine Fahrt, die du selbst eingeordnet hast, wird nie überschrieben, und das Ändern dieser Einstellungen berührt keine bereits gespeicherten Fahrten.
Ein Einkauf zwischen Zuhause und Arbeit lässt das Auto lange genug stehen, dass zwei Fahrten aufgezeichnet werden, von denen keine allein Zuhause→Arbeit ist. Dafür gibt es die Toleranz für Zwischenstopps (Standard 30 Minuten): Steht das Auto zwischen dem Ende der einen und dem Beginn der nächsten Fahrt nicht länger als das, bilden die Fahrten eine Kette, und eine Kette von einer Pendelzone zur anderen zählt als Pendeln — mit allen Abschnitten, rückwirkend. Die Stopps bleiben im Fahrtenbuch als eigene Fahrten sichtbar; sie tragen nur alle das Abzeichen Pendeln.
Zuhause ──12 min──▶ Supermarkt ──[22 min Stopp]──▶ Arbeit beide Abschnitte = Pendeln
Zuhause ──8 min───▶ Bäcker ──────[15 min Stopp]──▶ Zuhause beide Abschnitte = privat
Arbeit ───5 min───▶ Mittagessen ─[40 min Stopp]──▶ Arbeit beide Abschnitte = privat
Gut zu wissen:
- Eine Kette endet, wenn sie Zuhause oder die Arbeit erreicht, sodass eine Mittagsrunde vom Büro und zurück nicht in die Morgenfahrt gezogen wird.
- Geprüft werden beide Enden der Kette, nicht irgendein Endpunkt — eine Rundfahrt, die zu Hause beginnt und endet, bleibt privat, egal wie viele Stopps sie hatte.
- Bis zu fünf Fahrten können eine Kette bilden. Eine längere Folge kurzer Strecken ist ein Tag voller Besorgungen und behält daher den Standard-Typ.
- Stopps unter etwa fünf Minuten teilen eine Fahrt ohnehin nie, diese Einstellung regelt also den Bereich darüber. Mit 0 schaltest du die Verkettung ganz ab.
BMW streamt den Ladezustand in ganzen Prozent. Bei einem 78-kWh-Akku ist eine
Stufe also etwa 0,8 kWh wert — über eine 30-km-Pendelfahrt ein Rundungsfehler, über
eine 1-km-Strecke die ganze Messung. Etwas Feineres gibt es nicht: Der einzige
andere Energiewert im Stream (smeEnergyDeltaFullyCharged) ist dieselbe Größe auf
ganze kWh gerundet, und BMWs eigenes Verbrauchsfeld je Fahrt
(energyConsumptionComfort) sendet nicht jedes Auto — der i5 zum Beispiel nie.
BavarianData zeigt daher zwei Werte und verweigert einen dritten.
Der Hauptwert: eine Energiebilanz. Allein aus dem Ladeverlauf gemessen — zwei Ladevorgänge schließen ein Fenster ein, jeder mit einem Kilometerstand und einem Ladezustand zum Ende, sodass gefahrene Strecke und gelieferte Energie dazwischen bekannt sind, ohne dass eine Fahrt erkannt worden sein muss.
verbraucht = zwischen den beiden Messungen geladene Energie
− (Ladezustand am Ende − Ladezustand am Anfang) × Kapazität
Strecke = Kilometerstand am Ende − Kilometerstand am Anfang
Die geladene Energie wird aus der gestreamten Ladeleistung integriert, nicht aus einem gerundeten Ladezustand abgelesen, dieser Wert ist also nicht an die Ein-Prozent-Auflösung gebunden. Und weil er nie den Fahrt-Datensatz liest, stimmt er auch in einem Monat, in dem eine Fahrt verpasst wurde (ausgefallener Stream, Update, Tiefgarage). Er reicht von der ersten bis zur letzten Ladung, meist etwas kürzer als der Kalendermonat.
Welche Seite des Ladegeräts er beschreibt, hängt von deiner Einrichtung ab, und die Karte sagt es:
- Ab Akku — der Standard. BMW streamt die batterieseitige Ladeleistung, die Energie in dieser Summe ist also das, was im Akku ankam, nicht was aus der Wand floss. Direkt vergleichbar mit der Verbrauchsanzeige des Autos.
- Ab Steckdose — nur, wenn jede Ladung im Fenster einen gemessenen Netzwert hat, aus einer verknüpften Wallbox-Energie-Entität oder aus BMWs Ladehistorien-Import. Dieser Wert enthält die Ladeverluste, liegt also über der Anzeige des Autos und ist das, was der Strom tatsächlich gekostet hat. Nur dann zeigt die Karte darunter auch den batterieseitigen Wert, mit der Differenz als Ladeverlust — denn nur dann messen die beiden wirklich Verschiedenes.
Der batterieseitige Fahrtenwert. Gesamte Fahrtenergie über gesamte Fahrtstrecke, ebenfalls mit der Anzeige des Autos vergleichbar. Er ist eine nach Strecke gewichtete Summe, kein Mittel der Werte je Fahrt: Ein Mittel von Verhältnissen lässt eine 2-km-Strecke eine 200-km-Fahrt überstimmen, was das Ergebnis stark aufbläht. Er misst dieselbe Größe wie die batterieseitige Bilanz, nur über Fahrterkennung und Ladezustands-Differenzen — deshalb führt die Bilanz, und dieser Wert erscheint nur daneben, wenn die Bilanz netzseitig ist.
Der Verbrauch je Fahrt wird unter 3 % Ladezustand zurückgehalten. Darunter ist die Rundung die Messung — eine 1-km-Fahrt, die zufällig ein Prozent verliert, ergäbe ~78 kWh/100 km. Solche Fahrten zeigen Strecke, Dauer und Energie wie gewohnt, aber keinen Verbrauch, und sie können weder „beste“ noch „schlechteste“ Fahrt des Monats sein. In einem typischen Monat aus kurzen Besorgungen und langen Pendelfahrten tragen also nur die längeren Fahrten einen Wert; das ist das ehrliche Ergebnis, keine Lücke.
Plug-in-Hybride bekommen keinen Verbrauch je Fahrt. Die Energie einer Fahrt ist der Rückgang der Batterieladung, doch ein Hybrid kann einen Teil der Strecke mit Kraftstoff gefahren sein, und der Stream liefert keine rein elektrische Strecke, durch die man teilen könnte. Eine 40-km-Fahrt mit 4 kWh und einem Liter Benzin ergäbe 10 kWh/100 km — einen Wert, den kein Teil des Autos erreicht hat. Hybrid-Fahrten behalten daher ihre Energie, der Verbrauchswert bleibt leer, und sie zählen nicht zum batterieseitigen Durchschnitt. Auch der am Stecker gemessene Monatsverbrauch wird aus demselben Grund zurückgehalten (mehr).
Eine Hybrid-Fahrt speichert keinen End-Ladezustand, wenn währenddessen keiner kam. Manche Plug-in-Hybride senden ihren Ladezustand nie; der einzige Wert ist dann der von vor der Fahrt. Statt ihn auch als Ende zu speichern, als hätte sich die Batterie nie bewegt, behält die Fahrt ihren Start-Ladezustand und lässt Ende, verbrauchten Ladezustand und Energie leer; die Karte zeigt dafür keine Ladezustandszeile. Ein Elektroauto sendet seinen Ladezustand bei jeder Änderung, daher ist ein unveränderter Wert auf einer kurzen Fahrt echt und bleibt erhalten.
Auch die Rekuperation wird in kWh/100 km gezeigt, nicht in kWh: BMWs
recuperationTotalist als Durchschnitt pro 100 km dokumentiert, ein Monat ist also ein nach Strecke gewichtetes Mittel davon, nie eine Summe.
- Ein Sensor Fahrstrecke (dieser Monat) pro Fahrzeug trägt die Monatssumme und die Aufteilung geschäftlich/privat/Pendeln.
- Ein Binärsensor Fahrt aktiv pro Fahrzeug für die gerade laufende Fahrt — siehe oben.
- Die Details stecken in den Diensten (und der Karte), nicht in einer Flut von
Entitäten:
-
bavariandata.get_trips— gespeicherte Fahrten als Antwortdaten, dazuopen_tripsfür eine laufende Fahrt. -
bavariandata.get_driving_summary— die Monatsübersicht: Strecke (gegen den Vormonat), die Aufteilung, Verbrauch, Rekuperation, eine Fahrstil-Bewertung, die häufigsten Ziele und (mit Tarif) geschätzte Fahrtkosten. Der Verbrauch kommt als zwei Schlüssel —energy_balance(steckdosenseitig, mit dem Fenster und den Eingangswerten) undavg_consumption_kwh_per_100km(batterieseitig); siehe wie der Verbrauch gemessen wird. Beide können fehlen, wenn ihre Eingangswerte keinen Wert tragen.
-
- Die Kartenansicht
view: trips. - Export als CSV oder druckbarer Bericht.
BavarianData is an independent, community-built integration and is not affiliated with, endorsed by, or sponsored by BMW Group. "BMW", "Mini", "Rolls-Royce" and "CarData" are trademarks of their respective owners. Screenshots and documentation images of the MyBMW / BMW CarData portal are © BMW AG, shown here solely to document how to set up the service; personal data has been redacted. BavarianData ist eine unabhängige Community-Integration und steht in keiner Verbindung zur BMW Group, wird von ihr weder unterstützt noch gesponsert. Screenshots des MyBMW- / BMW-CarData-Portals sind © BMW AG und werden nur zur Erklärung der Einrichtung gezeigt; persönliche Daten sind geschwärzt. Released under the MIT License. · Issues · Discussions
Getting started
- Coming from bimmer_connected
- 1. BMW portal setup
- 2. Install
- 3. Add & authorize
- 4. Choose data to stream
The card
Features
- Entities & devices
- Charging history & cost
- Battery health
- Efficiency & range
- Trips
- evcc & wallbox bridge
- Energy & statistics
- Export
- Events & blueprints
- API quota
- Multiple cars & accounts
Reference
Erste Schritte
- Umstieg von bimmer_connected
- 1. Einrichtung im BMW-Portal
- 2. Installation
- 3. Hinzufügen & autorisieren
- 4. Daten auswählen
Die Karte
Funktionen
- Entitäten & Geräte
- Ladeverlauf & Kosten
- Batteriezustand
- Effizienz & Reichweite
- Fahrten
- evcc- & Wallbox-Brücke
- Energie & Statistiken
- Export
- Ereignisse & Blueprints
- API-Kontingent
- Mehrere Fahrzeuge & Konten
Nachschlagen