lucidiot's cybrecluster

Suivre la batterie de son livreur

Lucidiot Informatique 2020-12-13
Pourquoi suivre sa livraison quand on peut à la place stresser et prier pour qu'un livreur mette son téléphone en charge ?


Il y a plus d'un an, je publiais un article décrivant un package Python que j'avais créé pour suivre les livreurs de courses à domicile en utilisant une API conçue avec peu de notions de vie privée. Cette API a depuis évolué, et je n'ai plus vraiment mis à jour mon package par manque de motivation. Par contre, j'ai continué à expérimenter avec l'API, et j'ai découvert qu'il m'était désormais possible de suivre le niveau de la batterie du téléphone du livreur ! Quelle avancée incroyable.

J'ai donc utilisé un script très basique en shell utilisant jq pour obtenir les infos de batterie dans un fichier CSV :

while true; do
    sleep 10s
    curl -q "https://backend.urbantz.com/mission/$ID1/position?trackingCode=$ID2" \
    | jq -r '[.timestamp, .battery.level, .battery.isCharging] | map(tostring) | join(",")' \
    | tee -a ~/battery/x.csv
done

Le principe de ce script est vraiment très simple : à partir d'une API dont j'obtiens les identifiants bêtement en observant dans la console de développeur du navigateur, je collecte la date de dernière collecte des informations de batterie et de localisation, le niveau de la batterie, et l'état de chargement de la batterie. J'ai ensuite utilisé un script Python plus complexe pour générer des graphes en SVG :

J'ai pu suivre la batterie du livreur pendant plus de deux heures dès mon premier essai. Son téléphone était déjà bien épuisé, et je suppose que les batteries de ces téléphones ne durent pas vraiment plus longtemps que la durée de leurs sorties ; ils sortent en général à 15h pour livrer jusque 20h.

Pour les commandes suivantes, j'ai pu suivre plus longtemps vu que j'étais mieux préparé. Ici, j'ai pu suivre un livreur qui faisait une livraison matinale, quasiment du début à la fin de son service.

Une petite nouveauté pour cette fois : c'est la seule et unique fois que j'ai observé un livreur mettant en charge son téléphone ! Je pense que sans ça, il en serait arrivé à quelque chose comme 10% de batterie restants.

Encore une autre livraison matinale. On remarquera qu'il y a souvent des lignes droites sans traits verticaux pour les séparer ; chaque trait est un point de données, et l'application sur leur téléphone ne rapporte visiblement pas de nouvelles données tant que les coordonnées GPS ne changent pas. On peut donc potentiellement déduire de ça, avec l'enregistrement des coordonnées en plus depuis l'API, les coordonnées imprécises des autres clients du service.

Mon plus long enregistrement jusqu'à présent. Je suppose que l'arrêt au début a été causé par un problème au départ ou juste parce que le livreur s'est mis en service trop tôt. Je suis en mesure de suivre les livreurs seulement quand ils partent, vu que je reçois un SMS avec le lien de suivi, et jusqu'à la fin de leur service ; j'avais reçu le SMS plusieurs heures avant ma livraison.

Depuis, je n'ai fait qu'une seule autre commande en octobre durant le confinement, et j'ai oublié de faire ces enregistrements. Il est probable que je ne commande pas à nouveau avant l'année prochaine, vu que je fais ces courses à domicile seulement pour faire de gros stocks, puis j'achète les produits plus périssables comme des fruits et légumes moi-même. Peut être qu'il y aura une édition 2021 des graphes ? Seriez-vous intéressés par d'autres informations étranges, telles que le poids de mes sacs de courses ‽


Commentaires

Il n'y a pour l'instant aucun commentaire. Soyez le premier !