SoC aus der Ferne lesen

der niederrheiner
Beiträge: 1245
Registriert: So 6. Jun 2021, 17:34
PLZ: 41236
Kontaktdaten:

Re: SoC aus der Ferne lesen

Beitrag von der niederrheiner »

Na, da reicht mir doch die Angaben in der ZERO-App. Die hat mir gerade verraten, das die ZERO anstatt wie eingestellt bei 85%SoC aufzuhören, noch bis 94%SoCken weitergeladen hat . . .


Stephan

Benutzeravatar
6ffm70
Beiträge: 108
Registriert: Mo 13. Jun 2022, 15:21
Roller: Zero FXE
PLZ: 60
Kontaktdaten:

Re: SoC aus der Ferne lesen

Beitrag von 6ffm70 »

schnber hat geschrieben:
Sa 26. Nov 2022, 21:27
Laaangweiliges HEX- Zahlen Update:

Auf die Frage:
tx: F1 F2 F4 F8 0 0 0 0 42 74 53 74 F8 F4 F2 F1 E2 EF C0 F9
Antwortet die Zero mit:
rx: F1 F2 F4 F8 B 0 0 0 42 74 53 74 16 95 1 0 39 0 20 0 39 0 7 0 7 0 7 0 7 0 9C FF 9C FF 9C FF 9C FF 0 0 0 0 0 4 EE D ...

Die Frage lautet im Klartext "BtSt" - Gib mir den Zustand rund um den Akku und das Bike
und in den HEX- Ziffern verbergen sich die Werte zu
'time': 'pack_voltage_mv': 'pack_capacity_ah': 'pack_capacity_remain_ah':
'charge_pct': 'pack_temp_c': 'battery_out_of_balance': 'battery_charge_critical_low':
'battery_charge_low': 'battery_temp_cold': 'battery_temp_critical_high': '
battery_temp_high': 'bike_on': 'charger_1_attached': 'charger_0_attached':
'odometer_miles': 'avg_pwr_over_dist_kw_mile': 'total_power_used_kw':

Derer Abfragen gibt es einige die jeweils eine Menge anderer Antworten zu allen erdenklichen Werten liefern.

Das Protokoll zu erforschen ist wie Mäuse melken.
Da gehts zwei Schritte nach vor und dann drei Schritte zurück...

Aber der Winter ist noch nicht vorüber

B.
Der von mir verlinkte Phyton code ist funktionsfähig und umfangreich, was die Schnittstelle angeht.

Code: Alles auswählen

# precomputed command packets
cmd_packets={'BtSt':b'\xf1\xf2\xf4\xf8\x00\x00\x00\x00BtSt\xf8\xf4\xf2\xf1\xe2\xef\xc0\xf9', # Battery Status
             'DSt1':b'\xf1\xf2\xf4\xf8\x00\x00\x00\x00DSt1\xf8\xf4\xf2\xf1\xc0\x03\x0f\xbf', # Dash Status 1
             'DSt2':b'\xf1\xf2\xf4\xf8\x00\x00\x00\x00DSt2\xf8\xf4\xf2\xf1\x10y\xaf\xf8',    # Dash Status 2
             'DSt3':b'\xf1\xf2\xf4\xf8\x00\x00\x00\x00DSt3\xf8\xf4\xf2\xf1\xa0P\xcf\xc5',    # Dash Status 3
             'Gbki':b'\xf1\xf2\xf4\xf8\x00\x00\x00\x00Gbki\xf8\xf4\xf2\xf1\x81\x9ew\xc5',    # Bike Info
             'MbbR':b'\xf1\xf2\xf4\xf8\x00\x00\x00\x00MbbR\xf8\xf4\xf2\xf1\x16ZI\xa5',       # Bike Board Read
             'PwPk':b'\xf1\xf2\xf4\xf8\x00\x00\x00\x00PwPk\xf8\xf4\xf2\xf1\xd4\xb1\x92\x92'} # Power Pack

