Bonsoir,

Voici quelques lignes de "code" permettant de connecter nos chères montres GPS - Garmin Forerunner 60 - 405CX - 310XT - 610 - 910XT à notre Linux ( Ubuntu 12.10 / 13.04 ).

Jusqu’à présent j’utilisai une VM avec un windows XP pour récupérer mes séances de running.
Pour cause, je n'avais pas trouvé de moyen simple et efficace pour rivaliser avec le logiciel officiel fournit par GARMIN (en.exe).

Voici donc GFrun :



Ou comment connecter sa montre "Garmin Forerunner 60 - 405CX - 310XT - 610 - 910XT" à Linux (ubuntu) en un seul "copier/coller" dans un terminal 😛
wget -N https://github.com/xonel/GFrun/raw/GFrun/GFrun/GFrun.sh && chmod a+x GFrun.sh && sudo bash ./GFrun.sh

GUI :
https://github.com/xonel/GFrun/raw/master/_.local/share/GFrun/GFrunGui.png

CLI :
https://github.com/xonel/GFrun/raw/master/_.local/share/GFrun/GFrun.png


GFrun est capable de :
+ Simplifier l'installation des différents modules.
+ Configurer les fichiers de config.
+ Extraitre le .FIT des montres Garmin Forerunner
+ Convertir les .FIT en .TCX
+ Uploader les "activites" sur http://connect.garmin.com
+ Downloader toutes les "activites" de http://connect.garmin.com
+ Install et configure le pluguin "GarminPlugin" pour Firefox.

Tous les petits copains sous GitHub ont bien travaillé ...

Voici les briques principales de GFrun :
+ garminplugin_0.3.16-1 :
Permet de connecter notre firefox au site http:// connect.garmin.com
+ Garmin-Forerunner-610-Extractor :
Récupère les fichiers .FIT de nos montres (ANT-FS) et convertit les .FIT en .TCX à l'aide du script (40-convert_to_tcx.py)
+ gcpuploader :
upload automatiquement les "FIT/TCX" sur http:// connect.garmin.com


Configuration de test pour le developpement du script "GFrun" :
+ Garmin Forerunner 310XT (Allumée)
+ Clef Usb ANT (connecté à l'ordinateur)
+ Ubuntu 13.10 64bit / Ubuntu 12.04 64bit / Ubuntu 14.04 64bit
+ Python 2.7+
+ PyUSB 1.0 (seems to be a bug which makes it segfaults on version before Alpha 2}

Version de développement :
wget -N https://github.com/xonel/GFrun/raw/master/GFrun/GFrun.sh && chmod a+x GFrun.sh && sudo bash ./GFrun.sh
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------

A) COMMENT UTILISER GFrun :

1) Télécharger le script d'installation
wget -N https://github.com/xonel/GFrun/raw/GFrun/GFrun/GFrun.sh && chmod a+x GFrun.sh && sudo bash ./GFrun.sh
2) Installer GFrun en local sur votre ordinateur :
Dans le "GFrunMenu" >> section "INSTALL" >>  choix  >> "1. STABLE"
3) Utiliser GFrun :
Dans le "GFrunMenu" >> section "ACTIVITIES" >>  choix  >> " 6 7 8 ou 9"
en fonction de vos besoins ...
B) REMARQUES :

Dans le "GFrunMenu" la section "CONFIG" est utile si vous souhaitez modifier un paramètre après l'installation initiale.

Lancer GFrun (en local) CLI :
cd $HOME/GFrun && sudo /bin/bash ./GFrun.sh
Lancer GFrun (en local) GUI :
cd $HOME/GFrun && /bin/bash ./tools/GFrunGui/go_ExConsole.sh
Il est possible de lancer GFrun en utilisant 2 méthodes :
   1) Via le Dash en recherchant GFrun (et hop on déplace l'icone dans la barre Unity)
   2) Via un terminal en tapant GFrun (respecter la casse car il existe aussi un gfrun ;o)
