Fichier Excel (macros) pour Importer les trajets de l'application MyPeugeot (Citroën & DS) + Export

MilesTEG1

Peugeot Addict
22 Janvier 2020
267
39
28
FRANCE
[ Edit : suivi des versions au 19 septembre 2020 ]

Lien de téléchargement :
upload_2020-4-6_16-29-58.png

Code:
' Suivi des versions
'       - V 1.5 : Multi-VIN
'       - V 1.6 : Ne pas effacer les données au début
'       - V 1.7 : Optimisation temps exécution
'       - V 1.8 : Tableau croisé dynamique et form information avancement
'       - V 1.9 : Gestion des VIN déjà connus
'       - V 1.9.1 : Correction de quelques bugs, et amélioration de la feuille Accueil
'       - V 1.9.2 : Correction de quelques bugs
'       - V 1.9.3 : Correction de quelques bugs + Ajout de la dernière adresse d'arrivée connue pour le VIN sélectionné
'       - V 1.9.4 : Ajout d'une feuille Tutoriel expliquant les différentes fonctions du fichier XLSM.
'       - V 1.9.5 : Ajout d'une décimale dans l'affichage des kilométrages

Code:
'       - V 2.0 :   Ajout des valeurs non utilisée dans des colonnes masquées en vue de l'exportation des données en format fichier JSON
'                   Mise en place d'une structure de type Dictionnaire pour stocker les colonnes utilisées pour les données
'                   Ajout de la marque de la voiture (détectée automatiquement avec l'extension du fichier de données fourni)
'                   Ajout de 3 fonctions pour déterminer un temps UNIX UTC à partir d'une date DST (pour la reconstruction d'un trajet manquant)
'                   Ajout de nouveaux caractères accentués pour la conversion d'adresses
'                   Ajout d'une fonction de correction inverse des adresses en vue de la re-création d'un fichier de données à partir du tableau excel (afin de tenir compte des éventuelles modifications d'adresses par les utilisateurs).
'                   Ajout d'une procédure d'exporation des données dans le format JSON
'                       Il est à noter que lors de l'importation des données, et donc à l'exportation, certaines valeurs perdent quelque peu en précision,
'                       car les nombres ne peuvent avoir plus de 15 chiffres, donc ceux qui en ont plus sont arrondis à 15 chiffres en tout.
'                       C'est la concession à faire pour avoir les coordonnées GPS sans arrondi, donc les plus précises.
'                       Cela concerne les données suivantes : "consumption" et "distance"
'                   Ajout d'une feuille Tutoriel pour l'exportation
'       - V 2.0.1 : Ajout de conversions en Double et Remplacement de . par v : CDbl(Replace( _donnée_ ), ".", ",")
'                   pour certaines valeurs (latitudes, longitudes, distances, startMileage, endMileage...)
'       - V 2.0.2 : Modifications de l'export JSON pour avoir les tableaux d'alertes vide écrit sur une seule ligne.
'                   Ajout de procédures pour neutraliser les erreurs de nombre écrit dans un format texte mais pas dans tous les classeurs,
'                       seulement lorsque celui là s'ouvre (Voir dans ThisWorkbook)
'       - V 2.0.3 : Correctif mineur sur l'utilisation de Application.ErrorCheckingOptions.NumberAsText = false dans ThisWorkbook

Code:
'       - V 2.1.0 : mise en place des adresses manquantes depuis les coordonnées lat,lon
'                   Modification du code pour gérer quelques petites nouveautés, comme la mise en valeur des erreurs, des modifications faites aux données, de la détection d'un plein d'essence :
'                       -> Il a fallu trier les trajets avant d'importer les données dans le tableau.
'       - V 2.1.1 : Petites correction dans la fonction d'export des données JSON
'       - V 2.2   : Ajout de la compatibilité macOS
'                   Fix sur la détermination d'adresse manquante
'                   Fix sur la détermination des % de carburant restant.

'       - V2.3   : Fix sur les conversions Unix timestamps vers Date locale
'                  Fix sur la position de la cellule sélectionnée après un effacement des données
'                  Déplacement des fonctions dans des modules regroupant les différents types de fonctionnalités pour le de facilité à la maintenance du code

Code:
' - V 3.0 : Refonte complète suite à nouvelle structure JSON introduit par MyMarque 1.34.2
' Ajout 3 colonnes de vérification sur les km début trajet, distance, et km début trajet + 1 en T, U et V => décalage des colonnes suivantes
' Ajout 3 colonnes pour partie EV : niveau batterie, autonomie électrique et % trajet en EV
' Ajout de plein de colonnes masquées pour pouvoir reconstituer le json
' - V 3.1 : Calcul conso kwH/100 si %trajet en EV > paramètre

Code:
' Couples de versions d'Excel & OS testées :
'       - Windows 10 v1909 (18363.752) & Excel pour Office 365 Version 2003 (build 12624.20382 & 12624.20442)
'       - Windows 10 v1809 & Excel 2016
'       - Windows 10 v1909 & Excel 2019
'       - macOS Catalina 10.15.7 & Excel 16.42 (Office 365)