header=b'\xF1\xF2\xF4\xF8\x00\x00\x00\x00'
trailer=b'\xF8\xF4\xF2\xF1'

Benutzeravatar
schnber
Beiträge: 78
Registriert: Di 25. Jan 2022, 18:26
Roller: ZERO FX 2020
PLZ: 8435
Land: A
Wohnort: Leitring
Tätigkeit: E-Tech Ing.
Kontaktdaten:

Re: SoC aus der Ferne lesen

Beitrag von schnber »

JEP - den kenn ich!

Dennoch hat alles seine Tücken
zumal ich auf C++ unterwegs bin
und auch der Arduino seine Eigenheiten hat.

Aber - Kommt Zeit kommt Rat...

B.

Benutzeravatar
schnber
Beiträge: 78
Registriert: Di 25. Jan 2022, 18:26
Roller: ZERO FX 2020
PLZ: 8435
Land: A
Wohnort: Leitring
Tätigkeit: E-Tech Ing.
Kontaktdaten:

Re: SoC aus der Ferne lesen

Beitrag von schnber »

Guten Abend!

Kleines Update... Das Auslesen der Daten aus der ZERO, OHNE Kabel, über Bluetooth,
liefert nun Ergebnisse wie folgt...

Wenn's mit dem Löten und Schrauben klemmt oder die ZERO zwecks Datenerfassung
nicht zerlegt werden soll dann ist so eine Bluetooth Verbindung praktisch.

vin: 539XXDZ47LCC12432:
make: Zero Motorcycles:
model: FX:
mbb_partno: 40-08064C:
construction year: 2020: AD
mbb_fw_ver: 31:
bms_fw_ver: 0: // Keine Werte ??
pack_voltage_mv: 105074: mV
pack_capacity_ah: 57: Ah
pack_capacity_remain_ah: 35: Ah
charge_pct: 63: %
battery_out_of_balance: 0:
battery_charge_critical_low: 0:
battery_charge_low: 0:
battery_temp_cold: 0:
battery_temp_critical_high: 0:
battery_temp_high: 0:
bike_on: 1:
charger_1_attached: 0:
charger_0_attached: 0:
odometer_miles: 3566: mi
avg_pwr_over_dist_kw_mile: 0.00: kw/km
total_power_used_kw: 370: kw
motor_torque_nm: 0: Nm
motor_speed_rpm: 0: rpm
motor_temp_c: 19: °C
controller_temp_c: 5: °C
battery_current_amps: 0: A
motor_current_amps: 0: A
bike_speed_mph: 0.00: km/h
charging: 0:
brake_applied: 1:
temp_warning: 0:
bike_armed: 0:
killswitch_stop: 1:
kickstand_down: 1:
max_custom_speed_mph: 143.23: km/h
max_custom_torque_pct: 100: %
max_custom_regen_torque_pct: 0: %
max_custom_brake_regen_torque_pct: 100: %
cell_voltage_mv Cell 1 :3692: mV
cell_voltage_mv Cell 2 :3698: mV
cell_voltage_mv Cell 3 :3697: mV
cell_voltage_mv Cell 4 :3697: mV
cell_voltage_mv Cell 5 :3694: mV
cell_voltage_mv Cell 6 :3692: mV
cell_voltage_mv Cell 7 :3696: mV
cell_voltage_mv Cell 8 :3692: mV
cell_voltage_mv Cell 9 :3691: mV
cell_voltage_mv Cell 10 :3680: mV
cell_voltage_mv Cell 11 :3693: mV
cell_voltage_mv Cell 12 :3697: mV
cell_voltage_mv Cell 13 :3695: mV
cell_voltage_mv Cell 14 :3687: mV
cell_voltage_mv Cell 15 :3698: mV
cell_voltage_mv Cell 16 :3697: mV
cell_voltage_mv Cell 17 :3699: mV
cell_voltage_mv Cell 18 :3696: mV
cell_voltage_mv Cell 19 :3700: mV
cell_voltage_mv Cell 20 :3703: mV
cell_voltage_mv Cell 21 :3702: mV
cell_voltage_mv Cell 22 :3689: mV
cell_voltage_mv Cell 23 :3703: mV
cell_voltage_mv Cell 24 :3696: mV
cell_voltage_mv Cell 25 :3704: mV
cell_voltage_mv Cell 26 :3693: mV
cell_voltage_mv Cell 27 :3701: mV
cell_voltage_mv Cell 28 :3703: mV
cell_voltage_min_mv: 3680: mV
cell_voltage_max_mv: 3704: mV
pack_temp_c Pack 1 :6: °C
pack_temp_c Pack 2 :5: °C
pack_temp_c Pack 3 :5: °C
pack_temp_c Pack 4 :6: °C
pack_temp_c Pack 5 :-100: °C // komisch ??
pack_temp_c Pack 6 :-100: °C // komisch.vll haben größere Akkus mehr Messungen
pack_temp_c Pack 7 :-100: °C
pack_temp_c Pack 8 :-100: °C
pack_temp_max_c: 6: °C
pack_temp_min_c: 5: °C
motor_temp_max_c: 20: °C
num_charge_cycles: 213:
trip_1_km: 23: km
error_code: 45:
trip_2_km: 5752: km
est_range_km: 63: km
minutes_until_charged: 0: min
wh_per_km_instant: 0: Wh/km
wh_per_km_avg: 29: Wh/km
wh_per_km_life: 36: Wh/km


