Pagina 2 van 17

Re: Toegang krijgen tot de OMNI API

Geplaatst: 05 okt 2018, 21:23
door merstro
Goed werk! Iemand een idee of we dat client_secret gewoon kunnen publiceren?

Re: Toegang krijgen tot de OMNI API

Geplaatst: 05 okt 2018, 21:29
door Stromeur
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.

Re: Toegang krijgen tot de OMNI API

Geplaatst: 06 okt 2018, 11:36
door TimB
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.

Re: Toegang krijgen tot de OMNI API

Geplaatst: 06 okt 2018, 12:14
door joost
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.

Re: Toegang krijgen tot de OMNI API

Geplaatst: 06 okt 2018, 21:28
door Stromeur
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.

Re: Toegang krijgen tot de OMNI API

Geplaatst: 07 okt 2018, 20:04
door merstro
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.

Re: Toegang krijgen tot de OMNI API

Geplaatst: 08 okt 2018, 22:07
door joost
@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.

Re: Toegang krijgen tot de OMNI API

Geplaatst: 10 okt 2018, 11:44
door TimB
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

Re: Toegang krijgen tot de OMNI API

Geplaatst: 12 okt 2018, 10:39
door merstro
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.

Re: Toegang krijgen tot de OMNI API

Geplaatst: 12 okt 2018, 12:27
door rvaneijk
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?