Voici les 3 differences entre GFrun (Icone Bleu) | GFrunS (Icone Rouge) | GFrunG (Icone Vert)
   - GFrun (Icone Bleu) = GFrun en mode User (sans sudo).
   - GFrunS (Icone Rouge) = GFrun en mode superAdmin (sudo).
   - GFrunG (Icone Vert) = GFrun en mode user Graphique.
C) HELP (Que faire en cas de problème) :

faire un retour de la ligne suivante sur le forum
cat $HOME/GFrun/logs/DIAG
Bon Running @ tous 🙂

--------------------------------------------------------------------------------------------------------------------------------------------------------------------------
GitHub : https://github.com/xonel/GFrun
Web : http://gfrun.fr.nf
Forum (FR) : http://forum.ubuntu-fr.org/viewtopic.php?id=1267521
un mois plus tard
Bonjour,

Je suis assez nouveau sur Ubuntu, et sur la Garmin 610. Donc des manipulations simples peuvent m'avoir échappé.
J'ai essayé plusieurs fois GFrun, mais impossible de s'appairer. Quand je fais choisis l'option 6 de GFrun, j'aperçois un "Device not found" dans un terminal qui s'ouvre et se ferme aussitôt. Le dongle ANT de Garmin est pourtant bien connecté, j'ai essayé les 2 ports USB.

Configuration:
Garmin Forerunner 610
Xubuntu 11.10
Eee PC

Merci d'avance pour votre aide
Bonjour Marcellos

Pour la 1ere connexion il te faut coupler le USB clef à ta montre.

SUR LA MONTRE :
Voici la démarche pour une 310XT : Mettre la montre en mode couplage [activé]
Cette manipulation sur la montre n'est nécessaire que lors du 1ere couplage. 
[BP - Mode] [Systeme] [Transfert de données] [couplage ACTIVE]
AVEC GFRUN :
1) Lance l'option [ 5 ] dans GFrun >> config garmin.com
Cela va te proposer de configurer ton compte garmin connect + 3 tentatives de couplage avec ta montre.
Attendre la fin de la procedure

2) Lance l'option [ 6 ] dans GFrun.

Bon runing ;O)
Bonjour,

Merci pour la réponse.
J'ai bien revu la procédure:
- la montre a l'appairage activé ("transfert de données" et "appairage initial" activés)
- option 4 de GFRUN : OK, je peux configurer mon login et mot de passe sur le site de Garmin
- option 5 de GFRUN : pas OK, un "Device not found" s'affiche dans un terminal qui s'ouvre et se ferme aussitôt, à chacune des 3 tentatives d'appairage. A la fin, "Procédure terminée" s'affiche, mais rien n'indique clairement si cela a fonctionné ou pas. La montre ne semble pas réagir, elle n'affiche rien sur l'appairage.

Y'a-t-il un moyen de faire un diagnostic pour comprendre d'où vient le problème ?
Je n'ai plus aucun PC/Windows pour vérifier que la clé ANT fonctionne.

Merci d'avance.
Salut à tous.

Je possède un forenner 405 et suis sous Ubuntu 13.04.

J'ai réussi à extraire un fichier TCX du 405.

Le problème est que je n'arrive pas à l'exporter sur Py Trainer. Quelqu'un a t'il déjà réussi la manip ?

Merci d'avance.
Bonjour,

J'ai pu testé la Forerunner 610 sur Windows : le dongle ANT est bien reconnu, les données se téléchargent depuis la montre vers le site de Garmin.
Pouvez-vous m'aider pour faire de même mais sur Xubuntu ?

Merci d'avance!
Bonsoir ;o)