Nun kann man damit eine Menge anstellen.
Z.B ein kleines Gerät in/an der ZERO mit Touchscreen, welches Daten nach Wahl anzeigt.
Oder die Daten übers Handy von der Ferne abfragen
Oder die Ladung übers Handy starten, stoppen (mit ein Bisschen externer Beschaltung)
Oder die Ladung an der Zero Zeitgesteuert starten bis zu einem gewissen SOC.
Oder die ZERO autom. über den Winter bringen und Ladestand zwischen X & Y halten.
Oder ERROR Code als Klartext anzeigen - Wenn die Bedienungsanleitung mal nicht dabei ist.

Was sind Eure Ideen?
Was ist praktisch?

LG

B.

Benutzeravatar
gischpelino
Beiträge: 154
Registriert: Di 16. Okt 2018, 16:43
PLZ: 14
Kontaktdaten:

Re: SoC aus der Ferne lesen

Beitrag von gischpelino »

Die Packs 5-8 im Sommer zum Kühlen verwenden. :lol:

Ja, toll. Logging während der Fahrt mit gps und einer app, mit der mittels openstreetmap die Tour dann grafisch nebst Zustandsdaten nachvollzogen werden kann. Träumen ist erlaubt, oder?

Über den Winter ab und an die Zero wecken (damit BT tut), auslesen und ggf. reagieren finde ich auch gut. Oder gäbe es einen Trick BT separat einzuschalten?
Wobei meine S echten Winterschlaf macht. Ich stelle sie mit 58% ab und über einen Monat später bei einer Kontrolle zeigt sie 58%. Scheint den Stoffwechsel echt zu verlangsamen, das Biest.

Benutzeravatar
6ffm70
Beiträge: 108
Registriert: Mo 13. Jun 2022, 15:21
Roller: Zero FXE
PLZ: 60
Kontaktdaten:

Re: SoC aus der Ferne lesen

Beitrag von 6ffm70 »

schnber hat geschrieben:
Di 20. Dez 2022, 20:40
Kleines Update...
...

Nun kann man damit eine Menge anstellen.
Z.B ein kleines Gerät in/an der ZERO mit Touchscreen, welches Daten nach Wahl anzeigt.
Oder die Daten übers Handy von der Ferne abfragen
Oder die Ladung übers Handy starten, stoppen (mit ein Bisschen externer Beschaltung)
Oder die Ladung an der Zero Zeitgesteuert starten bis zu einem gewissen SOC.
Oder die ZERO autom. über den Winter bringen und Ladestand zwischen X & Y halten.
Oder ERROR Code als Klartext anzeigen - Wenn die Bedienungsanleitung mal nicht dabei ist.

