Car Stats Viewer | 0.29.x (WIP)

Hallo zusammen,

wie kürzlich schon erwähnt, möchte ich euch mal wieder etwas auf den aktuellen Stand bringen, was die Entwicklung des CSV anbelangt. Aktuell sitze ich an den neuen Features der Version 0.29. Für den Stable Branch gibt es da noch keinen Release, aber die Play Store Alpha hat diese Version bereits seit einigen Tagen erhalten. Sprich: Der Build hat das Review von Google bestanden und ist im geschlossenen Test verfügbar und ausgerollt.

Darum die Info „WIP“ im Titel. Die Version ist noch in aktiver Entwicklung und nicht für jeden zugänglich.

Wie immer, allgemeine Informationen und eine Übersicht über alle verfügbaren Test-Tracks gibt es hier: Car Stats Viewer | Informationen


Noch mal zur Erinnerung, es gibt zwei primäre Varianten vom Car Stats Viewer. Nur damit ihr wisst, was ich meine wenn ich von den verschiedenen Varianten spreche:

  • Legacy: Das, was ihr hier von Anfang an kennt, mit einer von mir entworfenen Ansicht, die auch während der Fahrt sichtbar ist. Entspricht nicht den Google Richtlinien und wird in der Form nie öffentlich im Play Store verfügbar sein. Daher die Einschränkung, dass diese Variante nur über interne Tests mit einer maximalen Zahl von 100 Usern pro Track verteilt werden kann.
  • Play Edition: Eine abgewandelte Form der App, die während der Fahrt „Templated Screens“ verwendet, die starke Einschränkungen in der Gestaltungsfreiheit bedeuten. Daher ist die „While Driving Experience“ ein starker Kompromiss. Ziel ist aber ein Einhalten der Google-Richtlinien in den relevanten Punkten, was eine Veröffentlichung für alle im Play Store ermöglicht.

Diese Unterteilung bedeutet aber auch, dass es einige Änderungen und Fortschritte gibt, die nur jeweils eine der beiden Varianten betrifft. Ich versuche das hier möglichst verständlich aufzubereiten, damit ihr etwas besser nachvollziehen könnt, was alles so passiert ist, und teilweise auch warum.


Woran ich in den letzten Monaten am meisten gearbeitet habe, ist ein kompletter Rewrite der UI. Angefangen hat der CSV mal mit einem XML-basierten Layout mit eigenen Activities für jeden Screen. In aller kürze ist das das „klassische“ UI-System von Android. Screens werden dabei vergleichsweise starr in einer XML-Datei definiert, und eine Activity bildet das Gegenstück im Programm-Code. Mit dem neuen UI-System möchte ich die App komplett auf Single-Activity und Jetpack Compose mit MVVM migrieren. Jetpack Compose ist das modernste UI-System für Android, das extrem flexibel ist und vollständig im Programm-Code definiert wird.

Wer mit den Begriffen nichts anfangen kann, braucht sich keine Sorgen machen. Für den Nutzer ist das mehr oder weniger Egal. Wer die Begriffe kennt, weiß, wovon ich rede :stuck_out_tongue:

Aktuell benutzt CSV ein Mischmasch aus beidem. Funktioniert, ist aber wenig elegant und später nur sperrig anzupassen oder zu erweitern. Die bisher genutzte Compose-UI werfe ich dabei auch noch mal komplett aus dem Fenster, weil mir mein erster Wurf dann doch immer noch zu unflexibel war :upside_down_face: Die ganz neue UI habe ich „Car Compose“ getauft, ist darauf ausgelegt, in möglichst vielen verschiedenen Fahrzeugen flexibel einsetzbar zu sein, und ist von mir als separate Bibliothek zur einfach Wiederverwendbarkeit angelegt.

In der Legacy-0.29 wird CSV vorerst weiter die „Mischmasch-UI“ verwenden. Da ist noch viel zu tun, bis die neue UI komplette Featuregleichheit erreicht hat. Die neue UI ist daher vorerst nur über die Entwickleroptionen zugänglich. Ob sich da bis zum Legacy-Release noch was ändert und dort auch schon komplett Car Compose zum Einsatz kommt, kann ich momentan noch nicht abschätzen.