Bonjour,
Je vous partage ici un fichier excel (qui est en phase de développement) qui permet de récupérer les données de l'application MyPeugeot et d'en faire des statistiques.
Mon projet est une variante assez proche (j'ai piqué plein d'idées) à celui-ci : Trajets myp de MYPEUGEOT APP sous Excel toutes versions
J'ai commencé à en parler ici : https://www.forum-peugeot.com/Forum/threads/mypeugeot-communication-véhicule-app-mobile.112040/page-39#post-2544891

Il faut exporter ses données MyPeugeot en utilisant cet option :
upload_2020-4-5_18-58-20.png
Ça va envoyer un email avec un fichier .myp.

Pourquoi refaire un fichier qui fonctionne ?
Et bien parce que pour moi il ne fonctionne pas. Les données du fichier .myp exportés pour chaque trajets ne sont pas dans le même ordre que celui pour lequel a été conçu le fichier de vr34.
Je ne sais pas pourquoi ce n'est pas le même ordre, mais toujours est-il que ça rend l'exploitation impossible.
Mais comme le fichier de données .myp est dans un format JSON, il est possible de faire autrement qu'avec une structure figée, il suffit de "parser" les données pour les récupérer.
Pour celà je me suis aidé de cette bibliothèque de fonctions :
VBA-JSON-2.3.1
Le fichier utilisé est normalement déjà inclus dans le fichier excel.
Cependant il faut activer une référence : Microsoft Scripting Runtime afin d'ouvrir le fichier et l'utiliser.
upload_2020-4-5_18-52-44.png

Je précise que pour le moment ne fonctionne que ceci :
- l'importation des données dans la feuille de calcul Trajets-MyPeugeot
- les quelques calculs fait dedans.

Reste à faire :
- le remplissage de la feuille de calcul DATA,
- les graphiques.

Apparemment il y a des bugs qui font que les données ne sont pas correctement importées chez vous...
Va falloir qu'on regarde ça ;)

Lien de téléchargement :
upload_2020-4-6_16-29-58.png
Dépôt GitHub : https://github.com/MilesTEG1/Importation-Excel-Donnees-MyPeugeot
Lien vers le fichier excel : https://github.com/MilesTEG1/Importation-Excel-Donnees-MyPeugeot/tree/master/FIchier XLSM


Tous vos retours sont les bienvenus, avec captures d'écran si bug il y a.
Captures d'écran du tableau et de l'erreur VBA s'il y en a une, avec aussi une capture du début du fichier de données que je vois sa structure.
Masquer votre VIN et les adresses ;)

Voilà
++
 
Dernière édition:
  • J'aime
Reactions: janfi67 and bagou91

Un fil dédié, voilà une bonne initiative. :bien:

Pour que cette feuille se différencie des autres déjà existantes, je propose 3 fonctionnalités.

  1. Il arrive souvent sur SMEG+ que les latitude, longitude et adresse de départ d'un trajet manquent. Si le compteur kilométrique d'arrivée du trajet précédent est égal à celui de départ du trajet courant, ça serait bien de récupérer automatiquement les valeurs d'arrivée du trajet précédent pour les coller dans celles de départ qui manquent dans le trajet courant.
  2. Un autre problème rencontré est la perte de trajet. Quand on ne perd qu'un trajet (chez moi, c'est toujours le cas) ce qui peut facilement se tester par l'ID manquant, ça serait bien de reconstruire ce trajet à partir des infos d'arrivées du trajet précédent et de départ du trajet suivant. En se creusant la tête, on peut aussi détecter que ce trajet manquant est un trajet qui a déjà été fait et on pourrait estimer sa durée et la consommation.
  3. Certains souffrent aussi d'une valeur nulle pour le niveau de carburant d'un trajet alors que les valeurs précédentes et suivantes sont correctes. La aussi, on pourrait assez facilement estimer par interpolation la valeurs manquante.

Voilà de quoi t'amuser un peu pendant cette période de confinement ;)
 
  • J'aime
Reactions: W13

Va falloir que je crée une ToDo-List :D
Intéressantes fonctionnalités que tu proposes.
Par contre, va me falloir de l'aide pour coder tout ça, je suis pas sur d'avoir le niveau :whistle:
Va déjà falloir gérer le multi-VIN dans le fichier de données MYP :pt1cable:
Et encore avant règler le soucis pour tous les fichiers de données qu'ils soient importés correctement.

Ceux qui veulent bien, vous pouvez me contacter en MP, je vous donnerais mon email pour m'envoyer votre fichier de données que j'essaie de reproduire les bugs que vous avez et que surtout j'essaie de les corriger...

Sur les deux fichiers de données que j'ai (le mien et celui de @picard60 ) l'importation fonctionne, j'ai les adresses et les coordonnées, sauf sur certains trajets pour moi où je n'ai pas d'adresse que des coordonnées.

Sinon pour ton point 1, je ne comprends pas trop...
Pour le point 2, la perte de trajets, si les données sont absentes, je ne vais rien pouvoir y faire...
Inventer un trajet par rapport à ce qui est avant et après, c'est trop bancale pour moi.
Il m'arrive par exemple de faire un trajet complètement inhabituel un jour, donc plus long ou plus court que d'habitude... comment tu peux le recréer si c'est celui là qui manque ??
Pour le point 3 : là c'est déjà plus jouable et cohérent. Faut voir comment on peut procéder... Si on peut récupérer une valeur avant et après et en faire une moyenne... Mais si c'est plusieurs fois de suite que ça manque on est marron... ou bien si juste après il y a un trajet qui manque...
Bref, c'est risqué.

