Ich habe Codex sich die App ansehen lassen (das betrachte ich nicht als KI-Slop, weil für solche Dinge ist das echt zu gebrauchen und
viel schneller, als ich mich da durcharbeiten könnte):
Ja. Aus dem Quellcode lässt sich eine recht belastbare Matrix erstellen. Wichtig: „implementiert“ bedeutet hier, dass ein Kommando bzw. Parser im Code vorhanden ist – nicht, dass es mit jedem realen Gerät erfolgreich getestet wurde.
Funktionsmatrix
| Modell/Profil | Fahrmodi | Geschwindigkeitslimit | Sperren | Advanced-Modus | Telemetrie | Zusatzbefehle |
|---|
| SO4 Pro Gen 2 | ECO/Normal/Sport/Dev | 1–65 km/h | ✓ | 1–254 | umfangreich | – |
| SO4 Pro Gen 3 | ECO/Normal/Sport/Dev | 1–65 km/h | ✓ | 1–254 | umfangreich, AES | – |
| SO4 Pro Legacy Test | ECO/Normal/Sport/Dev | 1–65 km/h | ✓ | 1–254 | nur Geschwindigkeit/Licht | – |
| SO4 | ECO/Normal/Sport/Dev | 1–65 km/h | ✓ | 1–254 | umfangreich, D7 v1 | – |
| SO4 5.1 | ECO/Normal/Sport/Dev | 1–65 km/h | ✓ | 1–254 | umfangreich, D7 v5.1+ | – |
| SO4 5.2 | ECO/Normal/Sport/Dev | 1–65 km/h | ✓ | 1–254 | umfangreich, AES | – |
| SO myTIER | ECO/Normal/Sport/Dev | 1–65 km/h | ✓ | fehlt | umfangreich, AES | – |
| SO1 | ECO/Normal/Sport/Dev* | 1–65 km/h* | ✓* | fehlt | dynamisches D7-Protokoll | – |
| SO1 A0 Test | ECO/Normal/Sport/Dev* | 1–65 km/h* | ✓* | fehlt | dynamisches D7-Protokoll | Testprofil |
| SO2 Air | ECO/Normal/Sport/Dev* | 1–65 km/h* | ✓* | fehlt | dynamisches D7-Protokoll | – |
| SO2 Air A0 Test | ECO/Normal/Sport/Dev* | 1–65 km/h* | ✓* | fehlt | dynamisches D7-Protokoll | Testprofil |
| SO3 | ECO/Normal/Sport/Dev* | 1–65 km/h* | ✓* | 1–254 | dynamisches D7-Protokoll | – |
| SO4 UL | fehlt | fehlt | ✓, Token | fehlt | Zwei-Byte-Protokoll | Licht, Lock-Status, Fahrdaten, Speed-Limit |
| SO6 | fehlt | fehlt | ✓, Token | fehlt | Zwei-Byte-Protokoll, AES | Licht, Lock-Status, Fahrdaten, Speed-Limit |
Die zugrunde liegenden Modellprofile und Kommandos stehen im
ScooterCommandCatalog. Die Geschwindigkeitsbefehle sind im Code grundsätzlich von 1 bis 65 km/h angelegt; die normale Oberfläche begrenzt den Bereich auf 8–30 km/h, sofern „More Speed“ nicht aktiviert wird. (
MainViewModel)
* Bei SO1/SO2/SO3 werden Fahr-, Lock- und Speed-Kommandos erst aus einem dynamischen Geheimwert erzeugt, der zuvor aus Telemetriedaten berechnet werden muss. Die Dev-Kommandos sind dort teilweise identisch mit Sport und daher nicht unbedingt ein eigenständiger Modus.
Telemetrie im Detail
| Protokollfamilie | Erkannte Daten |
|---|
| LEGACY_STATUS | Geschwindigkeit und Lichtstatus |
| SO4_PRO / D7_SO4_V1 / D7_SO4_V51_PLUS | Geschwindigkeit, Strom, Spannung, Akku, Reichweite, Fahrstrecke, Gesamtkilometer, Sperrstatus, Fahrmodus und Firmware-/Versionsdaten |
| DYNAMIC_D7 | Echtzeitdaten plus Standby-Daten wie Fehler, Akku, Reichweite, Kilometer, Durchschnittswerte, Ladezyklen und dynamisches Secret |
| TWO_BYTE | Geschwindigkeit, Strom, Spannung, Reichweite, Akku, Ladezustand, Sperrstatus, Fehler sowie separate Fahrdaten |
Das ergibt sich direkt aus dem
ScooterTelemetryParser. Lichtsteuerung ist im Katalog nur für SO4 UL und SO6 als expliziter Zusatzbefehl vorhanden; bei älteren Profilen wird Licht teilweise lediglich aus Telemetrie gelesen.
Zusätzlich existiert für alle ausgewählten Profile eine globale Funktion zum Senden beliebiger Hex-Kommandos, sobald die erweiterten Optionen aktiviert sind. Das ist kein modellvalidierter Funktionsumfang, sondern eine rohe BLE-Schnittstelle.
Teststatus
Das README unterscheidet sinnvoll zwischen „implementiert“ und „getestet“:
- ausdrücklich getestet: SO1 und SO4 Pro Gen 2
- als implementiert aufgeführt: weitere SO1/SO2/SO3/SO4-, myTIER-, SO4-UL- und SO6-Profile
- nicht unterstützt: unter anderem SO ONE, SO ONE Lite, SO4 Pro GT, SO4 Pro MAX und SO5.xx
(
Projekt-README)
Mein Fazit:
Die stärkste Unterstützung im Code haben die verschiedenen SO4-Profile. SO4 UL und SO6 besitzen dagegen gute Diagnose- und Lichtbefehle, aber keine allgemeinen Fahrmodus- oder Geschwindigkeitskommandos. Die SO1/SO2/SO3-Profile sind funktional vorhanden, aber wegen des dynamischen Protokolls stärker von korrekter Telemetrie und passender Firmware abhängig.