Anders sieht das bei der Play Edition aus. Zuletzt gab es den großen Stolperstein, dass Google sich daran gestört hat, dass der CSV mehrere Activities eingesetzt hat. Klingt zwar etwas idiotisch, wenn man bedenkt, dass man inzwischen Spiele und Streamingdienste auf dem Auto installieren darf, aber Google hat für IoT-Apps die strikte Regel, dass außer Einstellungen und Login-Screens keine anderen Aktivitäten währen das Auto geparkt ist angeboten werden dürfen. Dabei ist der Trip-Verlauf und die detaillierte Anzeige der Trip-Zusammenfassung unter die Räder geraten. Mit der neuen Car Compose UI verwendet der CSV in der Play Edition jetzt nur noch eine einzige Non-Templated Aktivität. Zumindest für den geschlossenen Test hat das gereicht, um das Review wieder zu bestehen. Technisch gesehen sind Trip-Verlauf und -Details also in die Einstellungen gewandert. Aber, und das ist der in meinen Augen wichtige Punkt: Nutzer der Play Edition haben damit zukünftig im geparkten Fahrzeug wieder den selben Funktionsumfang wie die Nutzer der Legacy-Variante. Der Unterschied ist damit nur noch der Funktionsumfang während der Fahrt und in begrenztem Rahmen die Anordnung im Einstellungsmenü.

Die neue, auf Car Compose basierende UI ist noch nicht ganz fertig, trotzdem möchte ich euch schon mal einen Ausblick darauf geben, was euch insbesondere in den Trip-Details erwarten wird. Hier mal einige Beispiel-Screens der aktuellen Entwicklungsversion aus dem Polestar 2 und Polestar 4:







Der Polestar 4 profitiert natürlich ungemein von seinem horizontal ausgerichtetem Display. Und wenn man Polestar 2 und Polestar 4 gegenüberstellt, dann wird schnell deutlich, wie flexibel sich das neue UI-System einsetzen lässt.

Teilt mir gerne euren Ersteindruck zu der neuen Anordnung mit!


Auf den Screenshots ist auch schon ein Detail zu erkennen, das ein Feature anteasert, das ich auch noch für die 0.29 plane: Der Export von Trips und Ladesessions via E-Mail.

Für die Ladesessions ist das ganze bereits umgesetzt und funktioniert. Die Daten werden dann in Form einer CSV-Datei (Comma Separated List, ich habe mir kein eigenes Dateiformat ausgedacht. Aber passend ist es irgendwie trotzdem :stuck_out_tongue: ) als E-Mail-Anhang an eine einstellbare Zieladresse gesendet. An dem Export für ganze Trips arbeite ich aktuell noch, das ganze wird aber genauso funktionieren. Die gewohnten Schnittstellen für ABRP und Webhooks sind natürlich weiterhin vorhanden.

Dabei läuft die Kommunikation über einen von mir angemieteten Webserver. Die Daten werden aber zu keinem Zeitpunkt dauerhaft gespeichert. Innerhalb eines API-Aufrufs an meinen Server wird die CSV-Datei erzeugt und verschickt. Danach werden die Daten sofort wieder verworfen.
Die notwendigen APIs laufen dabei „so nebenbei“ auf dem Webserver, den ich ohnehin gemietet habe.

Mehr zu dem Thema folgt dann, wenn es was neues zu erzählen gibt :wink:


Ich gehe aktuell nicht davon aus, dass nach einer Veröffentlichung dieses Features Mehrkosten auf meiner Seite anfallen. Gleiches gilt für die Kartenansicht über Mapbox (Da fallen fur Open Source-Projekte erst Kosten bei mehr als 25.000 aktiven monatlichen Nutzern an, das wird erst mal ne ganze weile langen). Gänzlich auszuschließen ist aber nicht, dass hier später doch mal Kosten für mich entstehen. Aber ich werde auch zukünftig keine „Premium-Features“ anbieten. Die Unterstützung für dieses Projekt wird auch zukünftig zu 100% auf Freiwilligkeit basieren. Ob diese Features dann irgendwann mal in der Zukunft in ihrer Verfügbarkeit limitiert werden müssen, kann ich noch nicht abschätzen.