Was sind Eure Ideen?
Was ist praktisch?

LG

B.
Sieht sehr gut aus! Dein ESP32 hat ja auch WiFi, so kannst Du zu hause diese Daten beim Laden in Dein Netzwerk streamen.

Ohne Homeautomation server: eine WiFi-Steckdose ein- oder ausschalten. Ich habe eine, die auch die Leistung misst (zweiter Screenshot im ersten post); die kannst Du Dir auch über das Webinterface des Steckers anzeigen lassen; ohne cloud und ohne eigene Dienste im Netzwerk. Die Steckdose kann mit einem http request vom ESP32 zB ausgeschaltet werden. Dokumentation der API der Steckdose: https://shelly-api-docs.shelly.cloud/ge ... plug-plugs

Vorteile:
  • braucht nur zwei Teile hardware; kostet unter €30 (Shelly Plug S und ESP32; ggfs Stromversorgungsstecker für die Zero unter der Sitzbank
  • ist portabel - der Stecker hat einen Access Point modus, Du kannst ihn überall mitnehmen und brauchst keine bestehenden WiFis
  • keine cloud, kein Internet
Nachteile:
  • der ein- und/oder abschalt-SoC muss hardcodiert werden im ESP
  • limitierte manuelle Eingriffsmöglichkeit/kein interface (es sei denn, Du verbindest Dein smartphone/notebook/PC mit dem WiFi AP des Steckers, und rufst das webinterface auf. Das könnte doch auch beim ESP32 im WiFi-AP-mode gehen? Webserver mit einer Seite, auf der man den SoC ablesen kann, und zB den Ladeschluss-Wert setzen kann.
Der Anbieter des schaltbaren Steckers bietet auch eine kostenlose cloud mit app an. Arduino bietet ebenfalls die Option mit manchen Modellen die kostenlose cloud und app zu verwenden. Die beiden Möglichkeiten würden die Steuerbarkeit erheblich verbessern. Alle clouds brauchen allerdings immer internet, und schaffen auch dadurch Abhängigkeiten, die nicht jeder haben möchte.
Mit homeautomation server (zB Raspberry Pi) im eigenen WiFi geht noch mehr ohne cloud

Benutzeravatar
6ffm70
Beiträge: 108
Registriert: Mo 13. Jun 2022, 15:21
Roller: Zero FXE
PLZ: 60
Kontaktdaten:

Re: SoC aus der Ferne lesen

Beitrag von 6ffm70 »

gischpelino hat geschrieben:
Mi 21. Dez 2022, 10:34
... Oder gäbe es einen Trick BT separat einzuschalten?...
Das könnte bei Zeros mit europäischen OBD funktionieren - der DC/DC Wandler schaltet zwar ab, aber nicht vollständig. Er lässt aber noch Strom für die kleine rote OBD-Schnittstelle unter der Sitzbank durch; und damit vermutlich auch OBD Daten. Dafür ist die BT-Auslesung allerdings nicht ausgelegt; BT schaltet immer ab.

Hier kann zB ein Pi Pico mit WiFi und Spannungswandler (1.8-5.5V) angeschlossen werden - angeblich kann dessen Prozessor CAN ohne zusätzliche hardware auslesen...

Benutzeravatar
gischpelino
Beiträge: 154
Registriert: Di 16. Okt 2018, 16:43
PLZ: 14
Kontaktdaten:

Re: SoC aus der Ferne lesen

Beitrag von gischpelino »

6ffm70 hat geschrieben:
Mi 21. Dez 2022, 12:54
... Alle clouds brauchen allerdings immer internet, und schaffen auch dadurch Abhängigkeiten, die nicht jeder haben möchte. ...
Jede Cloud ist jederzeit unkontrollierbar hackbar :!: und vom Betreiber auswertbar (sofern nicht durch den Nutzer verschlüsselt wird - und zwar NUR durch den Nutzer, also kein Schlüssel beim Betreiber).
Die Abhängigkeit vom Internet ist eher nicht das Problem, welches ich mit einer Cloud verbinde.

Benutzeravatar
schnber
Beiträge: 78
Registriert: Di 25. Jan 2022, 18:26
Roller: ZERO FX 2020
PLZ: 8435
Land: A
Wohnort: Leitring
Tätigkeit: E-Tech Ing.
Kontaktdaten:

Re: SoC aus der Ferne lesen

Beitrag von schnber »

Hola!

Hab das mit dem Erwecken des BT nun mal schnell getestet.
Wird die Zero mit dem Ladegerät erweckt Erlaubt sie keine neue BT- Verbindung,
wohl aber verbindet sie sich mit bekannten Geräten.
Uff- war mir bisher nicht klar und hätte das ganze Projekt verunglimpft wenns nicht ginge.

Fahr(zeug)daten und GPS Daten loggen ist keine große Story.
Wenn openstreetmap eine Schnittstelle bietet um Daten einzuschleusen... dann sollte das funzen.
https://wiki.openstreetmap.org/wiki/Upload

Die parallel Verwendung von BT und WiFi ist leider nicht möglich mit dem ESP32.
Alternierender Betrieb ist angeblich möglich. Das ist aber unschön wenn Verbindungen dauernd unterbrochen werden.
Eher werde ich ein WiFi Nina Modul ranhängen.

Die Sache mit dem Shelly Plug klingt cool.
Möchte versuchen Arduino IOT zu nutzen für die Visualisierung. Dann wäre schon am alles am Handy.

Habe gesehen es gibt auch einige WiFi fähige Steckdosen mit Zeitschaltuhr und zugehöriger App.
Damit wäre-mit etwas Fingerspitzengefühl, ganz ohne Datenabfrage, zumindest das ungefähre Laden
auf einen gewollten SOC möglich, wenn man sich den letzten merkt.

LG

B.

Benutzeravatar
6ffm70
Beiträge: 108
Registriert: Mo 13. Jun 2022, 15:21
Roller: Zero FXE
PLZ: 60
Kontaktdaten:

Re: SoC aus der Ferne lesen

Beitrag von 6ffm70 »

schnber hat geschrieben:
Mi 21. Dez 2022, 18:54
...
Die parallel Verwendung von BT und WiFi ist leider nicht möglich mit dem ESP32.
Alternierender Betrieb ist angeblich möglich. Das ist aber unschön wenn Verbindungen dauernd unterbrochen werden.
Eher werde ich ein WiFi Nina Modul ranhängen....
Obacht, das Nina Modul im zB Arduino Nano RP2040 verwendet einen -yep- ESP32 als WiFi&BT modul. Ich sehe aber nicht, daß ein schnell alternierender Wechsel zwischen BT und WiFi ein Problem sein könnte; ich habe nur alle ca. sechs Minuten eine SoC Veränderung von 1%.; selbst bei zehnfacher Ladeleistung kommt es nicht an ihre Grenzen. Ist ja kein Video-streaming.

Hilfsweise -wie schon erwähnt- den Nano RP2040 direkt an den CAN-Bus über OBD anschliessen, und nur das WiFi nutzen. Der Strom bleibt dort -zumindest eine Weile?- noch weiter bestehen, auch wenn die Zero nicht lädt oder eingeschaltet ist. Der hat noch weitere Vorteile, die der Pi Pico oder die gängigen ESP32 nicht haben:
  • Betriebsstrom von 5-18V; kein step-down wandler nötig
  • Funktioniert mit Arduino IDE und C, als auch mit Micropython und Circuitpython
  • 6-axis IMU und MEMS Mikrophon für KI-Spielereien; speziell der IMU kann interessante Daten loggen
  • deutlich kleinere Abmessungen
  • 16MB Flash IC + 16MB im Nina - für mehr logging
  • Arduino cloud

Antworten

Zurück zu „Zero“

Wer ist online?

Mitglieder in diesem Forum: ernstg, Gearsen und 12 Gäste