Par exemple, sur mes données :
upload_2020-4-5_22-17-22.png
Il me manque certains trajets qui ne sont jamais remontés sur l'application, pur d'autre pas de consommation moyenne parce que je n'ai pas roulé et que le moteur tournait quand même (MAJ GPS par exemple) (j'ai fait en sorte que ça bug pas avec une division par 0 ^^)
J'ai pour ces trajets aucunes adresses, mais les coordonnées sont présentes.
PS : les valeurs que j'ai calculé dans ce tableau sont les mêmes que celles récupérées avec le fichier CSV de l'application ;)

Aller, je file bouquiner ^^ je code pas ce soir :whistle:
 

Sinon pour ton point 1, je ne comprends pas trop...

Le point de départ du trajet n c'est le point d'arrivée du trajet n-1. A moins que tu voiture se fasse téléporter entre deux trajets, bien sûr :lol:
Comme il arrive que les données du point de départ d'un trajet soient vides, il faut profiter de la redondance des données.

Pour le point 2, la perte de trajets, si les données sont absentes, je ne vais rien pouvoir y faire...
Inventer un trajet par rapport à ce qui est avant et après, c'est trop bancale pour moi.
Il m'arrive par exemple de faire un trajet complètement inhabituel un jour, donc plus long ou plus court que d'habitude... comment tu peux le recréer si c'est celui là qui manque ??

Pour la perte de trajet (au singulier, sans s) il n'y a rien à inventer, juste à profiter de la redondance des données qui sont là, mais pas au bon endroit.
Tout comme le point de départ d'un trajet n est le point d'arrivée du trajet n-1 (hors téléportation), le point d'arrivée du même trajet n est le point de départ du trajet n+1.
Alors s'il ne te manque que le trajet n, tu peux le reconstituer grâce aux données des trajets précédents et suivants.

Bien sûr, tu n'auras ni la durée, ni la consommation de ce trajet reconstitué.
Ces deux là, il faut essayer de les déduire des trajets similaires s'ils existent. Et s'ils n'existent pas, tu laisse à zéro ou tu prends la moyenne de tous les trajets. C'est plus délicat à coder, mais plus intéressant aussi :). Parce que le reste, ça a déjà été fait.

Je te laisse réfléchir au point 3 ;)
 
  • J'aime
Reactions: picard60

Le point 1 peut peut-être être généralisé.

De mémoire, @picard60 a signalé un problème avec son NAC ou l'application lui signale qu'il a garé sa voiture à un endroit et qu'il repart au trajet suivant d'un autre endroit.

Et comme il n'a pas demandé de téléportation ni au capitaine Kirk ni à Mr Spock, c'est signe qu'il y a un problème :voyons:

Si c'est l'adresse de départ qui est fausse (différente de l'adresse d'arrivée précédente), par exemple parce que le GPS n'a pas eu de temps de localiser correctement le véhicule, la solution est très simple à implémenter lors de l'importation des données. :oui:
 
  • J'aime
Reactions: picard60