Meine Überzeugung ist hier nach wie vor: Open Source, Kostenlos und Local First!


Ich freue mich auf eure Gedanken zu den beleuchteten Themen! :slight_smile:

30 Likes

Der Mann ist irre - im positiven Sinn… :saluting_face:

7 Likes

Interessantes Projekt. Ich komme ja von Volvo, S60 mit Sensus - da hatte ich auch schon meine App und da gab es interessanterweise noch um einiges mehr an Sensoren/Daten, dafür aber kein Ansroid-Studio geschweige den einen Polestar2 Emulator, den ich bereits zum Laufen bekommen habe (keine Ahnung, ob es mir hilft). Ich möchte langfristig auch eine App entwickeln, aber ich hab da einen anderen Ansatz(ich dachte mir, meine App soll eher die Daten vom Auto an meinen Server senden um das alles dann dort (automatisiert) auszuwerten). Aktuell hab ich eine anständige Web-App, die auf einem Server läuft und mir die zur Verfügung stehenden Sensoren über die „API“ abgreift, da geht schon einiges - vor allem aber das Ladelog (bei dem ich im Endeffekt nur mehr den Preis im Web hinterlegen muss und dann ein schönes Ladelog zur verfügung habe). Auch ein Tripbook mache ich auf dem Weg, so brauche ich im Auto aktuell gar nichts und kann über die Web-App alles schön sehen - zusätzlich kann ich auch noch das CSV vom Journey importieren, hab somit auch die genauen Routen in der App. Ich spiele mich aktuell noch rum und im Endeffekt mach ich das nur für mich zum Spaß, könnte mir aber vorstellen, das auch zur Verfügung zu stellen bzw. evtl. hilft es ja den Entwicklern hier oder wir machen ein gemeinsames Projekt. Sollte jemand Interesse haben und das Ding mal auf seinem Server testen wollen oder das Projekt durchforsten wollen - einfach anschreiben, dann geb ich mein git frei, das ist im Moment privat. Zum Testen braucht man nur einen LinuxHost mit Docker (Raspi, VPS…) und die Userdaten für die Polestar-App - dann läuft das Ding selfhosted. Sollte es Diskussionsbedarf geben machen wir auch hier gerne einen eigenen Thread auf - will den Thread hier nicht entfremden.

1 Like

Hi Maxi, zuerst einmal vielen Dank, dass Du da weiterhin so aktiv bist. Das ist eine Menge Aufwand und Zeit, die Du hier investierst. Ich war immer ein Fan der Playstore Variante und ich freue mich, dass ich hier etwas Neues zum Testen habe. Vielen Dank und ein schönes Wochenende!

1 Like

Hallo zusammen, hier mal ein kleiner Aufruf an alle P4-Fahrer, die entweder meinen Dev-Track oder die Play-Edition verwenden:

Kommen bei euch Plausible werte rum? :sweat_smile: Heute habe ich mit meinem Vater seinen neuen P4 abgeholt, und CSV wurde natürlich von Anfang an installiert. :smiling_face_with_sunglasses: Allerdings musste ich schnell feststellen: Irgendwas passt nicht:

69 kWh bei einem SoC 80% → 53% ist glaube ich etwas sportlich :sweat_smile:

Auch bei der Ladekurve das gleiche Spiel: Die Summe passt hinten und vorne nicht. Aber wären das reale werte, dann Brächten wir über Ladegeschwindigkeiten nicht mehr diskutieren :joy:

Ich habe die Vermutung, dass da etwas mit der Summierung nicht ganz hin haut, nachdem ich die Erfassung der Momentanleistung für den Polestar 2 angepasst habe. Das werde ich mir aber noch etwas genauer ansehen müssen.

Die Legacy-Variante dürfte nicht betroffen sein, aber eine kurze Bestätigung wäre trotzdem gut.

Läßt sich das aus einer historischen Fahrt (seit dem Update) ablesen, oder muss es während einer Tour sein?

Muss nichts neues sein. Seit dem Patch, der diese neue Leistungsanfrage eingeführt hat, reicht.