@Marcellos : avec le dongel ANT connecté, fait un retour des commandes suivante :
lsusb
usb-devices
cat $HOME/GFrun/resources/IDs
ls /etc/udev/rules.d/
Si "ant-usbstick2.rule" n'est pas présent dans ton "/etc/udev/rules.d/" lance les 2 lignes suivantes
(GFrun doit êtres installé pour que cela fonctionne)
sudo cp -f $HOME/GFrun/resources/ant-usbstick2.rules /etc/udev/rules.d/
sudo udevadm control --reload-rules
@artemide : Perso je n'utilise pas Pytrainer mais turtlesport http://doc.ubuntu-fr.org/turtlesport, si j'ai le temps cette semaine je testerai pytrainer 😉

Bonne continuation @ vous 2 ;o)
Bonsoir le Nox,

Merci pour ton aide et ta patience.

Voici ce que donne usb-devices:
T:  Bus=03 Lev=01 Prnt=01 Port=01 Cnt=01 Dev#=  2 Spd=12  MxCh= 0
D:  Ver= 2.00 Cls=00(>ifc ) Sub=00 Prot=00 MxPS=32 #Cfgs=  1
P:  Vendor=0fcf ProdID=1009 Rev=01.00
S:  Manufacturer=Dynastream Innovations
S:  Product=ANT USB-m Stick
S:  SerialNumber=189
C:  #Ifs= 1 Cfg#= 1 Atr=80 MxPwr=100mA
I:  If#= 0 Alt= 0 #EPs= 2 Cls=ff(vend.) Sub=00 Prot=00 Driver=(none)
cat: $HOME/GFrun/resources/IDs: Aucun fichier ou dossier de ce type
ls /etc/udev/rules.d/
70-persistent-cd.rules  70-persistent-net.rules  ant-usbstick2.rules  README
Le fichier ant-usbstick2.rule" est bien présent dans "/etc/udev/rules.d/".

Par contre, GFrun option 5, 6,... ne donne toujours rien.

J'ai essayé aussi le code que tu indiques au cas où ant-usbstick2.rule n'est pas présent. Aucun message ne s'affiche dans le terminal. GFrun ne fonctionne pas mieux ensuite.

D'autres idées ?
Bonne soirée
Bonsoir Marcellos
J'ai l'impression que ton probleme est lié a ton ID product essaye ceci :

Modifi dans le fichier $HOME/GFrun/resources/ant-usbstick2.rules
SUBSYSTEM=="usb", ATTR{idVendor}=="0fcf", ATTR{idProduct}=="1008", MODE="0666", SYMLINK+="ttyANT", ACTION=="add"
par ceci
SUBSYSTEM=="usb", ATTR{idVendor}=="0fcf", ATTR{idProduct}=="1009", MODE="0666", SYMLINK+="ttyANT", ACTION=="add"
puis
sudo cp -f $HOME/GFrun/resources/ant-usbstick2.rules /etc/udev/rules.d/
sudo udevadm control --reload-rules
Si cela viens de la je vais voir si je peux pas faire detecter ces parametres dans la prochaine version de GFrun ...

Merci pour tes retours, je pensai etres le seul a utiliser GFrun ;O)

Bon runing @+ ;O)
Bonjour,
J'ai installé GFrun sur mon portable sous Mint KDE. Tout fonctionne bien jusqu'à le téléchargement des données vers Garmin connect, où je reçois le message :
Script >>> python /home/bernard/GFrun/resources/pygupload/gupload.py -v 1 2013-06-*
DEBUG:root:Using credentials from '/home/bernard/.guploadrc'.
DEBUG:root:Username: xxxxxxxxxxxxxx
DEBUG:root:Password: c*******9
DEBUG:root:Filename: 2013-06-18_16-38-12-80-20893.fit
DEBUG:root:File exists.
DEBUG:root:File Extension: .fit
DEBUG:root:File '2013-06-18_16-38-12-80-20893.fit' extension '.fit' is valid.
CRITICAL:root:LOGIN FAILED - please verify your login credentials
Les éléments dans .guploaddrc sont pourtant les bons.
J'ai besoin d'aide, merci d'avance
Bonjour Beer4661 🙂