Pour ma part, (comme signalé dans l'autre sujet), j'ai un problème au niveau du kilométrage pour certains trajets.

Problème de calcul je suppose, car je pense que le fichier reprend le kilométrage au départ et à l'arrivée. Et que cette donnée est calculée lors de l'import dans le fichier.

Voir la pièce jointe 12279
 

Et bien parce que pour moi il ne fonctionne pas. Les données du fichier .myp exportés pour chaque trajets ne sont pas dans le même ordre que celui pour lequel a été conçu le fichier de vr34.
Je ne sais pas pourquoi ce n'est pas le même ordre, mais toujours est-il que ça rend l'exploitation impossible.

:coucou:

pour avoir la réponse il suffit par contact (sur l'appli MyPeugeot app) de poser la question au développeur sans omettre de préciser l'EE (SMEG+, NAC) et (Android, IOS)

question :
Est-ce que la conception du fichier export est différente entre SMEG+ et NAC, Android et IOS
parce que j'ai ces divergences avec d'autres personnes

quelque chose comme ça

:coucou:

Va déjà falloir gérer le multi-VIN dans le fichier de données MYP :pt1cable:


En ce qui concerne le multi VIN, cela correspond au compte MyPeugeot.fr

je pense qu'il y a dans l'ordre Le VIN et ses trajets, dans mon cas j'ai les 2 VIN celui de la 208 et celui de la 308
il n'y a aucun trajet sous celui de la 208 ( normal, il n'y a pas d'électronique embarquée) donc, pour moi il faut prendre le VIN qui a des km.
Peut-être se le faire confirmer par @Phil_cofl qui dans ce cas?
 
Dernière édition:

:coucou:

@janfi67
Tes remarques sont judicieuses, mais je pense qu'elles ne correspond pas à l'idée du 1er développeur de l'appli excel, puisque le but était de retranscrire le "contenu" des trajets listés dans l'appli en fonction des éléments déterminés et enregistrés par l'appli.

→ point départ et point d'arrivée
C'est vrai que c'est curieux, avant dans les versions précédentes, j'avais MON adresse correcte, maintenant c'est beaucoup plus olé olé toujours erronée, mais j'ai remarqué (dans les nlles versions) qu'elles sont rarement correctes (ex arrivée N° rue et adresse(déjà fausse) départ d'une autre adresse)
mais sur ce cas de figure c'est l'appli MyPeugeot qui collecte et enregistre les données


→ trajets manquants
c'est beaucoup plus délicat, tu as raison,
pour moi le plus simple serait de mentionné simplement trajet Absent dans les adresses
Date / heure celles connues trajet et trajet-1
km = différence trajet & trajet -1
pour le reste c'est du pipeau


ce n'est que mon avis
 
Dernière édition:

Salut @picard60

Si c'est tantôt l'adresse de départ, tantôt l'adresse d'arrivée qui est fausse, on ne peut rien faire malheureusement. o_O

C'est vrai que pour les trajets manquant, il n'y a ni date ni heure.
La seule solution me paraît être de les remplir plus tard à la main (c'est ce que je fais quand j'édite mes sauvegardes). Si ce genre de trajet est tagué, par une couleur ou autre, ils seront faciles à retrouver.
 
  • J'aime
Reactions: picard60

Salut @picard60

Si c'est tantôt l'adresse de départ, tantôt l'adresse d'arrivée qui est fausse, on ne peut rien faire malheureusement. o_O

C'est vrai que pour les trajets manquant, il n'y a ni date ni heure.
La seule solution me paraît être de les remplir plus tard à la main (c'est ce que je fais quand j'édite mes sauvegardes). Si ce genre de trajet est tagué, par une couleur ou autre, ils seront faciles à retrouver.


:coucou:

Si c'est tantôt l'adresse de départ, tantôt l'adresse d'arrivée qui est fausse, on ne peut rien faire malheureusement. o_O

et également les 2 erronées


La seule solution me paraît être de les remplir plus tard à la main (c'est ce que je fais quand j'édite mes sauvegardes). Si ce genre de trajet est tagué, par une couleur ou autre, ils seront faciles à retrouver.[/QUOTE]

de toute façon ce sera des infos forcées
il doit y avoir la possibilité de forcer ces infos avec une police et une couleur de texte différente des autres (par ex rouge + gras)
 

En ce qui concerne le multi VIN, cela correspond au compte MyPeugeot.fr

je pense qu'il y a dans l'ordre Le VIN et ses trajets, dans mon cas j'ai les 2 VIN celui de la 208 et celui de la 308
il n'y a aucun trajet sous celui de la 208 ( normal, il n'y a pas d'électronique embarquée) donc, pour moi il faut prendre le VIN qui a des km.
Peut-être se le faire confirmer par @Phil_cofl qui dans ce cas?
:coucou: C'est effectivement cela : tu as un VIN, puis tous ses trajets; ensuite un autre VIN et ses trajets, et ainsi de suite
 

(je ne sais pas faire pour afficher une invite permettant de choisir une option parmi plusieurs....)
Je te réponds ici à ta question posée dans l'autre discussion
Pour faire cela, il faut utiliser les forms dans Excel VBA : en gros, un formulaire où tu mets une liste déroulante de choix du VIN, 2 boutons OK et Annuler.
En entrée dans la form, tu remplis la liste déroulante des VIN que tu as trouvés dans le .myp
Et tu testes le retour de la from : si Annuler => tu quiites ta procédure. Si ok, tu traites les données du VIN choisi
 

Le point de départ du trajet n c'est le point d'arrivée du trajet n-1. A moins que tu voiture se fasse téléporter entre deux trajets, bien sûr :lol:
Comme il arrive que les données du point de départ d'un trajet soient vides, il faut profiter de la redondance des données.



Pour la perte de trajet (au singulier, sans s) il n'y a rien à inventer, juste à profiter de la redondance des données qui sont là, mais pas au bon endroit.
Tout comme le point de départ d'un trajet n est le point d'arrivée du trajet n-1 (hors téléportation), le point d'arrivée du même trajet n est le point de départ du trajet n+1.
Alors s'il ne te manque que le trajet n, tu peux le reconstituer grâce aux données des trajets précédents et suivants.

Bien sûr, tu n'auras ni la durée, ni la consommation de ce trajet reconstitué.
Ces deux là, il faut essayer de les déduire des trajets similaires s'ils existent. Et s'ils n'existent pas, tu laisse à zéro ou tu prends la moyenne de tous les trajets. C'est plus délicat à coder, mais plus intéressant aussi :). Parce que le reste, ça a déjà été fait.

Je te laisse réfléchir au point 3 ;)
Ha oui je comprends mieux.
Effectivement, normalement (sauf si trajet manquant), l'adresse de fin de parcours devrait coincider avec l'adresse de début du suivant.
Sauf que dans la réalité, j'ai constaté que les adresses ne sont pas très fiables. Par exemple j'arrive sur un 2B rue toto, alors qu'en fait c'est un 2D rue toto.
Mais là, c'est la précision relative du GPS qui est en cause. On peut artificiellement copier l'adresse de fin de parcours dans celle de début du suivant, mais pourquoi ne pas faire l'inverse ? Et du coup comment décider ?
Je vais pas faire un popup de choix à chaque adresse...
Non, je ne pense pas que ce soit très utile. C'est cosmétique ok, donc pas une priorité.

Et reconstituer un trajet manquant, c'est extrapoler beaucoup de chose... QUID de la distance parcourue ? de la destination (autant pour la point de départ c'est le même que le précédent, autant tout le reste est inconnu.
Je pense que c'est une usine à gaz à faire.
Le seul truc que je pourrais envisager c'est mettre une ligne avec l'ID du trajet manquant et le reste des cellules de la ligne grisée, pour montrer qu'il manque un trajet à cet endroit. Je vois déjà comment le coder, enfin l'algorithme, car le code, c'est une autre histoire. Faudra que je mette sur papier mon idée. Mais je pense y arriver. -> TO-DO List


Le point 1 peut peut-être être généralisé.

De mémoire, @picard60 a signalé un problème avec son NAC ou l'application lui signale qu'il a garé sa voiture à un endroit et qu'il repart au trajet suivant d'un autre endroit.

Et comme il n'a pas demandé de téléportation ni au capitaine Kirk ni à Mr Spock, c'est signe qu'il y a un problème :voyons:

Si c'est l'adresse de départ qui est fausse (différente de l'adresse d'arrivée précédente), par exemple parce que le GPS n'a pas eu de temps de localiser correctement le véhicule, la solution est très simple à implémenter lors de l'importation des données. :oui:
Voir au-dessus.


Pour ma part, (comme signalé dans l'autre sujet), j'ai un problème au niveau du kilométrage pour certains trajets.

Problème de calcul je suppose, car je pense que le fichier reprend le kilométrage au départ et à l'arrivée. Et que cette donnée est calculée lors de l'import dans le fichier.

Voir la pièce jointe 12279
Pour le problème de kilométrage, il me faudrait un extrait de votre fichier mypeugeot avec les trajets en question (bon là ça semble être tous...)



:coucou:

pour avoir la réponse il suffit par contact (sur l'appli MyPeugeot app) de poser la question au développeur sans omettre de préciser l'EE (SMEG+, NAC) et (Android, IOS)

question :
Est-ce que la conception du fichier export est différente entre SMEG+ et NAC, Android et IOS
parce que j'ai ces divergences avec d'autres personnes

quelque chose comme ça

:coucou:




En ce qui concerne le multi VIN, cela correspond au compte MyPeugeot.fr

je pense qu'il y a dans l'ordre Le VIN et ses trajets, dans mon cas j'ai les 2 VIN celui de la 208 et celui de la 308
il n'y a aucun trajet sous celui de la 208 ( normal, il n'y a pas d'électronique embarquée) donc, pour moi il faut prendre le VIN qui a des km.
Peut-être se le faire confirmer par @Phil_cofl qui dans ce cas?

Alors, pour ça je pourrais envoyer un message au développeur de l'application. -> TODO List

En tout cas j'ai regardé avec plus de son ton fichier picard60.
Dans le tiens il y a une donnée dans chaque trajet que je n'ai pas du tout dans le mien : "distance".
D'autres données sont parfois absentes d'un coté ou de l'autre, elles concernent l'adresse d'arrivée ou de départ, les coordonnées, et des fois si tu as mis le GPS en spécifiant une adresse elle est présente sinon non.
Mon calcul de distance se base sur la différence entre "endMileage" et "startMileage". Dans ton fichier ce calcul donne bien la valeur fournie par ta donnée "distance". (j'ai vérifié sur plusieurs trajets).
Il me faut vraiment les fichiers qui génèrent des chiffrent pas normaux.

Ha sinon, pour ton histoire de double VIN, tu as des trajets dans les deux VIN.
upload_2020-4-6_13-37-42.png

Il y a 3640 trajets dans le premier VIN qui se fini par 33. Et il y en a 157 dans le second VIN qui se fini par 86.
Pourquoi est-ce ainsi je ne sais pas.
upload_2020-4-6_13-37-52.png
Donc quand mon script récupère tes trajets, il commence par le 1er VIN, les écrit dans le tableau, puis comme il y a un 2nd VIN, il continue d'écrire ces nouveaux trajets dans le tableau et écrit le nouveau VIN trouvé associés à ces trajets.
Il doit y avoir moyen de différencier l'écriture pour les deux VIN, voir de demander à choisir lequel utiliser -> TO-DO List.


:coucou:

@janfi67
Tes remarques sont judicieuses, mais je pense qu'elles ne correspond pas à l'idée du 1er développeur de l'appli excel, puisque le but était de retranscrire le "contenu" des trajets listés dans l'appli en fonction des éléments déterminés et enregistrés par l'appli.

→ point départ et point d'arrivée
C'est vrai que c'est curieux, avant dans les versions précédentes, j'avais MON adresse correcte, maintenant c'est beaucoup plus olé olé toujours erronée, mais j'ai remarqué (dans les nlles versions) qu'elles sont rarement correctes (ex arrivée N° rue et adresse(déjà fausse) départ d'une autre adresse)
mais sur ce cas de figure c'est l'appli MyPeugeot qui collecte et enregistre les données


→ trajets manquants
c'est beaucoup plus délicat, tu as raison,
pour moi le plus simple serait de mentionné simplement trajet Absent dans les adresses
Date / heure celles connues trajet et trajet-1
km = différence trajet & trajet -1
pour le reste c'est du pipeau


ce n'est que mon avis

Je voulais initialement reproduire le fichier excel qui ne fonctionne pas chez moi, en améliorant juste la partie extraction de données. C'est mon premier but. Et tant que celà ne sera pas fait et opérationnel, le reste attendra ;)
(pour les autres remarques de cette citation, voir mes précédentes remarques un peu au-dessus ;)

Salut @picard60

Si c'est tantôt l'adresse de départ, tantôt l'adresse d'arrivée qui est fausse, on ne peut rien faire malheureusement. o_O

C'est vrai que pour les trajets manquant, il n'y a ni date ni heure.
La seule solution me paraît être de les remplir plus tard à la main (c'est ce que je fais quand j'édite mes sauvegardes). Si ce genre de trajet est tagué, par une couleur ou autre, ils seront faciles à retrouver.
Faut faire attention car à chaque importation de fichier MYP, le tableau est vidé de son contenu, donc toutes les personnalisations faites sont supprimées... Donc à moins de copier le fichier excel, ou bien la feuille de calcul, c'est peine perdue.
De toute manière, retrouver les infos manquantes est à mon avis pas faisable, sauf sur les adresses si on fait l'hypothèse que c'est celle d'arrivée du trajet n qui est correct pour remplir celle de départ du trajet n+1.
 

J'ai fait buguer le forum, mon message dépassait les 10 000 caractères...
Donc j'ai coupé en deux parties.





:coucou:

Si c'est tantôt l'adresse de départ, tantôt l'adresse d'arrivée qui est fausse, on ne peut rien faire malheureusement. o_O

et également les 2 erronées


La seule solution me paraît être de les remplir plus tard à la main (c'est ce que je fais quand j'édite mes sauvegardes). Si ce genre de trajet est tagué, par une couleur ou autre, ils seront faciles à retrouver.

de toute façon ce sera des infos forcées
il doit y avoir la possibilité de forcer ces infos avec une police et une couleur de texte différente des autres (par ex rouge + gras)[/QUOTE]

Après, je peux peut être arriver à faire écrire un fichier JSON à partir des données présentes...
Voir même mieux, si possible, ne faire ajouter au tableau déjà rempli que les nouveaux trajets, car là tout disparait à chaque import, et tout est rechargé.
Mais là va falloir coder autrement la gestion des données extraites... Mais ça doit être faisable -> TO-DO List aussi


:coucou: C'est effectivement cela : tu as un VIN, puis tous ses trajets; ensuite un autre VIN et ses trajets, et ainsi de suite
Yep, ça je l'avais compris ;)
Voir une réponse précédente ;)

Je te réponds ici à ta question posée dans l'autre discussion
Pour faire cela, il faut utiliser les forms dans Excel VBA : en gros, un formulaire où tu mets une liste déroulante de choix du VIN, 2 boutons OK et Annuler.
En entrée dans la form, tu remplis la liste déroulante des VIN que tu as trouvés dans le .myp
Et tu testes le retour de la from : si Annuler => tu quiites ta procédure. Si ok, tu traites les données du VIN choisi
Ha :D Et bien nickel ^^
Si tu veux le coder, fonce ;)
Je suis en train de préparer un dépôt GitHub pour poser le code source, et la version Excel du fichier ;)

Haaaa, au fait, je n'ai pas du tout penser à le préciser dans le premier post, mais il faudrait que vous précisiez systématiquement à chaque remontée de bug avec quelle version d'Excel vous bossez :) et l'OS (des fois que).
Je reprécise que pour le moment je ne teste que sous windows.
(je vais tenter sur mon mac avec mes fichiers tests fonctionnels sous windows pour voir ^^ mais ce n'est pas la priorité pour le moment
Version macOS -> to-do list)
 

Je reprécise, passer par le MP pour avoir mon mail si vous voulez m'envoyer vos fichiers MYP. Ce sera plus pratique.
 

Et reconstituer un trajet manquant, c'est extrapoler beaucoup de chose... QUID de la distance parcourue ? de la destination (autant pour la point de départ c'est le même que le précédent, autant tout le reste est inconnu.
Je pense que c'est une usine à gaz à faire.
Le seul truc que je pourrais envisager c'est mettre une ligne avec l'ID du trajet manquant et le reste des cellules de la ligne grisée, pour montrer qu'il manque un trajet à cet endroit. Je vois déjà comment le coder, enfin l'algorithme, car le code, c'est une autre histoire. Faudra que je mette sur papier mon idée. Mais je pense y arriver. -> TO-DO List

La distance parcourue ? C'est tout simplement le endMileage du trajet précédent moins le startMileage du trajet suivant.Et comme je l'ai déjà écrit, la destination d'un trajet c'est le départ du trajet suivant.

Encore une fois, la majorité des données sont redondantes, elles sont déjà là en cas de perte d'un seul trajet, mais pas à l'endroit habituel, alors autant en profiter.

L'algorithme est d'une simplicité biblique.

A la fin de l'importation, il suffit d'une boucle sur les trajet importés. Si l'ID d'un trajet moins l'ID du trajet suivant est égal à 2, c'est qu'il en manque un. Il suffit alors de :
  1. le créer avec l'ID qui manque,
  2. récupérer les données endPosLatitude, endPosLongitude, endPosAddress et endMileage du trajet précédent pour les coller dans startPosLatitude, startPosLongitude, startPosAddress et startMileage du trajet créé
  3. récupérer les données startPosLatitude, startPosLongitude, startPosAddress et startMileage du trajet suivant pour les coller dans endPosLatitude, endPosLongitude, endPosAddress et endMileage du trajet crée
  4. mettre endMileage - startMileage du trajet courant dans distance du trajet courant.
Si le GPS n'est pas précis et que les latitudes, longitudes et adresses ne sont pas parfaites, on s'en moque éperdument. Ça en change rien de les récupérer des trajets adjacents.

Ce qui pourrait être extrapolé :
  1. maintenanceDays, maintenanceDistance, maintenancePassed, alertsActive, alertsResolved. C'est assez trivial à faire mais assez inutile aussi.
  2. fuelAutonomy, fuelLevel, consumption : C'est assez simple à partir de la consommation moyenne, du kilométrage parcouru qui est parfaitement connu et de valeurs du trajet précédent, pas forcément très utile non plus.
  3. alertsActive, alertsResolved : C'est aussi assez simple en fonction des valeurs avant et après. Mais pas forcément très utile.
Ce qui est difficilement extrapolable et devrait être entré manuellement :
  1. startDateTime et endDateTime.
 
  • J'aime
Reactions: MilesTEG1

Il y a 3640 trajets dans le premier VIN qui se fini par 33. Et il y en a 157 dans le second VIN qui se fini par 86.
Pourquoi est-ce ainsi je ne sais pas.

:coucou:
par ta remarque je crois que j'ai compris
lors de ma livraison de la dernière T9 en 01/2020 j'avais tout préparé avec le VIN de la nlle sur l'appli, et j'avais conservé la précédente, je ne l'ai supprimé que par la suite lors de mise en service de la nlle appli MyPeugeot.fr

tu parles j'y pensais à ce cas de figure

voilà pourquoi tout est clair, même si c'est "relativement" faux chez moi c'est une situation plausible qui peut encore se produire

je viens de vérifier l'autre appli ne vérifier ce cas précis avec 2 VIN,il y avait simplement l’enchaînement des trajets, il me faut vérifier mais j'ai peut- être retrouvé mes 36 ou 39 km d'écart, et non après vérif ce n'est pas le cas

j'en profite pour une évolution qui serait (selon moi) intéressante
lors de l'introduction du fichier .myp de rester sur l'emplacement du dernier .myp au lieu de revenir systématiquement au C:
 
Dernière édition:

On peut artificiellement copier l'adresse de fin de parcours dans celle de début du suivant, mais pourquoi ne pas faire l'inverse ? Et du coup comment décider ?
Un élément de réponse d'aide à la décision : le GPS est (très) souvent mieux synchronisé à l'arrivée (puisque ça fait un moment qu'il est actif) qu'au départ, où il faut le temps d'accroche des satellites.
Tu auras compris que je penche pour l'idée de @janfi67 de dire qu'il vaut mieux recopier celle d'arrivée dans celle de départ du trajet suivant
Et reconstituer un trajet manquant, c'est extrapoler beaucoup de chose... QUID de la distance parcourue ? de la destination (autant pour la point de départ c'est le même que le précédent, autant tout le reste est inconnu.
Je pense que c'est une usine à gaz à faire.
S'il faut généraliser, oui, ce ne serait pas simple
Par contre, pour UN (et un seul) trajet manquant entre 2 trajets existants (et uniquement à cette condition là), tu as du coup pas mal de paramètres dispo, pour ce trajet manquant :
* adresse de départ = adresse d'arrivée du trajet n-1
* adresse d'arrivée = adresse de départ du trajet n+1
* distance = (nb kms départ trajet n+1) - (nb kms arrivée trajet n-1)
* consommation = s'il exite déjà un trajet identique dans les précédents, prendre cette valeur, sinon mettre la valeur moyenne de la conso (ce qui ne fera rien changer, et sur des centaines de trajets, l'erreur sera à la marge)
Il doit y avoir moyen de différencier l'écriture pour les deux VIN, voir de demander à choisir lequel utiliser -> TO-DO List.
Regarde tes MP
 
Dernière édition:
  • J'aime
Reactions: janfi67

:coucou:
lors de ma livraison de la dernière T9 en 01/2020 j'avais tout préparé avec le VIN de la nlle sur l'appli, et j'avais conservé la précédente, je ne l'ai supprimé que par la suite lors de mise en service de la nlle appli MyPeugeot.fr
tu parles j'y pensais à ce cas de figure
voilà pourquoi tout est clair, même si c'est "relativement" faux chez moi c'est une situation plausible qui peut encore se produire
Certaines personnes ont plus d'une voiture, donc le cas existe déjà et va perdurer.
 
  • J'aime
Reactions: MilesTEG1

La distance parcourue ? C'est tout simplement le endMileage du trajet précédent moins le startMileage du trajet suivant.Et comme je l'ai déjà écrit, la destination d'un trajet c'est le départ du trajet suivant.

Encore une fois, la majorité des données sont redondantes, elles sont déjà là en cas de perte d'un seul trajet, mais pas à l'endroit habituel, alors autant en profiter.

L'algorithme est d'une simplicité biblique.

A la fin de l'importation, il suffit d'une boucle sur les trajet importés. Si l'ID d'un trajet moins l'ID du trajet suivant est égal à 2, c'est qu'il en manque un. Il suffit alors de :
  1. le créer avec l'ID qui manque,
  2. récupérer les données endPosLatitude, endPosLongitude, endPosAddress et endMileage du trajet précédent pour les coller dans startPosLatitude, startPosLongitude, startPosAddress et startMileage du trajet créé
  3. récupérer les données startPosLatitude, startPosLongitude, startPosAddress et startMileage du trajet suivant pour les coller dans endPosLatitude, endPosLongitude, endPosAddress et endMileage du trajet crée
  4. mettre endMileage - startMileage du trajet courant dans distance du trajet courant.
Si le GPS n'est pas précis et que les latitudes, longitudes et adresses ne sont pas parfaites, on s'en moque éperdument. Ça en change rien de les récupérer des trajets adjacents.

Ce qui pourrait être extrapolé :
  1. maintenanceDays, maintenanceDistance, maintenancePassed, alertsActive, alertsResolved. C'est assez trivial à faire mais assez inutile aussi.
  2. fuelAutonomy, fuelLevel, consumption : C'est assez simple à partir de la consommation moyenne, du kilométrage parcouru qui est parfaitement connu et de valeurs du trajet précédent, pas forcément très utile non plus.
  3. alertsActive, alertsResolved : C'est aussi assez simple en fonction des valeurs avant et après. Mais pas forcément très utile.
Ce qui est difficilement extrapolable et devrait être entré manuellement :
  1. startDateTime et endDateTime.
J'aime ton post :)
Ca me donne des idées pour faire l'algorithme et le code ^^
Je copie le lien du post pour ma todo liste.

:coucou:
par ta remarque je crois que j'ai compris
lors de ma livraison de la dernière T9 en 01/2020 j'avais tout préparé avec le VIN de la nlle sur l'appli, et j'avais conservé la précédente, je ne l'ai supprimé que par la suite lors de mise en service de la nlle appli MyPeugeot.fr

tu parles j'y pensais à ce cas de figure

voilà pourquoi tout est clair, même si c'est "relativement" faux chez moi c'est une situation plausible qui peut encore se produire

je viens de vérifier l'autre appli ne vérifier ce cas précis avec 2 VIN,il y avait simplement l’enchaînement des trajets, il me faut vérifier mais j'ai peut- être retrouvé mes 36 ou 39 km d'écart
Donc tu veux quand même récupérer les infos des deux VIN présent dans le fichier de données ? Ou tu veux avoir le choix ?


Un élément de réponse d'aide à la décision : le GPS est (très) souvent mieux synchronisé à l'arrivée (puisque ça fait un moment qu'il est actif) qu'au départ, où il faut le temps d'accroche des satellites.
Tu auras compris que je penche pour l'idée de @janfi67 de dire qu'il vaut mieux recopier celle d'arrivée dans celle de départ du trajet suivant

S'il faut généraliser, oui, ce ne serait pas simple
Par contre, pour UN (et un seul) trajet manquant entre 2 trajets existants (et uniquement à cette condition là), tu as du coup pas mal de paramètres dispo, pour ce trajet manquant :
* adresse de départ = adresse d'arrivée du trajet n-1
* adresse d'arrivée = adresse de départ du trajet n+1
* distance = (nb kms départ trajet n+1) - (nb kms arrivée trajet n-1)
* consommation = s'il exite déjà un trajet identique dans les précédents, prendre cette valeur, sinon mettre la valeur moyenne de la conso (ce qui ne fera rien changer, et sur des centaines de trajets, l'erreur sera à la marge)Regarde tes MP
Yep, je vais voir mes MP après ^^
Avec ce qui a été dit précédemment et ce que tu viens de dire, on devrait pouvoir extrapoler quelques données pour un seul trajet manquant en effet. :)
 
  • J'aime
