Rund um das Telemetriemodul: Infos, Nutzen, Hacks...

S01, S02, S03, Mó
Antworten
Benutzeravatar
Pfriemler
Moderator
Beiträge: 2549
Registriert: Di 7. Mai 2019, 17:41
Roller: SEAT Mó 125 (Mj. 2021, Votol)
PLZ: 14513
Wohnort: Südrandberlin
Tätigkeit: Tonkünstler
Kontaktdaten:

Re: Rund um das Telemetriemodul: Infos, Nutzen, Hacks...

Beitrag von Pfriemler »

Ich gebe jetzt mal ein bisschen Input für eigene Denkleistung zum Erhalt neuer Firmware auf den PC als auch auf den Roller :lol:
Die komplette Konfigurationsbeschreibung für die Astra-Module gibt es ja offiziell hier: https://astratelematics.com/wp-content/ ... erence.pdf - da ist übrigens eine neue Fassung von August 2024.
Die Module unterstützen OTAU mithilfe eines Befehls, den man entweder per Direktverbindung (serielle Konsole) oder remote per Datenverbindung bzw. SMS (wenn die Rufnummer bekannt ist) schicken kann. Das Modul besorgt sich die Firmware dann per Mobildatenverbindung von einer IPv4-Adresse, es funktioniert aber auch ein Name, wie etwa fota.astraiot.co.uk.
Man kann sich die Firmware testweise auch direkt im Web-Browser (Port 80) herunterladen, sie liegt als Binärdatei in einer Unterordnerstruktur, also z.B.
/modell/STM/VARxx/versionsnummer/ATFW.bin. (Der Name der Datei ist immer "ATFW.bin"). In "VARxx" steht xx für die fahrzeugherstellerspezifische Variation. Wenn man "modell" durch den Typ seines Moduls ersetzt (ein AT240 mit Silence-Firmware heißt ja bekanntermaßen SL240V8, die meisten übrigen aber so wie man sie kennt, AT400, AT402 usw) und als "versionsnummer" LATEST einsetzt, bekommt man automatisch die aktuellste verfügbare freigegebene Firmware. Achtung: niemals die Firmware von anderen Modulen verwenden, das könnte die Module unbrauchbar machen.
$TEST auf der Konsole liefert ein paar Informationen über den Namen des Moduls und die verwendete Firmware, die man auch einzeln mit $ATSW abfragen kann. Aus so etwas wie "7.0.71.35" kann man z.B. sehen, dass die Silence-spezifische Firmware die Variation 35 ist.
Wenn der Download via Browser klappt, kann man die gleichen Bestandteile auch für das OTAU-Kommando verwenden, nur anders gruppiert wie in der Command Reference beschrieben. (Der Pfadname im OTAU Kommando darf nicht mit / enden.)
SuperSoco CUx '19-'21 (36Wh/km in 2000 km), Piaggio Medley 125 '20-'22 (26,6 ml/km in 5000 km). Seat Mó: Bild

noiwid2
Beiträge: 4
Registriert: Di 23. Jul 2024, 20:08
Roller: seat mo
PLZ: 75001
Land: anderes Land
Kontaktdaten:

Re: Rund um das Telemetriemodul: Infos, Nutzen, Hacks...

Beitrag von noiwid2 »

Thank you for all this information and clarification.

I'm desperately trying to capture additional information sent by Votol to manage it thru my Silence Private Server.

I found a reference on this forum for the data that transits through VOTOL (SCUTUM data message format.pdf), but I'm not quite sure how to read the received frames and can't manage to add the desired data.

Here are some examples of the referenced data that I'm interested in:
RH 11-14
- 31 MOTION
- 30 bikefall
- 18 collisG
- 15 overspeed

B32:44
- xxxx 1xxx sidestand is out

B32:43
- 1 turn signal RIGHT 2 turn signal LEFT

Here is an example of how the Silence Private Server grabs data for some sensors:

Code: Alles auswählen

  "batteryIn": {
        "message_type": [
            {
                "message_first_char": 90,
                "message_lenght": [94,99,200],
                "message_byte_pos": [21,21]
            }
        ],
        "bit_pos": 2,
        "data_type": "boolean",
        "disable_when_off": false
    },

    "latitude": {
        "message_type": [
            {
                "message_first_char": 90,
                "message_lenght": [94,99,200],
                "message_byte_pos": [27,30]
            }
        ],
        "data_type": "numeric",
        "divider": 1000000,
        "disable_when_off": false
    },
    "batterySOC": {
        "message_type": [
            {
                "message_first_char": 90,
                "message_lenght": [94,200],
                "message_byte_pos": [46,46]
            },
            {
                "message_first_char": 90,
                "message_lenght": [99],
                "message_byte_pos": [51,51]
            }
        ],
        "data_type": "numeric",
        "divider": 1,
        "disable_when_off": false
    },
I understood how to add new sensors to the Silence Private Server and how to publish them on MQTT, but I can't figure out how to parse the data that interests me. Do you have any idea of what might be possible or how to proceed?

The retrieval of the motion sensor opens the door to setting up an alarm system, which seems to me to be an interesting feature (SEAT app really suck💩)

I read that the scooter publishes information at the end of a trip (duration/distance/consumption). Are these details sent to the ASTRA module? If so, do you know how to rtrieve them?

Any ideas or suggestions are highly welcome🙏

Benutzeravatar
Pfriemler
Moderator
Beiträge: 2549
Registriert: Di 7. Mai 2019, 17:41
Roller: SEAT Mó 125 (Mj. 2021, Votol)
PLZ: 14513
Wohnort: Südrandberlin
Tätigkeit: Tonkünstler
Kontaktdaten:

Re: Rund um das Telemetriemodul: Infos, Nutzen, Hacks...

Beitrag von Pfriemler »

Astra modules firmware collects data from CAN by listening or asking other devices and composes that reports itself. Content may vary due to "report reason". Only the JOURNEY STOP caused report has informations about gps distance and total running time of the scooter, the power consumption is reported in the SCUTUM_S01 section, which is afaik in almost if not every report.

I think that document is by me :-) and was used by Leonardo&Co to decode the Silence's reports. As I understood, all incoming data should be parsed and stored to variables and published. So, basicly all informations should be available and your application only have to subscribe the values needed to retrieve them via MQTT. That's the theory, I do not use it by now. Is parsing not complete yet?

Or do you have questions about certain values in the reports?
SuperSoco CUx '19-'21 (36Wh/km in 2000 km), Piaggio Medley 125 '20-'22 (26,6 ml/km in 5000 km). Seat Mó: Bild

Gerold
Beiträge: 563
Registriert: Fr 7. Feb 2020, 10:23
Roller: Silence S01
PLZ: 55*
Kontaktdaten:

Re: Rund um das Telemetriemodul: Infos, Nutzen, Hacks...

Beitrag von Gerold »

Das Problem von @noiwid2 besteht darin, das der Parser des "Silence Private Server" nur einen Bruchteil der vom Astra Modul gesendeten Daten dekodiert. Um alle Daten zu dekodieren, muss der Parser erweitert werden. Dazu muss an mehreren Stellen in das Programmcoding eingegriffen werden. Wenn man das nicht selber machen will, kann man die Autoren des Servers auf eine Erweiterung des Parsers ansprechen.

Die Daten des motion sensors werden nur während der Fahrt vom Astra Modul gesendet, sie sind daher nicht für eine Alarmauslösung geeignet. Die Daten stecken im Modul "DIVER BEHAVIOUR", welches sowohl im Protokoll "X" als auch in "Z" enthalten ist. Damit diese Daten überhaupt gesendet werden, muss die Protokollmaske des $PROT Kommandos von 55968794727 auf 55968794743 geändert werden. In diesem Fall funktioniert aber der Parsers des Silence Private Servers nicht mehr, da er nur für den Spezialfall ausgelegt ist, das die Protokollmaske den Wert 55968794727 enthält und nur ein Report in dem vom Astra Mudul gesendetem Paket enthalten ist.

SpeedCore
Beiträge: 184
Registriert: Di 6. Dez 2022, 22:08
Roller: Silence S01
PLZ: 6020
Land: A
Kontaktdaten:

Re: Rund um das Telemetriemodul: Infos, Nutzen, Hacks...

Beitrag von SpeedCore »