1) Si tu es sur de ton username/Password (attention aux espaces majuscules)
2) Que ta machine est bien connecté à internet.
3) Quelle a accès aux urls suivantes :
Essaye de renouveler ton mot de passe (utilise un password simple pour le "test" sans caractères spéciaux peut êtres):
https://my.garmin.com/mygarmin/customers/updateAccountInformation.faces

OU

Vérifie a nouveau ton nom utilisateur en faisant une demande ici :
https://my.garmin.com/mygarmin/forgotUserName.faces

Je viens de tester le site "garminConnect" et le sritpt "guploader" fonctionne correctement avec ma config (le 19/06/2013 14:17)

@+ et bon entrainement ;o)
Je me connecte sans problème à Garmin connect directement sous Firefox. Donc je suis sûr de mon code. Il n'y a que des lettres et des chiffres. Par contre, le nom d'utilisateur est mon adresse internet et comprend donc @. Pourrait-il être le problème lorsque GFrun tente de se connecter ?
Bonsoir,

@Beer4661 : essaye de te connecter uniquement avec ton <login mygarmin> :
exemple : Beer4661@trucbidule.fr soit
login : Beer4661
password : xxxxxxx

Sur le site de garminConnect >> Remarque :Connectez-vous à l'aide de votre compte {myGarmin}.

Vérifie a nouveau ton nom utilisateur en faisant une demande ici pour vérifier :
https://my.garmin.com/mygarmin/forgotUserName.faces

Mon login "GarminConnect" ne possède pas de @, si quelqu'un peut confirmer le fonctionnement ou non du login avec gupload @ ?
Merci de ta réponse Lenox, j'attends ton retour avec impatience. Je vais jeter un oeil sur la tortue en attendant.
Bonsoir le NOx,

Toujours le même problème (oui on veut utiliser GFrun!).
D'après l'écran qui s'affiche furtivement, le problème vient d'ici, dans le fichier GFrun/ant/base/ant.py, ligne 49:


_logger = logging.getLogger("garmin.ant.base.ant")

class Ant():

def __init__(self, idVendor, idProduct):

# Find USB device
_logger.debug("USB Find device, vendor %#04x, product %#04x", idVendor, idProduct)
dev = usb.core.find(idVendor=idVendor, idProduct=idProduct)

# was it found?
if dev is None:
raise ValueError('Device not found')


Marcellos
Bonsoir ,

@Marcellos : !! OK !! voici la solution a ton problème (du moins j’espère ;o)

1) désinstalle complètement GFrun 0.4.1( GFrun option U)
2) installe cette version (Branche Master 0.4.2) :
[s]wget -N https://github.com/xonel/GFrun/raw/master/GFrun/install/GFrunMenu.sh && chmod a+x GFrunMenu.sh && sudo sh ./GFrunMenu.s[/s]h
Cette version profite des dernières mise à jour de Garmin-extractor prenant en compte la version de ton ProducID 1009.

3) Install ( GFrun option 1)
La branche Garmin-extractor DRIVERS va etres installer en remplacement de la MASTER.
Je n'ai pas fini de mettre a jour tous les scritps pour cette version, mais tu devrais pouvoir "pairer" ta montre.

4) Après le pairing OK de ta montre va dans ton dossier $HOME/.config/garmin-extrator/NUMERODETAMONTRE/ puis suprime le dossier /Actvites et le fichier "authfile". plus besoin modifications intégré a GFrun 0.4.2

5) Extract.fit ... ( GFrun option 6)
La nouvelle structure de dossier va êtres construite et tes .fit vont se télécharger ;o)
J'ai trouvé hier soir l'origine de ton problème en farfouillant ici : https://github.com/Tigge/Garmin-Forerunner-610-Extractor/issues/59

J'essaye de simplifier tout ceci dans la version STABLE 0.4.2, pour la fin de la semaine.

