Toegang krijgen tot de OMNI API

Voor (elektro)technische vragen, fietsonderhoud en -onderdelen.
merstro
Rookie
Rookie
Berichten: 7
Lid geworden op: 22 feb 2018, 19:54

Re: Toegang krijgen tot de OMNI API

Bericht door merstro » 05 okt 2018, 21:23

Goed werk! Iemand een idee of we dat client_secret gewoon kunnen publiceren?
ST2 2016 - 983wh

Gebruikersavatar
Stromeur
Admin | Forum Supporter
Admin | Forum Supporter
Berichten: 7386
Lid geworden op: 15 mei 2017, 20:18
Locatie: Harlingen

Re: Toegang krijgen tot de OMNI API

Bericht door Stromeur » 05 okt 2018, 21:29

Ik weet niet of hier regelgeving over bestaat. Als iemand dit wel weet, dan is input van harte welkom.

Kan sowieso zijn dat Stromer bij mij komt klagen als je dit publiceert. We zijn volledig onafhankelijk, maar ik probeer de relatie tussen ons als Stromer community en Stromer zelf wel open en goed te houden. Dus svp niet boos op mij worden als Stromer mij vraagt om e.e.a. te verwijderen en ik daar gehoor aan geef. Het is niet voor niets dat ze de API zelf niet vrijgeven.

Uiteraard is alles wat jullie hier doen en wat anderen misschien ook willen gaan proberen geheel op eigen risico.

Als we dit zo kunnen afspreken, dan vind ik het prima.
Stromer ST2 S 2017. Mods & Excessen: OMNI Interface C, Stromer/Suntour geveerde voorvork, BodyFloat, Ergotec M88, GoPro Hero4, Rokform Pro, Ergon GP3, SKS spatlap, Spurcycle, Ortlieb Back-Roller High Visibility.

TimB
Runner-up
Runner-up
Berichten: 13
Lid geworden op: 19 apr 2018, 08:31

Re: Toegang krijgen tot de OMNI API

Bericht door TimB » 06 okt 2018, 11:36

merstro schreef:
05 okt 2018, 21:23
Goed werk! Iemand een idee of we dat client_secret gewoon kunnen publiceren?
Misschien staat ze bij Stromer wel open voor wat 3rd party gepruts? Ik zie in elk geval een hoop mogelijkheden.

joost
Pro
Pro
Berichten: 53
Lid geworden op: 23 dec 2017, 21:53
Locatie: Dordrecht

Re: Toegang krijgen tot de OMNI API

Bericht door joost » 06 okt 2018, 12:14

O wat fijn dat jullie er verder ingedoken zijn. Net even met mitmproxy gekeken en zag nu direct de client_secret staan. weet niet hoe ik vorige keer heb zitten slapen.

Ben zelf van plan om via Node-red of Homeassistant de boel te koppelen zodat ik push notifications kan krijgen wanneer de accu vol is.
🇳🇱 Stromer ST1 X 2019 Ocean blue 🚀

Gebruikersavatar
Stromeur
Admin | Forum Supporter
Admin | Forum Supporter
Berichten: 7386
Lid geworden op: 15 mei 2017, 20:18
Locatie: Harlingen

Re: Toegang krijgen tot de OMNI API

Bericht door Stromeur » 06 okt 2018, 21:28

TimB schreef:
06 okt 2018, 11:36
merstro schreef:
05 okt 2018, 21:23
Goed werk! Iemand een idee of we dat client_secret gewoon kunnen publiceren?
Misschien staat ze bij Stromer wel open voor wat 3rd party gepruts? Ik zie in elk geval een hoop mogelijkheden.
Stromer is gevestigd in een redelijk ivoren toren, maar ik weet 100% zeker dat als je de juiste mensen bij Stromer benadert met een goed doortimmerde pitch, dat ze de deur niet dicht gooien.
Stromer ST2 S 2017. Mods & Excessen: OMNI Interface C, Stromer/Suntour geveerde voorvork, BodyFloat, Ergotec M88, GoPro Hero4, Rokform Pro, Ergon GP3, SKS spatlap, Spurcycle, Ortlieb Back-Roller High Visibility.

merstro
Rookie
Rookie
Berichten: 7
Lid geworden op: 22 feb 2018, 19:54

Re: Toegang krijgen tot de OMNI API

Bericht door merstro » 07 okt 2018, 20:04

Ik inmiddels heb een nachtje de api bevraagd om te kijken of dat werkt. De eerste bevindingen:

de rcvts lijk de received timestamp te zijn, het tijdstip waarop de stromer server de data vanaf de fiets heeft gekregen, in een unix timestamp (seconden sinds 1-1-1970). Soms is deze waarde in UTC, en soms in lokale tijd. Behoorlijk vreemd, maar deze springt dus steeds heen en weer. Mogelijk heeft dit met wel/niet beschikbaar zijn van GPS ontvangst te maken, moet ik nog verder uitzoeken.

Ik had de fiets iedere 5 minuten gepolst, (niet zo heel boeiend als die toch uit staat). De meeste data was constant, maar de temperatuur zag je een beetje verlopen. maar daarmee zag ik de power_on_cycles steeds verder oplopen. Blijkbaar veroorzaakt het continu polsen dus ook heel veer power_on_cycles. Geen idee of dit erg is, maar heb het toch maar even teruggeschroefd naar 1x per uur.

