Page: Laden #3
Labels
No labels
blocked
claude
in-progress
needs-review
No milestone
No project
No assignees
2 participants
Notifications
Due date
No due date set.
Dependencies
No dependencies set
Reference
aiways/AiwaysApp#3
Loading…
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Neue Seite "Laden" direkt nach "Übersicht", bzw. "Fahrzeug" - wenn der andere Issue umgesetzt ist.
Hier eine schöne Lade-Ansicht, zeigt ein paar mehr Infos über den Akku, vielleicht eine schöne Grafik, die aktuellen Charge-Werte falls vorhanden,etc. Pp.
Umgesetzt und live (http://192.168.1.85/, Release
v1.0.23).Neue Seite Laden, direkt nach „Fahrzeug" in der Bottom-Nav.
Was drauf ist:
Drei Annahmen, bitte gegenlesen:
charge_stateist backendseitig nicht dokumentiert — die Live-Instanz liefert gerade3, unser Code prüft historisch auf1. Ich habe die Bedeutung deshalb nicht geraten: „lädt" entscheidet sich primär am Strom (pack_current < -1), und der Rohwert steht sichtbar in der Diagnose, damit wir die Bedeutung an echten Ladedaten ablesen können. Wenn du mir sagst, was 1/2/3 heißen, baue ich es sauber ein.charging_screen.dart.cells/tempsankommen; bis dahin steht dort ein Hinweis statt einer leeren Fläche.Können wir auf der Lade-Seite noch ähnlich der FordApp eine Max-Charge hinterlegen? Also das man so einen Schieber hat, mit dem man einstellen kann, lade bis 85%
Umgesetzt und live (http://192.168.1.85/, Commit
272e39b) — Strg+F5 wegen Cache.Auf der Laden-Seite gibt es jetzt eine Karte Ladelimit — Schieber wie in der FordPass-App:
Eine Sache, die Du wissen musst: Das Auto kann den Wunsch noch nicht ausführen. Es gibt keinen BLE-Code für ein Ladelimit im verifizierten Prototyp und im Backend kein Feld dafür. Beim Loslassen des Schiebers geht der Wunsch deshalb als Befehl
set_charge_limitmit{"limit": 85}in die normale Kette (Bluetooth → Backend) und liegt als Kommando im Backend bereit — sichtbar wie jeder andere Befehl. Sobald wir wissen, wie das Auto ein Limit entgegennimmt, ist das genau eine Zeile inbleTypeFor. Die App selbst rechnet und zeichnet aber schon vollständig mit dem Limit.Tests für Hochrechnung, Speicherung je Fahrzeug und die Akku-Marke sind dabei (45 Tests grün,
flutter analyzesauber). CI + Deploy grün (analyze/gate/release/deploy-web), live gegengeprüft.In der Lade-Page ist aktuell unten eine kleine Karte für den "Ladestand-Verlauf", dort wird aber nur der aktuelle Akku-Prozent angezeigt. Ich fände es besser, wenn dort die Ladekurve für die aktuelle Ladesitzung angezeigt wird (also der Leistungsverlauf)
Umgesetzt: Die Karte unten auf der Laden-Seite zeigt jetzt die Ladekurve der aktuellen Ladesitzung statt des reinen Ladestands (Commit
26a8538).Was drin steht
Zwei Dinge, die Du wissen solltest
Die TBox meldet den Pack-Strom nur beim dbcvpage-Sweep. In den letzten zwei Tagen tragen von ~3800 Telemetrie-Zeilen genau 59 überhaupt einen Strom, 21 davon einen Ladestrom. Eine glatt gezeichnete Kurve wäre deshalb gelogen: die Messpunkte bleiben sichtbar, solange es wenige sind, und bei großen Lücken sagt die Karte das auch dazu. Je öfter die Box sweept, desto dichter wird die Kurve — am Code muss dafür nichts geändert werden.
Wann ist eine Sitzung zu Ende? Nach 30 min ohne Ladezeile beginnt eine neue — außer der Ladestand ist über die Lücke hinweg weiter gestiegen, dann wurde durchgehend geladen und es kam nur nichts an (bis 6 h). Genau der heutige Fall: 09:39 (39 %) → 09:42 (40 %) → 2,5 h Funkstille → 12:46 (51 %). Das ist EINE Ladung, keine drei. Die nachgeladene Energie kommt deshalb aus dem Ladestands-Hub (12 % × 63 kWh ≈ 7,6 kWh) und nicht aus einem Integral über vier Messpunkte; Ø ist Energie/Dauer, Spitze der höchste gemessene Wert.
Die Zeilen holt die App serverseitig gefiltert (
f_pack_current=<-1, neueste zuerst) statt 880 kB Zeitreihe zu laden. Gibt es noch gar keine aufgezeichnete Ladung, steht an der Stelle weiterhin der alte SoC-Verlauf.Logik in
lib/charge_session.dart, ohne Flutter-Abhängigkeit und gegen die echten Datenmuster getestet; die Karte selbst hat einen eigenen Widget-Test (u. a. 360-dp-Display — der hat prompt einen 11-px-Überlauf in der Kennzahlen-Zeile gefunden, ist behoben).flutter analyzesauber, 116 Tests grün.Noch nicht live — und das liegt nicht am Code: mein Release-Lauf (#407) wurde um 15:12 von Deinem Push
da375f7(„Fahrzeug hinzufügen — Kern") abgebrochen, und der trägt bewusst keinrelease, also gab es auch keinen Deploy.analyzeist auf beiden Ständen grün, meine Tests laufen auch mit Deinem Commit durch. Ich schiebe nicht ungefragt einen Release-Commit hinterher, weil damit auch Dein Wizard-Kern auf http://192.168.1.85/ ginge. Sag Bescheid, wenn ich das anstoßen soll — oder nimm es einfach mit Deinem nächstenrelease-Commit mit.