Ich habe mich wieder einmal mit dem Astra-Modul beschäftigt (neues Bike) und mich gewundert, warum sich die Sitzbank nicht mehr mit Seitenständer & beide Bremshebel öffnen lässt - ebensowenig über das "Sitzbank"-Icon in der Silence-App und auch nicht über ein manuelles $SEAT Command über die serielle Schnittstelle. Dabei hab ich einen "Beifang" gemacht - ich wollte nämlich checken, ob ich vielleicht eine alte (oder zu neue?) Firmware auf dem Astra-Modul installiert habe. Dafür musste ich aber erstmal rausfinden welche Version installiert ist (leicht:

Code: Alles auswählen

$ATSW,OK,7.0.68.35,STM
) und welche die neueste verfügbare Version ist. Ich habe über dunkle Kanäle mal eine Update-URL bekommen und mir da das aktuelle .bin-File gezogen. leider ist der Filename generisch und lässt nicht auf die Versionsnummer schließen. Also hab ich das Binary mal mit einem Hex-Editor geöffnet und eine Art "Wörterbuch" für den Command Interpreter gefunden:

Code: Alles auswählen

ADCC CDIP CDOP CPWR DRIC DRID FMIC IGNM IMOS MEMS PTDM SDIG SRAL TOWP ACMX ACMY ALRM APAD APPW APUN ATSW BAUD BLEC BLTC
BOOT CANC CANM CLID CBAT COLN COPS CTCA CTCM CTDF CTSP CTPT DBUG DCMX DCMY DIAG DIST ELEC ELOG FACT FTRK GEOD GEOF FGAT
GNSS GPSQ HEAD IDLE IMOB INCA IPAD IPAD1 IPAD2 ITIM JSEC LPWC LOGN MTFT MQTT NACK NMEA NVST ORTN OSHT OSIT OSST PARA
PASS POLL PORT PORT1 PORT2 POSN PRIV PROT PUWO PUNL RATC RDIP RDOP REPL ROAM RPEC RSDK RCAN SAFE SEAT SCAN SHDN SHOW
SMSL SNSR SSMS STAT STIM STMS STPD SPWR TCPT TCOP FIND BMOT RESV NBPW NBLK NBSC MESG PWON PBAT TEMP TEST TPEC RMOD WMOD
PMNO MOVM LNGR

Ich habe das noch nicht mit den offiziell veröffentlichten Commands aus der Astra Telematics Command Reference verglichen, aber vielleicht haben wir ja Glück und es ist das eine oder andere undokumentierte Command dabei :?:

Darüber hinaus habe ich auch herausgefunden, dass es sich bei dem nur 254KB großen File lediglich um einen Bootloader handelt und habe zwei Download-URLs für die eigentliche Firmware in dem File gefunden, die dann während des Bootvorgangs per OTA-Update geladen wird. Ich möchte die URLs hier nicht so öffentlich posten um Ärger zu vermeiden (habe einen ganz guten Draht zu Astra und das soll nach Möglichkeit so bleiben) aber falls jemand Interesse am rumbasteln damit hat, schreibt mir bitte einfach eine PN :)

Fun fact: Die Entwickler des Bootloaders scheinen keine Veganer zu sein: Die Bytes 11-18 im Bootloader lauten "DEADBEEF" :lol:

SpeedCore
Beiträge: 184
Registriert: Di 6. Dez 2022, 22:08
Roller: Silence S01
PLZ: 6020
Land: A
Kontaktdaten:

Re: Rund um das Telemetriemodul: Infos, Nutzen, Hacks...

Beitrag von SpeedCore »

Ich habe mir die beiden Files (beide ca. 5MB) aus den URLs im Code des Bootloaders angeschaut und es deutet einiges darauf hin, dass es sich hierbei nur um den Treiber für das LPWA-Modul (GSM/GPRS/GNSS) handelt. Im Code kommt mehrfach der String "QUECTEL" vor und auch die in den letzten Bytes befindliche Versionsinfo deutet darauf hin: ver.BG600LM3LAR02A03_01.003V05.01.003V05-BG600LM3LAR02A04_01.204V01.01.204V01 -> Quectel Forums

