Gestern habe ich im Beitrag Herr seiner Bewegungsdaten werden beschrieben, wie man die Daten der Schrittzähler-App Moves am Computer auswertet.
Mit dem Webdienst Moves raw JSON Export von Joost Prattel exportiert man seinen ganzen Datenbestand in einem Rutsch als JSON-Datei. Das geht wie folgt:
Als erstes steuert man moves-export.herokuapp.com an – am besten tut man das mit dem Computer, auf den man die Daten herunterladen möchte. Man klickt auf Authenticate at Moves und erhält eine achtstellige Pin. Bei der Moves-App tippt man das M-Symbol in der rechten unteren Ecke an, geht auf Verbundene Apps und dann auf Browse Apps. In der Liste sucht man den Eintrag Moves raw JSON export.
Daten als Json herunterladen
Nun kann man über Enter PIN die achtstellige Zahl eingeben. Sobald das passiert ist, sollte die Seite beim Desktop-Browser zu der Download-Ansicht wechseln.
Bei ruft man nun seine Daten ab dem vorgegebenen Startdatum ab. Wenn man die Daten von Anfang an abruft, dauert das eine gewisse Zeit. Um die Moves-Server nicht zu überlasten, werden die Daten mit Pausen abgerufen, sodass man etwa zweieinhalb Minuten pro Monat rechnen muss.
Der Export ist anspruchsvoll
Es kann dabei durchaus passieren, dass der Browser während des Vorgangs ins Stocken gerät. Darum ein heisser Tipp: Für den Export den Zweitbrowser nutzen! Ausserdem sollte man genügend Arbeitsspeicher bereithalten. In meinem Fall hat Firefox nach dem Export 2,5 GB Arbeitsspeicher belegt und der Download der verlief entsprechend harzig (via Zwischenablage durch Markieren und Kopieren der Daten in der Textbox).
In meinem Fall war die exportierte Datei 6,5 MB gross. Ich habe zu Testzwecken einen einzelnen Tag exportiert. Diese Datei ist um die 43 KB gross, wobei ich am fraglichen Tag nicht besonders sportlich gewesen wäre. 3545 Schritte umfasst das Log.
Bleibt die Frage, was man mit den Daten anstellt. Hier der Anfang einer Logdatei:
{"export":[,{"segments":null,"date":"20130319","caloriesIdle":1623},{"segments":[{"endTime":"20130320T153324Z","startTime":"20130320T101340Z","place":{"location":{"lat":47.3724217091,"lon":8.5303559471},"id":3127132,"type":"unknown"},"activities":[{"startTime":"20130320T101444Z","endTime":"20130320T102358Z","calories":34,"duration":554,"activity":"wlk","distance":595,"steps":859,"trackPoints":[{"time":"20130320T101444Z","lat":47.372304,"lon":8.530437},{"time":"20130320T102358Z","lat":47.372304,"lon":8.530437}]}],"type":"place"},{"endTime":"20130320T155610Z","startTime":"20130320T153325Z","activities":[{"startTime":"20130320T153325Z","endTime":"20130320T155610Z","calories":77,"duration":1365,"activity":"wlk","distance":1363,"steps":2202,"trackPoints":[{"time":"20130320T153325Z","lat":47.3724217091,"lon":8.5303559471},{"time":"20130320T153424Z","lat":47.3724392433,"lon":8.5303742599},{"time":"20130320T153450Z","lat":47.3725709524,"lon":8.5303304978},{"time":"20130320T153458Z","lat":47.3726005412,"lon":8.5303329374},{"time":"20130320T153530Z","lat":47.3727623912,"lon":8.5305715893},{"time":"20130320T153607Z","lat":47.3729781386,"lon":8.5309592618}, …
Die Syntax zu entschlüsseln, dürfte nicht übermässig schwierig sein. Man kann sich beispielsweise vom Json Parser Online helfen lassen.
Doch für eine individuelle Anwendung wird man die Datei entsprechend parsen müssen – und das ist ohne die entsprechende Erfahrung dann doch kein Pappenstiel. Wenn man sich somit nicht in ein Programmierabenteuer stürzen will, liegt der Sinn und Zweck darin, Herr seiner Daten zu sein und sie für den Fall auf der Festplatte liegen zu haben, sollte Moves von einem Tag auf den anderen verschwinden…