Toegang krijgen tot de OMNI API

jan2642
Pro
Pro
Berichten: 27
Lid geworden op: 26 okt 2018, 21:01
Locatie: Tienen

Een scriptje zoals het bovenstaande maar met wat aanpassingen draait hier elke 30 minuten (met cached=true om 3G data verbruik tot een minimum te beperken). De ontvangen data wordt opgeslagen in een database en kan met bv. Grafana gevisualiseerd worden.
Bijlagen
grafana.png
grafana.png (340.11 KiB) 7762 keer bekeken
Jan-Willem Wisselink
Veteraan
Veteraan
Netherlands
Berichten: 697
Lid geworden op: 27 jul 2017, 14:10
Locatie: Utrecht
Merk SP: Stromer ST1x (2019)
Km-stand: 6313

Vet! Dit is precies waar ik ook aan zat te denk toen ik mijn app.js eenmaal draaiende had :D Heb wel een beetje SQL kennis, maar te weinig kaas gegeten om te weten hoe ik de data output van de app.js in db krijg. Wellicht zou je aanpak willen delen? I
Stromer rijder sinds augustus 2017.
Stromer ST1x (2019) - 10147km - Top Contact - Ergo - Kinekt - 2x983Wh
Stromer ST1x (2017) - 21.371km - Top Contact - Ergo - Thudbuster large - 1x813Wh
Woonwerk: 58km enkel / 116km retour.
stromer82
Rookie
Rookie
Berichten: 9
Lid geworden op: 11 jun 2019, 21:15

Zins een aantal dagen ben ik in het bezit van een Stromer en heb ik ook de Omni app geïnstalleerd. Nu probeer ik mijn "client_id" en "client_secret" te achterhalen. Dat valt niet mee. Ik heb aantal dingen geprobeerd. Via een een pi-hole, deze gaf alleen het api3.stromer-portal.ch adres. Via wireshark in me modem, ook deze gaf alleen het *.ch adres en via de Mitm proxy. Bij de laatste werkt elke app op me telefoon behalve de Stromer app. Ik kreeg de melding dat ik geen internet heb. Het lijkt erop dat Stomer de boel goed aan het dicht timmeren is.

Mijn vraag is dan ook, heeft er iemand nog een oude Stromer OMNI versie voor Android? Dus een losse APK installatie file.

Dan kan ik tijdelijk terug naar een oude versie en wellicht lukt het dan wel om de "client_id" te achterhalen. Mocht iemand nog een andere optie weten, ik houd me aanbevalen.

Alvast bedankt.
quacktop
Pro
Pro
Berichten: 50
Lid geworden op: 08 jan 2019, 20:22
Locatie: De Kempen

stromer82 schreef: 11 jun 2019, 22:11 Zins een aantal dagen ben ik in het bezit van een Stromer en heb ik ook de Omni app geïnstalleerd. Nu probeer ik mijn "client_id" en "client_secret" te achterhalen. Dat valt niet mee. Ik heb aantal dingen geprobeerd. Via een een pi-hole, deze gaf alleen het api3.stromer-portal.ch adres. Via wireshark in me modem, ook deze gaf alleen het *.ch adres en via de Mitm proxy. Bij de laatste werkt elke app op me telefoon behalve de Stromer app. Ik kreeg de melding dat ik geen internet heb. Het lijkt erop dat Stomer de boel goed aan het dicht timmeren is.

Mijn vraag is dan ook, heeft er iemand nog een oude Stromer OMNI versie voor Android? Dus een losse APK installatie file.

Dan kan ik tijdelijk terug naar een oude versie en wellicht lukt het dan wel om de "client_id" te achterhalen. Mocht iemand nog een andere optie weten, ik houd me aanbevalen.

Alvast bedankt.
Die client_id en client_secret kan je niet achterhalen door traffic te sniffen, wel door een decompile van de Android app. Heb net getest en werkt nog steed op 2.9.8 versie:
quacktop schreef: 18 mar 2019, 10:57
jan2642 schreef: 15 mar 2019, 15:18 Er is nog een andere methode:
- Download de android versie van de app op je PC, er zijn genoeg sites die dit aanbieden.
- Download een tool zoals apktool of baksmali.
- Decompileer de app met 1 van deze tools. Dit genereert een 5000-tal .smali bestanden.
- één (en slechts één) van deze bestanden bevat de client id & client secret