Reactions: janfi67


Donc tu veux quand même récupérer les infos des deux VIN présent dans le fichier de données ? Ou tu veux avoir le choix ?

:coucou:

il faut gérer plusieurs VIN (ce ne sera peut être pas le + simple)

Pour mon cas perso non (je n'ai qu'une Peugeot avec le NAC) la voiture de Mme a été supprimée de mon compte

mais il faut gérer ce cas puisqu'il y a des gars qui ont plusieurs Peugeot comme
@Phil_cofl et
@W13 qui a une multitude de voitures PSA

upload_2020-4-6_15-59-14.png
 
Dernière édition:
  • J'aime
Reactions: janfi67

:coucou:

Pour moi les km absent ce serait la différence entre trajet et trajet-1 quant la date celle de l'un ou de l'autre (de toutes façon ils sont absents) par contre ce serait bien de différencier la couleur que ça attire l'oeil
 

Ok, je prends note de tout ça.
Je pense pouvoir résoudre certaines demandes.
Cependant pour corriger le bug des distances de trajets, il me faudrait des fichiers de données qui génère ces erreurs.
Je m'engage à ne pas les diffuser ni a faire quoique ce soit avec hormis les tests d'importation.
Voir avec moi en MP ;)
 




:coucou:
depuis la version sur dropbox tu en as installé et diffusée une autre version