@artemide : je viens de tester très rapidement Pytrainer (soft sympathique en effet) les fichiers .FIT ne sont pas exploitable directement.
Mais j'arrive a importer tous mes fichier .TCX généré par GFrun. La conversion que tu dois faire est la suivante :
+ extraction via la montre des .FIT
+ conversion avec le script (40-convert_to_tcx.py) pour obtenir un .TCX correct ;O) par defaut GFrun de fera ces 2 actions automatiquement.
Tu trouveras les fichiers a importer dans ton $HOME\GFrun\NUMERODETAMONTRE.... 'activities_tcx' ou 'TCX'

Bonne fin de soirée @ vous 2 ;O)
Merci Le nox.

J'ai regardé également la tortue et ce n'est pas mal non plus. Je vais tester les 2
Salut le NOx,

Les fichiers FIT se téléchargent sur l'ordinateur ! L'appairage a bien eu lieu!
Par contre pas moyen de les mettre sur le site. J'ai essayé plusieurs login (majuscule, minuscule, avec et sans @). Le mot de passe ne contient que des lettres minuscules.

=============================================
 LOCAL > ...> Upload Activities on going >... > GARMIN.COM
=============================================
 Script >>> python /home/marcellos/GFrun/resources/pygupload/gupload.py -v 1 2013-06-22_*
DEBUG:root:Using credentials from '/home/marcellos/.guploadrc'.
DEBUG:root:Username: xxx@truc.com
DEBUG:root:Password: ******
CRITICAL:root:No valid Files.
=============================================
 LOCAL > ...> Upload Activities on going >... > GARMIN.COM
=============================================
 Script >>> python /home/marcellos/GFrun/resources/pygupload/gupload.py -v 1 2013-06-21_*
DEBUG:root:Using credentials from '/home/marcellos/.guploadrc'.
DEBUG:root:Username: xxx@truc.com
DEBUG:root:Password: ******
DEBUG:root:Filename: 2013-06-21_19-44-56_4_7.fit
DEBUG:root:File exists.
DEBUG:root:File Extension: .fit
DEBUG:root:File '2013-06-21_19-44-56_4_7.fit' extension '.fit' is valid.
CRITICAL:root:LOGIN FAILED - please verify your login credentials

Mais parfois seul le login pose problème:
=============================================
 LOCAL > ...> Upload Activities on going >... > GARMIN.COM
=============================================
 Script >>> python /home/marcellos/GFrun/resources/pygupload/gupload.py -v 1 2013-06-*
DEBUG:root:Using credentials from '/home/marcellos/.guploadrc'.
DEBUG:root:Username: xxx@truc.com
DEBUG:root:Password: ******
DEBUG:root:Filename: 2013-06-23_17-49-06_4_8.fit
DEBUG:root:File exists.
DEBUG:root:File Extension: .fit
DEBUG:root:File '2013-06-23_17-49-06_4_8.fit' extension '.fit' is valid.
CRITICAL:root:LOGIN FAILED - please verify your login credentials
Que faire d'autre ?

Bonne soirée,
Marcellos
Bonsoir,

@Marcellos & Beer4661 :
j'ai l'impression que vous etes dans le meme cas ... :/
Votre login comporte un "@" !!

Vérifie a nouveau le nom utilisateur en faisant une demande ici pour vérifier :
https://my.garmin.com/mygarmin/forgotUserName.faces

Le site garminConnecte vous renvoie votre login avec @ ou pas ?
Je ne peut pas faire de test, mon compte n'en comporte pas ...