Ik ga niet meteen zeggen welk bestand, er moet nog een beetje drempel over blijven :D
Nog makkelijker is JADX en meteen de APK openen. Dan krijg je wat makkelijker leesbare code en dan in een klasse staan de clientid en secret.
Dan even zoeken op de api endpoint URL en daar vind je ze.
Gebruikersavatar
JeroenDG
Expert
Expert
Belgium
Berichten: 256
Lid geworden op: 22 aug 2018, 09:42
Locatie: Aalst, BE

Ben wat aan het experimenteren gegaan met de API en mijn Garmin uurwerk.
Voorlopig resultaat is hieronder te zien. Volgende stappen zijn vergrendelingsknop en het geheel wat verfraaien :D

Afbeelding
ST3 Deep Black XL 983 Wh | Stuur 20mm rise & 20° backsweep | Thudbuster ST

Woon-werk & Stroomverbruikoverzicht
Gebruikersavatar
Stromeur
Admin | Forum Supporter
Admin | Forum Supporter
Netherlands
Berichten: 22825
Lid geworden op: 15 mei 2017, 20:18
Locatie: Friesland
Merk SP: Stromer ST3 PINION SE

Nice! :cool2:
Stromer ST1 X 2017 - Stromer ST2 S 2018 - Klever X ALPHA 45 2021 - Stromer ST3 PINON 2023
Gebruikersavatar
Addow
Pro
Pro
Belgium
Berichten: 39
Lid geworden op: 05 aug 2019, 15:41
Locatie: Ravels, BE

JeroenDG schreef: 18 jul 2019, 10:03 Ben wat aan het experimenteren gegaan met de API en mijn Garmin uurwerk.
Voorlopig resultaat is hieronder te zien. Volgende stappen zijn vergrendelingsknop en het geheel wat verfraaien :D

Afbeelding
Geniaal! De VivoActive nóg wat functioneler :cool2: Ik voel me nu wel geprikkeld om ook wat te prutsen met de API of app. Je mag altijd een beta versie in de IQ store zetten of de source code op Github fzo, dan kunnen we ze zelf builden en deployen.
:bike: ST3 - “Stromboli” - sinds 5 juli 2019
Deep Black - Sport XL - 983 Wh
59 km Ravels - Edegem | 28 km Ravels - Malle
Gebruikersavatar
JeroenDG
Expert
Expert
Belgium
Berichten: 256
Lid geworden op: 22 aug 2018, 09:42
Locatie: Aalst, BE

Zolang Stromer de API niet officieel aanbied voor het publiek ben ik niet onmiddellijk van plan om iets te publiceren naar de store.
Met mijn source van de Garmin widget ga je vrees ik ook niet veel zijn, aangezien die calls maakt naar mijn eigen backend en niet rechtstreeks naar de Stromer API.

Maar met de SDK documentatie van Garmin en het python voorbeeld in deze thread zou je er normaal wel moeten kunnen geraken om zelf iets te maken :bf:
ST3 Deep Black XL 983 Wh | Stuur 20mm rise & 20° backsweep | Thudbuster ST

Woon-werk & Stroomverbruikoverzicht
stromer82
Rookie
Rookie
Berichten: 9
Lid geworden op: 11 jun 2019, 21:15

quacktop schreef: 09 jul 2019, 12:35 Die client_id en client_secret kan je niet achterhalen door traffic te sniffen, wel door een decompile van de Android app. Heb net getest en werkt nog steed op 2.9.8 versie:

Er is nog een makkelijker manier, mits je Android toestel geroot is:
- Installeer Root Browser (of iets wat er op lijkt)
- Ga naar /data/data/com.stromer.mystromer
- Kopieer deze hele map naar je PC
- Zoek in alle bestanden naar "client_id" en "client_secret" (met bijvoorbeeld Total Commander)
Ik kwam uit in de map \com.stromer.mystromer\cache\org.chromium.android_webview\
- Thats it, laat je niet afleiden door alle onleesbare teken. Wat je zoekt is in plain text.

Ik heb het nu werkend gekregen in Windows Powershell
jochimvd
Rookie
Rookie
Berichten: 6
Lid geworden op: 25 sep 2017, 19:24

merstro schreef: 04 okt 2018, 11:05 Ik heb het inmiddels even uitgezocht met een beetje python code:
Heeft iemand de pythoncode al kunnen uitbreiden om ook aan de settings/ te geraken?
alles, 1 setting, of een subset van de settings, de result-json die ik krijg is altijd leeg
Plaats reactie