S01/mo: App zur BLE Kommunikation mit dem Astramodul
-
- Beiträge: 530
- Registriert: Fr 7. Feb 2020, 10:23
- Roller: Silence S01
- PLZ: 55*
- Kontaktdaten:
S01/mo: App zur BLE Kommunikation mit dem Astramodul
Ich habe mich in letzter Zeit mit dem MIT App Inventor 2 MIT App Inventor 2 beschäftigt um eine eigene App zu erstellen, die per BLE mit dem Astra Modul kommuniziert, da ich mich mit der aktuellen Silence App nicht mehr über Bluetooth mit dem Roller verbinden kann. Das Ergebnis seht Ihr hier:
- -
Über den "BLE" Button wird die App mit dem Roller verbunden und auch wieder getrennt.
Auf der App wird eine Auswahl der Parameter angezeigt, die das $STMS Kommando liefert. Mit dem "Refresh" Button werden die Werte aktualisiert.
Der "Power" Button schaltet der Roller ein/aus, der "Find" entspricht dem Dreieck des Silence App und mit "TCOP" kann die Sitzbank bei eingeschaltetem Roller und ausgeklappten Seitenständer geöffnet werden.
In der "Command" Zeile können Kommandos aus der Commandref eingegeben werden, die mit "send" an das Modul geschickt werden. In der nächsten Zeile erfolgt dann die Ausgabe der Antwort des Moduls. Kommandos werden hier ohne führendem "$"-Zeichen eingegeben, dieses wird automatisch ergänzt.
Zum Zugriff auf das Astramodul ist eine Authentifizierung mittels RSDK notwendig. Dazu kann, wie im Manual beschrieben, entweder eine bereits im Modul abgelegte RSDK verwendet oder eine Eigene im Modul abgelegt werden. Dafür ist aber ein Zugriff auf das Modul über die serielle Schnittstelle notwendig. Details hierzu findet man in @Priemlers hervorragendem Sammelthread für Elektronikbastler.
Sowohl die Mac-Adresse des Moduls, welche zum Verbindungsaufbau notwendig ist, als auch die RSDK, sind in der App hardcoded eingepflegt. Ich hänge daher hier keine fertige .apk sondern eine .aia Datei dran, die in den Inventor importiert und dort bearbeitet und kompiliert werden kann. Vor dem Import ist noch die .txt-Endung zu entfernen, hier im Forum kann man keine Archivdateien hochladen. Für die Nutzung des Inventors ist allerdings ein Google Account notwendig. Die fertig kompilierte App kann nach der Bearbeitung mit Hilfe der App "MIT AI2 Companion" auf das eigene Smartphone übertragen werden.
Die Mac findet man unter den Reiter "Blöcke" in der Global BLE_MAC. Die RSDK muss wie im Manual auf Seite 6 beschrieben, in zwei Paketen übertragen werden, da die Länge der RSDK mit 32 Byte die Maximalzahl von 20 Bytes überschreitet, die mit BLE übertragen werden können. Die RSDK wird nun in den globalen Liste RSDK1 und RSDK2 eingetragen. Wichtig: Die Hexbytes müssen in Dezimalzahlen umgerechnet werden, und diese dann in den beiden Listen eingetragen werden, da ich keine Möglichkeit gefunden habe, ein mit dem Inventor ein Array von Hexbytes zu senden.
Die App läuft bei mir auf einem Android System, ob sie auch unter IOS funktioniert muss man testen. Die angehängte Astra.aia kann natürlich auch zur Verschönerung, Verbesserung und Weiterentwicklung der App genutzt werden.
- -
Über den "BLE" Button wird die App mit dem Roller verbunden und auch wieder getrennt.
Auf der App wird eine Auswahl der Parameter angezeigt, die das $STMS Kommando liefert. Mit dem "Refresh" Button werden die Werte aktualisiert.
Der "Power" Button schaltet der Roller ein/aus, der "Find" entspricht dem Dreieck des Silence App und mit "TCOP" kann die Sitzbank bei eingeschaltetem Roller und ausgeklappten Seitenständer geöffnet werden.
In der "Command" Zeile können Kommandos aus der Commandref eingegeben werden, die mit "send" an das Modul geschickt werden. In der nächsten Zeile erfolgt dann die Ausgabe der Antwort des Moduls. Kommandos werden hier ohne führendem "$"-Zeichen eingegeben, dieses wird automatisch ergänzt.
Zum Zugriff auf das Astramodul ist eine Authentifizierung mittels RSDK notwendig. Dazu kann, wie im Manual beschrieben, entweder eine bereits im Modul abgelegte RSDK verwendet oder eine Eigene im Modul abgelegt werden. Dafür ist aber ein Zugriff auf das Modul über die serielle Schnittstelle notwendig. Details hierzu findet man in @Priemlers hervorragendem Sammelthread für Elektronikbastler.
Sowohl die Mac-Adresse des Moduls, welche zum Verbindungsaufbau notwendig ist, als auch die RSDK, sind in der App hardcoded eingepflegt. Ich hänge daher hier keine fertige .apk sondern eine .aia Datei dran, die in den Inventor importiert und dort bearbeitet und kompiliert werden kann. Vor dem Import ist noch die .txt-Endung zu entfernen, hier im Forum kann man keine Archivdateien hochladen. Für die Nutzung des Inventors ist allerdings ein Google Account notwendig. Die fertig kompilierte App kann nach der Bearbeitung mit Hilfe der App "MIT AI2 Companion" auf das eigene Smartphone übertragen werden.
Die Mac findet man unter den Reiter "Blöcke" in der Global BLE_MAC. Die RSDK muss wie im Manual auf Seite 6 beschrieben, in zwei Paketen übertragen werden, da die Länge der RSDK mit 32 Byte die Maximalzahl von 20 Bytes überschreitet, die mit BLE übertragen werden können. Die RSDK wird nun in den globalen Liste RSDK1 und RSDK2 eingetragen. Wichtig: Die Hexbytes müssen in Dezimalzahlen umgerechnet werden, und diese dann in den beiden Listen eingetragen werden, da ich keine Möglichkeit gefunden habe, ein mit dem Inventor ein Array von Hexbytes zu senden.
Die App läuft bei mir auf einem Android System, ob sie auch unter IOS funktioniert muss man testen. Die angehängte Astra.aia kann natürlich auch zur Verschönerung, Verbesserung und Weiterentwicklung der App genutzt werden.
- Dateianhänge
-
- Astra.aia.txt
- (231.37 KiB) 136-mal heruntergeladen
- Pfriemler
- Moderator
- Beiträge: 2324
- 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: S01/mo: App zur BLE Kommunikation mit dem Astramodul
Ich klick mir ne App zusammen. Das ist ja noch besser als mein sonst favorisiertes "Basic4Android".
Aber der Ehre ist's zuviel: Auch die Idee, den Roller mit einer allgemeinen 3rd-party-App per Bluetooth anzusprechen, stammt schon von Gerold und ist im Telemetriemodul-Thread (nicht im Elekronikbastler-Sammelfred) ab hier und in den Folgebeiträgen nachzulesen.
Aber der Ehre ist's zuviel: Auch die Idee, den Roller mit einer allgemeinen 3rd-party-App per Bluetooth anzusprechen, stammt schon von Gerold und ist im Telemetriemodul-Thread (nicht im Elekronikbastler-Sammelfred) ab hier und in den Folgebeiträgen nachzulesen.
Zuletzt geändert von Pfriemler am Di 10. Okt 2023, 18:27, insgesamt 2-mal geändert.
- Pfriemler
- Moderator
- Beiträge: 2324
- 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: S01/mo: App zur BLE Kommunikation mit dem Astramodul
Ich habe mir jetzt ein paar Stunden den Wolf gesucht und hier auch den Fortschritt dazu berichtet. Kann ich aber alles canceln.
Die App funktioniert einwandfrei auch bei meinem Mo. Ich kann verbinden, den Roller ein- und ausschalten, die Sitzbank öffnen und auch das bisher für SEAT-Besitzer nicht verfügbare FIND-Kommando (weil deren App es schlicht nicht umsetzt) funktioniert einwandfrei. (Ist aber über Bluetooth etwas sinnfrei, weil man sich ja dann sowieso in der Nähe des Rollers befindet, nicht wahr? )
Für die App: GANZ GROSSES KINO. Ich bin begeistert. Eigene Anpassungen wie Namen, Änderung der Schriftgrößen, Eindeutschung ist kein Hexenwerk. Ich kommt mit dem MIT App Inventor ganz gut zurecht. Nur beim Installieren meckert Googles PlayStore über ein mögliches Sicherheitsrisiko - aber das kann man ja ignorieren.
Meine Erkenntnisse im Laufe meiner Versuche hier zusammengefasst:
1. Die Einstellung des "security levels" in den $BLEC-Settings des Astra-Moduls ist ohne Belang: sowohl mit 1 als auch mit 3 funktioniert es.
2. Die Übertragung des eigenen Schlüssels in der App erfolgt in zwei Schritten. Beide Pakete werden zwar mit einem eindeutigen Header versehen, es ist aber wichtig, sie in der richtigen Reihenfolge zu übertragen. Das hatte ich vermutlich ganz versehentlich beim Herumspielen und Anpassen vertauscht. Es ist also wichtig, zunächst die mit "165,182,1,0" beginnende Liste (RSDK1) zu senden und danach erst die mit "165,182,1,1" (RSDK2).
3. Mir war noch aufgefallen, dass "EFR Connect" für das Schreiben auf dem RSDK-Auth-Kanal nur "write without response" anbietet. Also hatte ich im Rahmen meiner Versuche testweise den call "WriteBytesWithResonse" in Gerolds App kurzerhand durch "WriteBytes" ersetzt. Auf die (Nicht-)Funktion der App hatte das aber keinen Einfluss.
Ich habe jetzt jedenfalls Blut geleckt. Nächster Schritt wäre die Überlegung, wie man BLE-MAC und Schlüssel über die App hinterlegen kann - dann könnte man eine fertige APK verwenden und muss nicht im Quelltext arbeiten.
Nachtrag:
Funktioniert bei mir einwandfrei.
Die App funktioniert einwandfrei auch bei meinem Mo. Ich kann verbinden, den Roller ein- und ausschalten, die Sitzbank öffnen und auch das bisher für SEAT-Besitzer nicht verfügbare FIND-Kommando (weil deren App es schlicht nicht umsetzt) funktioniert einwandfrei. (Ist aber über Bluetooth etwas sinnfrei, weil man sich ja dann sowieso in der Nähe des Rollers befindet, nicht wahr? )
Für die App: GANZ GROSSES KINO. Ich bin begeistert. Eigene Anpassungen wie Namen, Änderung der Schriftgrößen, Eindeutschung ist kein Hexenwerk. Ich kommt mit dem MIT App Inventor ganz gut zurecht. Nur beim Installieren meckert Googles PlayStore über ein mögliches Sicherheitsrisiko - aber das kann man ja ignorieren.
Meine Erkenntnisse im Laufe meiner Versuche hier zusammengefasst:
1. Die Einstellung des "security levels" in den $BLEC-Settings des Astra-Moduls ist ohne Belang: sowohl mit 1 als auch mit 3 funktioniert es.
2. Die Übertragung des eigenen Schlüssels in der App erfolgt in zwei Schritten. Beide Pakete werden zwar mit einem eindeutigen Header versehen, es ist aber wichtig, sie in der richtigen Reihenfolge zu übertragen. Das hatte ich vermutlich ganz versehentlich beim Herumspielen und Anpassen vertauscht. Es ist also wichtig, zunächst die mit "165,182,1,0" beginnende Liste (RSDK1) zu senden und danach erst die mit "165,182,1,1" (RSDK2).
3. Mir war noch aufgefallen, dass "EFR Connect" für das Schreiben auf dem RSDK-Auth-Kanal nur "write without response" anbietet. Also hatte ich im Rahmen meiner Versuche testweise den call "WriteBytesWithResonse" in Gerolds App kurzerhand durch "WriteBytes" ersetzt. Auf die (Nicht-)Funktion der App hatte das aber keinen Einfluss.
Ich habe jetzt jedenfalls Blut geleckt. Nächster Schritt wäre die Überlegung, wie man BLE-MAC und Schlüssel über die App hinterlegen kann - dann könnte man eine fertige APK verwenden und muss nicht im Quelltext arbeiten.
Nachtrag:
Das geht recht einfach: Statt der einfachen Dezimal-Zahlen kann man das darunter Zahlenmodul nutzen und auf hexadezimal einstellen. Dann ein solches Zahlenmodul markieren, kopieren und wieder einfügen, das geht schneller als die Einzelauswahl durch Klick auf "Math".
Funktioniert bei mir einwandfrei.
Zuletzt geändert von Pfriemler am Di 10. Okt 2023, 22:51, insgesamt 3-mal geändert.
-
- Beiträge: 19
- Registriert: Fr 21. Okt 2022, 21:58
- Roller: SEAT MO
- PLZ: 73100
- Wohnort: Greece
- Kontaktdaten:
Re: S01/mo: App zur BLE Kommunikation mit dem Astramodul
Ich bin vielleicht außerhalb des Themas, aber ich verwende die Originalanwendung "astra IoT", um mit dem Astra-Modul zu kommunizieren. Ich habe ihnen eine E-Mail mit der IMEI des Moduls geschickt und sie geben mir ein Konto, das ich in der Anwendung verwenden kann, um mit meinem Roller zu kommunizieren und Befehle über Bluetooth zu senden. Ich füge einige Screenshots bei.
- Pfriemler
- Moderator
- Beiträge: 2324
- 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: S01/mo: App zur BLE Kommunikation mit dem Astramodul
Ja, das ist etwas offtopic und auch wieder nicht. @SpeedCore hatte im Zusammenhang mit Nachrüstung eines Astra-Moduls auf eigene Kosten die App bereits hier vorgestellt und davon berichtet. Neu ist, dass Astra auch bei Modulen mit spezieller Firmware so einfach diese Möglichkeit eröffnet. Das hatte ich nicht vermutet. Danke für den Hinweis.
Letztlich erlaubt diese App die granulierte Konfiguration des ASTRA-Moduls per Oberfläche und ohne physische Verbindung zum Roller selbst, bietet aber nach meinen Erkenntnissen nicht mehr Möglichkeiten als über die Kommandozeile per serieller Verbindung, vor allem keine spezifischen Infos aus anderen Roller-Bestandteilen. Gerolds App liefert hingegen bereits jetzt deutlich mehr Informationen als die SEAT-App selbst, vor allem weil sie - anders als die Astra IoT App SIlence-spezifische Kommandos einsetzt.
Beide Apps bedienen also andere Felder, sind für den User aber beide wertvoll.
Letztlich erlaubt diese App die granulierte Konfiguration des ASTRA-Moduls per Oberfläche und ohne physische Verbindung zum Roller selbst, bietet aber nach meinen Erkenntnissen nicht mehr Möglichkeiten als über die Kommandozeile per serieller Verbindung, vor allem keine spezifischen Infos aus anderen Roller-Bestandteilen. Gerolds App liefert hingegen bereits jetzt deutlich mehr Informationen als die SEAT-App selbst, vor allem weil sie - anders als die Astra IoT App SIlence-spezifische Kommandos einsetzt.
Beide Apps bedienen also andere Felder, sind für den User aber beide wertvoll.
- Pfriemler
- Moderator
- Beiträge: 2324
- 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: S01/mo: App zur BLE Kommunikation mit dem Astramodul
Ich hatte ebenfalls sehr engagierten Kontakt mit Astra, letztlich aber keinen Erfolg. Die wahrscheinliche Theorie ist, dass mein AT240 in der Silence-Version SL240V8 heißt und die von gmarg gezeigte App nicht damit arbeiten will, wir haben eigentlich alles versucht.
Alle übrigen Module heißen auch in der Silence-Version wie das Original, sollten also keine Probleme haben.
Meine angepasste Version (Eingabezeile nach oben, damit sie nicht von der Tastatur verdeckt wird) habe ich bis zum Defekt meines Akkus auf der 12V-Leitung viel lieber anstelle der SEAT-App benutzt, weil viel schneller und vielseitiger. Mir fehlt nur noch der Gesamtkm-Stand, aber das ist sicher leichter zu bewerkstelligen
Vielleicht bekommt das Projekt mit der angekündigten Monetatisierung der App-Nutzung nochmal etwas Rückenwind.
Alle übrigen Module heißen auch in der Silence-Version wie das Original, sollten also keine Probleme haben.
Meine angepasste Version (Eingabezeile nach oben, damit sie nicht von der Tastatur verdeckt wird) habe ich bis zum Defekt meines Akkus auf der 12V-Leitung viel lieber anstelle der SEAT-App benutzt, weil viel schneller und vielseitiger. Mir fehlt nur noch der Gesamtkm-Stand, aber das ist sicher leichter zu bewerkstelligen
Vielleicht bekommt das Projekt mit der angekündigten Monetatisierung der App-Nutzung nochmal etwas Rückenwind.
- error
- Beiträge: 1484
- Registriert: Di 20. Dez 2022, 19:37
- Roller: NIU GT, Silence S01, Vectrix vx-1, Horwin CR6, Twizy
- PLZ: 2
- Kontaktdaten:
Re: S01/mo: App zur BLE Kommunikation mit dem Astramodul
Leider habe ich im Moment keine Zeit mich mit der Anpassung der App zu beschäftigen.
Deshalb eine Frage an die Gurus hier:
Lässt sich die App um die Anzeige der einzelnen Zellspannungen erweitern?
Das wäre für mich ein echter Gewinn.
Danke...
Deshalb eine Frage an die Gurus hier:
Lässt sich die App um die Anzeige der einzelnen Zellspannungen erweitern?
Das wäre für mich ein echter Gewinn.
Danke...
-
- Beiträge: 530
- Registriert: Fr 7. Feb 2020, 10:23
- Roller: Silence S01
- PLZ: 55*
- Kontaktdaten:
Re: S01/mo: App zur BLE Kommunikation mit dem Astramodul
Das undokumentierte $STMS Kommando, welches zur Ermittlung der in der App gezeigten Werte verwendet wird, liefert weder den Gesamtkilometerstand, noch die einzelnen Zellspannungen. Ich kenne auch sonst kein Astra Kommando, welches diese Daten herausgibt.
Die einzige Möglichkeit, die ich im Moment sehe, ist die Abfrage der CAN-Bus Daten mittels des $RCAN Kommandos. Dafür muss der Roller aber eingeschaltet sein oder der Akku im Roller geladen werden, ansonsten erhält man die Fehlermeldung $RCAN,ERR.
Bei eingeschaltetem Roller liefert z.B. ein $RCA,100 ein $RCAN,500,8,03,10,00,00,59,25,00,00,OK.
Hier stecken die Gesamtkilometer in den Hexbytes 59 und 25, was zu einem Wert von 0x2559 = 9561km für den Odometer führt.
Die einzige Möglichkeit, die ich im Moment sehe, ist die Abfrage der CAN-Bus Daten mittels des $RCAN Kommandos. Dafür muss der Roller aber eingeschaltet sein oder der Akku im Roller geladen werden, ansonsten erhält man die Fehlermeldung $RCAN,ERR.
Bei eingeschaltetem Roller liefert z.B. ein $RCA,100 ein $RCAN,500,8,03,10,00,00,59,25,00,00,OK.
Hier stecken die Gesamtkilometer in den Hexbytes 59 und 25, was zu einem Wert von 0x2559 = 9561km für den Odometer führt.
- error
- Beiträge: 1484
- Registriert: Di 20. Dez 2022, 19:37
- Roller: NIU GT, Silence S01, Vectrix vx-1, Horwin CR6, Twizy
- PLZ: 2
- Kontaktdaten:
Re: S01/mo: App zur BLE Kommunikation mit dem Astramodul
Das wäre ziemlich cool. Letztendlich benötigt man die Zellspannungen ja nur (oder hauptsächlich) beim überwachen des Ladevorganges oder wenn man in Bluetoothreichweite ist.
Zündung an wäre also völlig in Ordnung.
Du hast nicht zufällig Langeweile?
-
- Beiträge: 530
- Registriert: Fr 7. Feb 2020, 10:23
- Roller: Silence S01
- PLZ: 55*
- Kontaktdaten:
Re: S01/mo: App zur BLE Kommunikation mit dem Astramodul
Bin für den Rest des Jahres eigentlich ausgebucht, aber mal sehen.
Ich habe zudem andere Möglichkeiten, die Zellspannungen während des Ladens zu beobachten:
https://www.elektroroller-forum.de/view ... 60#p331960
https://www.elektroroller-forum.de/view ... 75#p270575
Ich habe zudem andere Möglichkeiten, die Zellspannungen während des Ladens zu beobachten:
https://www.elektroroller-forum.de/view ... 60#p331960
https://www.elektroroller-forum.de/view ... 75#p270575
Wer ist online?
Mitglieder in diesem Forum: 0 Mitglieder und 22 Gäste