Verder kwamen zowel de motor als de batterij temperatuur soms met hele hoge waarden (meestal 17-19 graden, maar soms ook 3280 (waarschijnlijk 2^15/10, oftwel maximale waarde van en 16bits signed integer met 0.1 graad nauwkeurigheid)

Ik ga proberen uit te zoeken of ik de fiets vaker kan checken als deze gebruikt wordt, en minder vaan als die stil staat.
ST2 2016 - 983wh

joost
Pro
Pro
Berichten: 53
Lid geworden op: 23 dec 2017, 21:53
Locatie: Dordrecht

Re: Toegang krijgen tot de OMNI API

Bericht door joost » 08 okt 2018, 22:07

@Merstro zie je tijdens het laden ook de battery_SOC waarde omhoog gaan. Gebruik nu de nodeJS code om te pollen maar krijg dezelfde outdated waardes als in de app. Had gehoopt door het pollen de Stromer wakker te schudden zoals bij jou lukt. Of werkt dat alleen als hij niet aan de lader hangt.
🇳🇱 Stromer ST1 X 2019 Ocean blue 🚀

TimB
Runner-up
Runner-up
Berichten: 13
Lid geworden op: 19 apr 2018, 08:31

Re: Toegang krijgen tot de OMNI API

Bericht door TimB » 10 okt 2018, 11:44

joost schreef:
08 okt 2018, 22:07
@Merstro zie je tijdens het laden ook de battery_SOC waarde omhoog gaan. Gebruik nu de nodeJS code om te pollen maar krijg dezelfde outdated waardes als in de app. Had gehoopt door het pollen de Stromer wakker te schudden zoals bij jou lukt. Of werkt dat alleen als hij niet aan de lader hangt.
Idem hier. Ik zie ook de outdated waardes en kan er nog steeds 2x per dag naar gaan kijken :D

merstro
Rookie
Rookie
Berichten: 7
Lid geworden op: 22 feb 2018, 19:54

Re: Toegang krijgen tot de OMNI API

Bericht door merstro » 12 okt 2018, 10:39

Aan de state call kan je ``"?cached=true`" danwel ``"?cached=false`" doorgeven. Zonder caching schudt de stromer wakker. En als je hem wakker schudt, dan klopt de rcvts niet, die is dan ineens in lokale tijd ipv UTC. Als de stromer aan staat dan stuurt ie uit zichzelf updates, dus dan krijd je ook met "?cached=true" gewon verse data. IK pols nu continu (iedere 5 minuten) met "?cached=true", en dan zie ik wat er met de fiets gebeurd als die aan staat. Om te checken of die oplaadt, moet ik daarnaast nog af en toe een niet cached check doen, totdat de accu vol is.
ST2 2016 - 983wh

rvaneijk
Veteraan
Veteraan
Berichten: 580
Lid geworden op: 10 sep 2017, 10:41

Re: Toegang krijgen tot de OMNI API

Bericht door rvaneijk » 12 okt 2018, 12:27

merstro schreef:
04 okt 2018, 11:05
Ik heb het inmiddels even uitgezocht met een beetje python code:
(...)

Code: Selecteer alles

import json
endpoint="bike/"
bike = call_api(access_token, endpoint)
print('bike:', json.dumps(bike, indent=True))


bike = call_api(access_token, endpoint="bike/")
endpoint = f'bike/{bike["bikeid"]}/state/'
params = {'cached':'false'}
state = call_api(access_token, endpoint, params)
print('state:', json.dumps(state, indent=True))

bike: {
 "bikeid": ***,
 "biketype": "ST2",
 "color": "silver",
 "hardware": "omniinterface",
 "bikemodel": "ST2",
 "nickname": "***",
 "size": "sport 20"
}
state: {
 "battery_SOC": 40,
 "suiversion": "3.4.2.1",
 "bike_speed": 0.0,
 "tntversion": "3.5",
 "trip_time": 81401,
 "light_on": 255,
 "average_speed_trip": 34.9,
 "trip_distance": 788.5,
 "average_speed_total": 34.1,
 "motor_temp": 16.0,
 "average_energy_consumption": 141,
 "power_on_cycles": 670,
 "total_time": 318409,
 "atmospheric_pressure": 0,
 "battery_temp": 24.0,
 "battery_health": 95,
 "total_distance": 3013.6,
 "assistance_level": 0,
 "rcvts": 1538643543,
 "theft_flag": false,
 "lock_flag": true,
 "total_energy_consumption": 42594
}

Zelf jammer genoeg nog geen tijd genomen om in de dataflow te duiken.

Ik ben wel heel benieuwd of er geen geolocatiegegevens over de lijn gaan.

Heb je nog lat/lon's gezien op de lijn of calls in de app naar de geolocatie API?

Verzoek: zou je de mitmdump op een netwerkschijfje willen plaatsen of op een andere manier met me kunnen delen?

Plaats reactie

Wie is er online

Gebruikers op dit forum: Geen geregistreerde gebruikers en 3 gasten