Tracker GPS qui parle JT808 (standard chinois GPS véhicule), correctement identifié par sniff hex (voir identifier le protocole d’un tracker GPS par sniff hex). Traccar écoute le bon protocole sur le bon port. J’ai déclaré le device dans Traccar admin avec l’ID imprimé au dos du boîtier — 19176775999. Le tracker se connecte, envoie son paquet de registration, et là encore : Traccar ne répond pas et la position ne remonte jamais.
Aucune erreur côté serveur. Le device reste marqué Offline dans l’admin.
Symptôme
$ netstat -tn | grep :5174
tcp 0 0 10.0.0.5:5174 78.x.x.x:24315 ESTABLISHED
Cette fois la connexion reste ouverte (Traccar ne ferme plus = bon signe), mais aucune réponse n’est jamais envoyée au tracker. Pas de paquet Flags [P.] sortant. La table tc_positions reste vide.
Cause
Le format JT808 transporte l’identifiant du device sur 6 octets en BCD (Binary Coded Decimal) = exactement 12 chiffres. Quand le tracker s’enregistre, il envoie son ID complet sur ces 12 chiffres, leading zero inclus si besoin.
Le label imprimé au dos du boîtier dit ID: 19176775999 — 11 chiffres, sans le 0 de tête. Le fabricant le « raccourcit » pour le rendre plus lisible, mais le firmware envoie sur 12 chiffres.
Sniff du payload :
7e 01 00 00 2d 01 91 76 77 59 99 00 2c ...
└────────────┘
01 91 76 77 59 99
= BCD "019176775999" (12 chars, leading 0)
Traccar cherche un device avec uniqueId = "019176775999". L’utilisateur a déclaré "19176775999". Pas de match → Traccar ne répond pas à la registration → tracker n’envoie pas de position.
Solution
Dans Traccar admin → édite le device → Identifier = 019176775999 (12 chiffres, leading 0). Pas l’IMEI, pas le numéro SIM, pas l’ID raccourci au dos du boîtier — l’ID BCD-aligné sur 12 caractères.
Vérification rapide après changement : tcpdump sortant depuis le serveur doit montrer une réponse JT808 dans les 30 secondes (msg 0x8100 = response to registration), puis les positions remontent.
Lessons learned
- JT808 device ID = 6 octets BCD = toujours 12 chiffres côté wire — peu importe ce qu’affiche le label produit
- Les fabricants chinois raccourcissent souvent l’ID imprimé en supprimant les leading zeros pour l’esthétique — ne pas leur faire confiance pour la valeur exacte à mettre côté serveur
- Le sniff du payload est la vérité : si tu vois
01 91 76 77 59 99dans la trame, c’est019176775999, point. La sérigraphie du boîtier ment. - Traccar ne loggue rien quand l’ID ne matche pas — il garde la connexion ouverte mais n’envoie pas la response de registration. Symptôme visible uniquement par sniff sortant vide
- Pas l’IMEI : sur les firmwares JT808, l’ID device est distinct de l’IMEI du module radio. Ne pas mélanger.