Meine Daten passen nicht.
Sehr hohe Menge (kWh) und hoher Verbrauch auf 100km (gut das doppelte)
Dafür war die Strecke zu gering. Laut Karte ca. 7 km, laut Werte aber nur 3,5km, also nur die Hälfte.

Da passt was nicht.

1 Like

Hm, das ist interessant … Die Distanz war bei uns gestern genau richtig :thinking:
Wurde auch die ganze Strecke aufgezeichnet? Bzw. war es irgendwas mit hin- und Rückweg, wo nur eine Strecke aufgezeichnet wurde?

Komplett, denn auf der Karte daneben war es ja korrekt.

Hallo Ixam!

Ist mein erster Post hier im Forum. Bin seit ca. 3 Monaten PS4 Fahrer. Habe Dir eine PN geschickt mit der gleichen Strecke und beiden Versionen aufgezeichnet ( Legacy und Play). Da sieht man schön den Unterschied.

LG. Christian.

2 Likes

Ich habe grade ein Update für die Play Edition freigegeben, das die Fehlerhafte Energieerfassung im Polestar 4 beheben sollte. Aber es wäre Super, wenn ihr weiterhin schauen könntet, ob die Fahrdaten bei euch plausibel sind. Es gibt auch Berichte von falsch getrackter Distanz. Das konnte ich aber selber noch nicht beobachten bzw. reproduzieren.

Fehlerhaft erfasste Fahrten können leider auch nicht nachträglich korrigiert werden. Es gibt keinen festen Faktor, mit dem die Energie verfälscht wurde, und auch eine Rückverfolgung, welche Datenpunkte mit welcher App-Version erstellt wurden, ist aktuell leider nicht möglich. Aber das ist dann wohl einfach ein Thema, mit dem man bei einer Alpha-Version leben muss :stuck_out_tongue:

1 Like

Bin gerade auf einem Roadtrip und Frage mich was passiert, wenn das Fahrerprofil gewechselt wird. Werden eben diese Daten dann nicht getracked, da dort die App nicht installiert ist und wenn sie installiert wäre schon?

Die installierten Apps und von Apps gespeicherte Daten sind für jedes Profil strikt getrennt. Es muss also auf beiden Profilen die App installiert sein, und auch dann sind das getrennte Datensätze. Einziger Weg da drum herum wäre eine Synchronisierung über ein Cloud- oder USB-Backup. Das kann die App aber (noch) nicht.
Wenn dir durchgehende Daten wichtig sind, sollte auf der ganzen Strecke nur ein Fahrerprofil genutzt werden.

1 Like

Ok macht Sinn. Wird wahrscheinlich wie zwei Android Profile behandelt mit komplett getrennter Datenstruktur. Polestar selber hat natürlich auf andere Ressourcen zugriff. Über ein Google Backup sicherlich vorstellbar. Mit dem export ware ja auch schon ein erster Schritt Richtung Backup getan. Danke für die App.

1 Like

Ein paar Gedanken zu dem Thema habe ich mir schon gemacht. Aber leider ist das nichts, was mal eben schnell eingebaut werden kann :sweat_smile:
Da die App „offline first“ bleiben soll, wäre die Lösung über einen USB-Stick (oder falls möglich auch den internen Speicher - welche App auf welche Speicherbereiche zugreifen darf ist aber nicht so trivial) meine bevorzugte Lösung. Dann könnte man zumindest beim Profilwechsel eine Synchronisierung durchführen. Das steht derzeit nicht sonderlich weit oben auf der Wunschliste, aber ist definitiv ein Thema, dem ich mich später annehmen möchte.

1 Like

Momentan werde ja die Grafiken zum Verbrauch und Laden nicht angezeigt und auch die Ladezeit nicht. Wenn dies wieder funktioniert geht dies auch mit alten Daten, weil die gespeichert sind und nur nicht angezeigt werden oder nur ab dem Zeitpunkt ab dem das Update mit den Diagrammen aktiv ist?

Das ist nur eine Darstellungssache. Solange CSV Daten aufgezeichnet hat, werden die zukünftig auch wieder in einem Diagramm dargestellt.

1 Like

Ok Top. Da freu ich mich drauf.