Alle Aktivitäten auf einer Karte

Hallo Zusammen!
Weiß jemand ob es eine Möglichkeit gibt alle Aktivitäten aus Garmin Connect als GPX-Track zu exportieren? Bisher habe ich nur die Funktion gefunden die Aktivitäten einzeln zu exportieren. Das wäre aber sehr viel Arbeit Grimacing

Alternativ: Kennt jemand eine Möglichkeit alle Aktivitäten auf einer Karte anzuzeigen? Ich würde gerne sehen wo ich schon überall unterwegs war 

Vielen Dank schonmal für's Zuhören! 

  • Hallo!

    Ersteres geht ziemlich sicher nicht. Die Frage ist: wozu benötigst du diese Funktion? Möglicherweise gibt es Alternativen. Falls du alle Aktivitäten auf ein anderes Portal (Strava, Endomondo, runtastic....) übertragen möchtest z.B. Da gibt es Tools dafür.

    Zweiteres (Karte) würde mich auch sehr interessieren. Ich wusste z.B. dass ich einen Gipfel in einem bestimmten Gebiet gemacht habe, wusste aber nicht mehr, welcher und wann das war. Mit einer Karte hätte ich mich leichter getan, diesen zu finden.

    ©a-x-i

  • Ich benötige dies um eben alle Aktivitäten auf einer Karte anzuzeigen :) 
    Wenn ich sie alle als GPX exportieren könnte, könnte ich sie einfach in Bootcamp oder andere Programme importieren.

    Leider kann man keine "historischen" Daten auf andere Plattformen wie Strava etc übertragen, nur neue Aktivitäten. Sonst wäre das Problem direkt gelöst. Es scheint dass dies früher möglich war, nun aber seit einer Umstellung seitens Garmin die ganzen Tools nicht mehr funktionieren.

    Ich hatte gehofft dass es mittlerweile eine neue Lösung gäbe. 

  • Hab da was gefunden:
    https://ps-sports.de/garmin-fit-dateien-bulk-export-von-garmin-connect/

    oder:

    https://github.com/pe-st/garmin-connect-export

    Ansonsten kannst du direkt bei Garmin all deine Daten anfordern. Dauert normalerweise 48 Stunden, kann aber auch 30 Tage dauern Slight smile

    https://www.garmin.com/en-US/account/datamanagement/exportdata/

    Ich check mal obige Möglichkeiten heute Abend und kann (wenn du willst und vielleicht technisch nicht so fit bist) was schicken, wo du dann nur noch username und passwort eingeben brauchst.

    das wär's aus Tirol Smiley

    ©a-x-i

    p.s. du meinst basecamp nicht bootcamp, oder?

  • Oh das sieht sehr interessant aus! 

    Ich bin zwar kein kompletter Computer-Noob aber mit Github hab ich bisher noch nicht gearbeitet. Falls du da etwas hättest wo man nur Username und Passwort braucht, wäre das natürlich sehr komfortabel! 

    Sonst würde ich mich da mal ranversuchen :D 

    Und wenn gar nichts klappt muss halt Garmin ran :D 

    Danke dir! Es gibt also noch Hoffnung! ;)

    Und jep, ich meinte Basecamp. Hab mir irgendwie angewöhnt Bootcamp dazu zu sagen.. 

  • okay. das auf GitHub ist in Python geschrieben. Ist jetzt auch nicht so meins. 
    Hab mir mal die andere Lösung angesehen und das hat recht gut funktioniert, nur hat man hier nur die originalen FIT-Files in jeweils einem ZIP-File bekommen. Aber wir wollen ja die gpx-Dateien. Habe also das JS-Script dahingehend angepasst.

    Also einfach mit Chrome auf Garmin-Connect gehen, die letzte Aktivität öffnen, dann F12 und in die Console dieses Script kopieren und enter drücken. Im Code siehst du ttl =3 --> das ist die Anzahl der Aktivitäten von der geöffneten, rückwärts gerechnet. Also die letzten drei. Bei 100 halt die letzten 100.

    Das ist der JS-Code. Es empfiehlt sich vorher in Chrome den Downloadordner fix zu setzen, wo du halt die Dateien hin haben möchtest.

    Du brauchst dann halt noch ein wenig Geduld. Dauert a bissal ;)

    var a = window.location.pathname.split("/");
    var id = a[a.length-1];
    var tcxUrl = "https://connect.garmin.com/modern/proxy/download-service/files/activity/";
    var gpxUrl = "https://connect.garmin.com/modern/proxy/download-service/export/gpx/activity/";
    var cnt = 1, ttl = 100; /*Change ttl from 100 to whatever # of activities you want to download*/
    var downloadTimeoutLength = 3 * 1000;
    var downloadUrl = gpxUrl + id;
    window.location.href = downloadUrl;
    
    setTimeout(
       (getMore = function(){
    		jQuery.getJSON("https://connect.garmin.com/modern/proxy/activity-service/activity/" + id + "/relative?_=" + Math.random()
    			, function (d) {
    				jQuery.getJSON("https://connect.garmin.com/modern/proxy/download-service/export/gpx/activity/" + id, function (e) {
    					
    				});				
    			id = d.previousActivityId;
    			downloadUrl = gpxUrl + id;
    			window.location.href = downloadUrl;
    			if(++cnt<ttl){
    				setTimeout(getMore,downloadTimeoutLength );
    			}
    		}
    	);
       })
       ,downloadTimeoutLength 
    );

    Bei Problemen oder Fragen: einfach melden Slight smile

    ©a-x-i

  • Hi 

    Falls du noch an einer komfortableren Lösung interessiert bist...
    Ich hab noch das hier gefunden: https://github.com/db85/garmin_export

    Das exportiert wiederum nur die Fit-Files (zumindest extrahiert es aber gleich das ZIP). Ich habe es jetzt so angepasst, dass es auch (bzw. entweder oder) das gpx-File exportiert. Falls du es haben möchtest kann ich dir den Code / oder die dll zukommen lassen.

    das Ganze ruft man dann so auf (wenn man gpx will)
    dotnet GarminExport.dll -u meinLogin -p meinPasswort --from-date 2019-01-01

    Will man die Fit-Files:
    dotnet GarminExport.dll -u meinLogin -p meinPasswort --from-date 2019-01-01 --origin true

    Die Änderungen habe ich in einem Folk auf github eingecheckt und sind hier verfügbar:

    https://github.com/axi71/garmin_export

    Man benötigt dazu dotnet core.

    Das wär's aus Tirol

    ©a-x-i

  • Ich habe das jetzt versucht aber bei mir wird immer nur eine Aktivität heruntergeladen unabhängig welchen Wert ich nach ttl= eintrage. Danke für deine Hilfe

  • Ja, die haben die API geändert. Hier das aktuelle JS mit dem es wieder geht. Bitte nicht vergessen vorher Chrome (oder whatever) zu sagen, wohin die downloads fix gehen sollen:

    var a = window.location.pathname.split("/");
    var id = a[a.length-1];
    var tcxUrl = "">connect.garmin.com/.../";
    var gpxUrl = "">connect.garmin.com/.../";
    var cnt = 1, ttl = 3; /*Change ttl from 100 to whatever # of activities you want to download*/
    var downloadTimeoutLength = 3 * 1000;
    var downloadUrl = gpxUrl + id;
    window.location.href = downloadUrl;

    setTimeout(
    (getMore = function(){
    jQuery.getJSON("">connect.garmin.com/.../" + id + "/prev?_=" + Math.random()
    , function (d) {
    jQuery.getJSON("
    ">connect.garmin.com/.../" + id, function (e) {

    });
    id = d.activityId;
    downloadUrl = gpxUrl + id;
    window.location.href = downloadUrl;
    if(++cnt<ttl){
    setTimeout(getMore,downloadTimeoutLength );
    }
    }
    );
    })
    ,downloadTimeoutLength
    );

  • Danke das du dir das angeschaut hast, aber leider funktioniert es nicht, ich bekomme diese Fehlermeldung

    VM462:3 Uncaught SyntaxError: Unexpected token '...'

  • okay, das ist ein Kopierproblem. Der Codeeditor hier lässt mich keinen Code mehr einfügen. Ich kann dir das js-File als txt schicken. Schreib mir einfach ein Mail: [email protected] und ich schick dir es als Textdateil. Oder du kopierst dir das alte File und besserst einfach die Zeilen aus:

    In Zeile 12 ersetzt du 'relative' durch 'prev'

    und in Zeile 17 ersetzt du 'previousActivityId' durch 'activityId'

    das wär's Slight smile


    ©a-x-i