Que vous retourne ligne de code suivante (l'idee est de ne pas passer par le fichier de config):

Rq:
+ modifier myusername & mypassword.
+ vous rendre dans le dossier ou vous avez vos fichier .fit
+ IL vous faut un nom de fichier valide existant a uploader ...

cd $HOME\GFrun\NUMERODETAMONTRE\....
python /home/marcellos/GFrun/resources/pygupload/gupload.py -l myusername mypassword 2013-06-23_17-49-06_4_8.fit
EDIT :
Je viens de me creer un nouveau compte GarminConnect avec chezxxxnox@gmail.com.
l'API de GarminConnect / le fichier de config .guploaderc /et Guploader.py prennent bien en compte les '.' '@' !!
voici les traces en mode DEBUG de Guploader.

Cela doit venir d'autre chose, pour l'instant je ne comprend pas ...
=============================================
 LOCAL > ...> Upload Activities on going >... > GARMIN.COM
=============================================
 Script >>> python /home/nox/GFrun/resources/pygupload/gupload.py -v 1 2013-06-18_*
DEBUG:root:Using credentials from '/home/nox/.guploadrc'.
DEBUG:root:Username: chezxxnox@gmail.com
DEBUG:root:Password: 1******x
DEBUG:root:Filename: 2013-06-18_22-31-22_4_250.fit
DEBUG:root:File exists.
DEBUG:root:File Extension: .fit
DEBUG:root:File '2013-06-18_22-31-22_4_250.fit' extension '.fit' is valid.
	JSON: {"username":"chezxxxxnox@gmail.com"}
	Username: chezxxxxnox@gmail.com
INFO:root:Login Successful.
	URI: http://connect.garmin.com/proxy/upload-service-1.1/json/upload/.fit
--------------debug-------------
2013-06-18_22-31-22_4_250.fit
{"detailedImportResult": {
  "uploadId": xxxxxx,
  "owner": xxxxxxx,
  "processingTime": 222,
  "ipAddress": "unknown",
  "fileName": "2013-06-18_22-31-22_4_250.fit",
  "report": {
    "@class": "uploadReport",
    "entries": [
    ],
    "createdOn": "2013-06-23 20:16:02.615 GMT",
    "children": [
    ],
    "userProfileId": "xxxxxx",
    "creationHistoryEntry": {
      "externalId": ""
    }
  },
  "successes": [
  ],
  "failures": [
    {
      "internalId": xxxxxx,
      "externalId": "xxxx",
      "messages": [
        {
          "content": "Duplicate activity.",
          "code": 202
        }
      ]
    }
  ]
}}
--------------debug-------------
File: 2013-06-18_22-31-22_4_250.fit    ID: 332287380   Status: EXISTS
Passez un bon fin de week end @+ ;O)
Salut le NOx,

Heureusement que cela n'empêche pas de courir !

J'ai essayé les 2 lignes de codes:
marcellos@Asus:~/GFrun/numeromontre/activities$ python /home/marcellos/GFrun/resources/pygupload/gupload.py -l marcellos@truc.com motdepasse 2013-06-23_17-49-06_4_8.fit
qui donne hélas:
CRITICAL:root:LOGIN FAILED - please verify your login credentials
Le login retourné par le site de Gramin est bon, comporte un @. J'ai essayé le login et le mot de passe en majuscule et minuscule, rien n'y fait.

J'ai également essayé le code de DEBUG:
/GFrun/numeromontre/activities$ python /home/marcellos/GFrun/resources/pygupload/gupload.py -v 1 2013-06-23_17-49-06_4_8.fit
qui donne
DEBUG:root:Using credentials from '/home/marcellos/.guploadrc'.
DEBUG:root:Username: toto@mondedeouioui.com
DEBUG:root:Password: ******
DEBUG:root:Filename: 2013-06-23_17-49-06_4_8.fit
DEBUG:root:File exists.
DEBUG:root:File Extension: .fit
DEBUG:root:File '2013-06-23_17-49-06_4_8.fit' extension '.fit' is valid.
CRITICAL:root:LOGIN FAILED - please verify your login credentials
Argh.

Pendant ce temps j'emprunte un PC Windows pour uploader mes parcours sur le site Garmin, c'est moche.