Die folgenden Commands habe ich in der Command Reference nicht gefunden (was nicht heißt, dass wir sie nicht kennen :D und einige Bekannte wie SEAT, STMS und PWON sind ja auch dabei) aber vielleicht traut sich ja jemand die mal durchzuprobieren über RS232:

Code: Alles auswählen

FMIC BLTC CBAT CTCA CTCM CTDF CTSP CTPT FGAT MTFT MQTT PRIV PUWO PUNL RDIP RDOP RCAN SAFE
SEAT SCAN STMS SPWR TCOP FIND BMOT RESV NBPW NBLK NBSC MESG PWON PBAT TEMP RMOD WMOD 
Die aktuellste Firmware ist die 7.0.71.35 - werde sie morgen mal installieren. Ob sie bei meinem Sitzbankproblem hilft weiß ich zwar nicht, weil sie wohl hauptsächlich Änderungen / Fixes in der BLE Kommunikation enthält, aber wie sagt man so schön: Latest, greatest! 8-)

Gerold
Beiträge: 563
Registriert: Fr 7. Feb 2020, 10:23
Roller: Silence S01
PLZ: 55*
Kontaktdaten:

Re: Rund um das Telemetriemodul: Infos, Nutzen, Hacks...

Beitrag von Gerold »

Das Kommando zum Öffnen der Sitzbank ist nicht $SEAT, sondern $TCOP.

Wenn Du einen guten Draht zu Astra-Telematics hast, kannst Du mal nach der Syntax des $SCAN Kommandos nachfragen. Damit sollen Frames über den CAN-Bus gesendet werden können.

SpeedCore
Beiträge: 184
Registriert: Di 6. Dez 2022, 22:08
Roller: Silence S01
PLZ: 6020
Land: A
Kontaktdaten:

Re: Rund um das Telemetriemodul: Infos, Nutzen, Hacks...

Beitrag von SpeedCore »

Gerold hat geschrieben:
So 22. Sep 2024, 07:32
Das Kommando zum Öffnen der Sitzbank ist nicht $SEAT, sondern $TCOP.
Danke für die Korrektur!
$SEAT ist natürlich das Kommando für die Aktivierung der elektronischen Sitzbanköffnung bei den neuen S01-Modellen. Schön wär's :twisted:
Wegen $SCAN frage ich mal meinen Kontakt :)

SpeedCore
Beiträge: 184
Registriert: Di 6. Dez 2022, 22:08
Roller: Silence S01
PLZ: 6020
Land: A
Kontaktdaten:

Re: Rund um das Telemetriemodul: Infos, Nutzen, Hacks...

Beitrag von SpeedCore »

Gerold hat geschrieben:
So 22. Sep 2024, 07:32
Syntax des $SCAN Kommandos

Code: Alles auswählen

$SCAN,<pid>,<rtr>,<dlc>,<data0>,<data1>,<data2>,<data3>,<data4>,<data5>,<data6>,<data7>,<delay-ms>
pid -> 11 bit CAN Frame ID
rtr -> remote transmission request (usually zero)
dlc -> data length code (usually 8)
data0-data7 -> data bytes
delay-ms -> send delay in ms (erst ab 7.0.58)

All values in hex

Ich habe ein Dokument mit jeder Menge Silence-spezifischer Astra-Commands erhalten, aber das darf/möchte ich hier nicht öffentlich posten. Bei Interesse wisst ihr wie ihr mich erreicht. Fixt eigentlich irgendwer hier die PN-Funktion oder ist die endgültig gestorben?

Gerold
Beiträge: 563
Registriert: Fr 7. Feb 2020, 10:23
Roller: Silence S01
PLZ: 55*
Kontaktdaten:

Re: Rund um das Telemetriemodul: Infos, Nutzen, Hacks...

Beitrag von Gerold »

Danke für die Info, ich werde das Kommando bei nächster Gelegenheit testen.

An der Liste der Astra-Kommandos bin ich natürlich interessiert, das hat aber Zeit, bis PN wieder funktioniert.

Antworten

Zurück zu „Silence / SEAT“

Wer ist online?

Mitglieder in diesem Forum: dominik, Goto Dengo, Semrush [Bot] und 16 Gäste