[Plugin Suivi Colis] Beta tests

Bonjour à tous,

Suite à l’abandon du projet plugin-suivreuncolis, j’ai créé un nouveau plugin : Suivi Colis

parcelTracking_icon

Il ne s’agit pas d’une reprise mais d’un réécriture complète du plugin avec l’utilisation d’une nouvelle API (parcelsapp). Il permet de suivre vos colis en provenance des principaux transporteurs français et internationaux (La Poste, Mondial Relay, Relais Colis, Colis Privé, Aliexpress, Shein, Amazon, eBay, FedEx, UPS, …).
Le plugin est d’ors et déjà dispo en beta sur le market : Jeedom Market

Le plugin utilise les API parcelsapp. Il vous faut créer un compte pour récupérer une clé API. Dans la version gratuite, vous disposez de 10 suivis sur une période glissante de 30 jours.
Lien : https://parcelsapp.com/

Le plugin permet l’envoi de notifications (via plugin-jeemate, plugin-jeedomconnect, plugin-slack, …)
Il dispose d’un widget personnalisé :

screenshot1

Je crée ce sujet pour effectuer des tests avant passage en stable. N’hésitez pas à utiliser le bouton « Community » du plugin pour créer un post ici. Pensez également à mettre les logs en debug et les poster avec votre message.

Bon tests et à vos retours :wink:

Xav

6 « J'aime »

Merci pour ce plugin.

Retour erreur javascript.

Capture d’écran du 2024-06-30 14-27-29

Je n’arrive pas à reproduire ! Tu as fait comment pour avoir cette erreur ?
Version Jeedom ? OS ?

Debian 11.


Informations Jeedom

Core : 4.4.5 (V4-stable)
DNS Jeedom : non

Plugin : Suivi Colis
Version : 2024-06-30 12:14:10 (beta)

Informations complémentaires

API Key present
Language : fr
Days : 4
Notifications cmd : #807#

Merci !
Je reproduis absolument pas chez moi sur mes 2 environnements :

  • Prod : deb11 & Jeedom 4.4.8.1 stable
  • Dev : deb12 & Jeedom 4.4.9 stable

Tu peux me pousser tous tes logs http.error ?
Ainsi que logs du plugin pour voir si le retour API d’un colis serait mal formaté ?
Merci

Hello,
moi aussi j’ai le problème.

https://XXX/index.php?v=d&p=dashboard&object_id=17	1	Uncaught SyntaxError: Unexpected token 'o', "not available" is not valid JSON
https://XXX/index.php?v=d&p=dashboard&object_id=17	1	Uncaught SyntaxError: Unexpected end of JSON input

Je me demande si le problème provient pas de la cohabitation des 2 plugins sur un même objet parent.

Mathieu

Ah ! C’est la différence avec mes 2 jeedom. Je n’ai pas l’ancien plugin d’installé.
Ce qui est bizarre, c’est que les classes n’ont pas le même nom ! Donc il ne devrait pas y avoir de souci. Et je n’ai besoin d’aucun token dans mon plugin :wink:

Les erreurs viennent peut-être juste de l’ancien plugin. Rien à voir avec celui-ci. Si tu le désinstalle ca donne quoi ?

Je n’ai jamais installé l’autre plugin.

Si cela ne te dérange pas, j’aimerais supprimer l’ancien quand tous mes colis auront été livrés :smiley:

En même temps, @Jeandhom semble avoir le problème sans avoir l’ancien plugin.
Mathieu

aucun souci !
Ca doit donc venir du retour API d’un colis !
Je vais regarder dès que j’ai les logs :wink:

10000|[Sun Jun 30 13:34:59.722309 2024] [php7:error] [pid 1367324] [client 192.168.1.11:45638] PHP Fatal error:  Uncaught Error: Call to a member function checkAndUpdateCmd() on null in /var/www/html/plugins/parcelTracking/core/class/parcelTracking.class.php:233\nStack trace:\n#0 /var/www/html/plugins/parcelTracking/core/ajax/parcelTracking.ajax.php(34): parcelTracking::synchronize()\n#1 {main}\n  thrown in /var/www/html/plugins/parcelTracking/core/class/parcelTracking.class.php on line 233, referer: http://xxxxxxxxxx.xxxxxxxx.fr/index.php?v=d&m=parcelTracking&p=parcelTracking&id=1493

c’est la seul erreur du jour, erreur, certainement due que je n’avais pas encore "Confirm your parcelsapp.com account".

[2024-06-30 17:00:21] DEBUG  : CronHourly
[2024-06-30 17:00:21] DEBUG  : ┌─Command execution : refresh
[2024-06-30 17:00:21] DEBUG  : | Parcel trackingId : xxxxxxxxxxxxxx - Destination country : France - Zipcode : xxxxx
[2024-06-30 17:00:21] DEBUG  : | Result getTrackingResult() request - step 1 : [200] - {"shipments":[{"states":[{"location":"xxxxx, xxxxxxxxx","date":"xxxxxxxxxxxxxxxxxxxx","carrier":0,"status":"En transit."},{"location":"xxxxx, xxxxxxxxx","date":"xxxxxxxxxxxxxxxxxxxx","carrier":0,"status":"En transit"},{"location":"xxxxxxxxxxxxxxxxxxxxx","date":"xxxxxxxxxxxxxxxxxxxx","carrier":0,"status":"xxxxxxxxxxxxxxxxxxxxxxxx "},{"location":"xxxxxxxxxxxxxxxxxxxxx","date":"xxxxxxxxxxxxxxxxxxxx","carrier":0,"status":"xxxxxxxxxxxxxxxxx"}],"origin":"xxxxxxxxx","destination":"France","carriers":["xxx","xxx","xxxxxxxxxxxxxxxxx","xxxxxxxxxxxxxx"],"externalTracking":[{"url":"xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx","method":"GET","slug":"xxxxxxxxxxx","title":"xxx"}],"services":[{"slug":"xxxxxxxxxxx","name":"xxx"},{"slug":"xxx","name":"xxx"},{"slug":"xxxxxxxxxxxxxxxxx","name":"xxxxxxxxxxxxxxxxx"},{"slug":"xxxxxx","name":"xxxxxxxxxxxxxx"}],"detected":[0],"detectedCarrier":{"name":"xxx","slug":"xxxxxxxxxxx"},"carrier":0,"checkedCountry":"France","checkedCountryCode":"FR","destinationCode":"FR","originCode":"xx","status":"transit","attributes":[{"l":"tracking_id","val":"xxxxxxxxxxxxxx"},{"l":"origin","val":"xxxxxxxxx","code":"xx"},{"l":"destination","val":"France","code":"FR"},{"l":"days_transit","n":"Jours en transit","val":"1"}],"trackingId":"xxxxxxxxxxxxxx","lastState":{"location":"xxxxx, xxxxxxxxx","date":"xxxxxxxxxxxxxxxxxxxx","carrier":0,"status":"En transit."}}],"done":true,"fromCache":true}
[2024-06-30 17:00:21] DEBUG  : | Result checklastState : no change
[2024-06-30 17:00:21] DEBUG  : └─End of parcel info refresh : [200]

Ah oui c’est fort probable !

Pour l’erreur http.error, cela vient du fait que tu as synchronisé sans avoir au préalable sauvegarder l’équipeemnt. Normalement je gère ce cas là et force un save avant mais ca ne fonctionne pas. Je reproduis chez moi aussi donc je vais corriger :wink:

1 « J'aime »

Bonjour @Xav-74

Installation sans souci via le github de mon coté. Félicitation, ca tourne déjà bien !

Quelques remarques / propositions par rapport à mes quelques minutes d’utilisation :
1 - Ne pas mettre le numéro de suivi (qu’on a pas toujours au moment de la commande) en obligatoire lorsqu’on crée un equipement
2 - possibilité sur le widget de rajouter le numéro de suivi (qui arrive après)
3 - forcer par defaut le pays de destination à France (ou le mettre en paramètre général du plugin)
4 - Rajouter une option générale pour forcer un objet pour tous les equipements créés

Norbert

1 « J'aime »

idem pour le code postal. :pray:

1 « J'aime »

Pour reproduire, il faut, je pense, avoir un équipement avec toutes les commandes infos "Not available"

[2024-06-30 20:00:12] DEBUG  : ┌─Command execution : refresh
[2024-06-30 20:00:12] DEBUG  : | Parcel trackingId : xxxxxxxxxxxxx - Destination country : France - Zipcode : xxxxx
[2024-06-30 20:00:13] DEBUG  : | Result getTrackingResult() request - step 1 : [200] - {"uuid":"xxxxxxxxxxxxxxxxxxxxxxxx","shipments":[]}
[2024-06-30 20:00:13] DEBUG  : | Result getTrackingResult() request - step 2 (0) : [200] - {"uuid":"xxxxxxxxxxxxxxxxxxxxxxxx","shipments":[],"done":false}
[2024-06-30 20:00:15] DEBUG  : | Result getTrackingResult() request - step 2 (1) : [200] - {"uuid":"xxxxxxxxxxxxxxxxxxxxxxxx","shipments":[{"error":"NO_DATA","carriers":["xxxxxxxx","xxxxxxxxxxxxxxxxx"],"services":[{"slug":"xxxxxxxx","name":"xxxxxxxx","error":"DOWN"},{"slug":"xxxxxxxxxxxxxxxxx","name":"xxxxxxxxxxxxxxxxx"}],"externalTracking":[{"url":"https://wwwwwwwwwwwwww/xxxxxx/xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx","method":"GET","slug":"xxxxxxxx","title":"xxxxxxxx"}],"checkedCountryCode":"FR","trackingId":"xxxxxxxxxxxxx","attributes":[{"l":"tracking_id","val":"xxxxxxxxxxxxx"}]}],"done":true}
[2024-06-30 20:00:15] DEBUG  : └─End of parcel info refresh : [200]

Depuis que cet équipement est correctement à jour, je n’ai plus d’erreur javascript.

Yes ! Corrigé dans la future beta :wink:
J’avais oublié ce cas !
Merci pour les tests !

PS : @OUARZA c’est fonctionnel de nouveau pour la Poste !

1 « J'aime »

Hello @ngrataloup

Facile à faire ! Je note :wink: Faut juste que je regarde les impacts si le user clique sur synchroniser, et que je gère ce cas !

C’est à dire « qui arrive après » ? Sur le widget le numéro de suivi est bien présent :stuck_out_tongue:

Ajouté dans la future beta !

Bonne idée ! Je rajoute ca asap

Je rajoute ca aussi :wink:

Vous êtes des feignasses :rofl: :rofl: :rofl: :rofl: :rofl:

3 « J'aime »

Rajouter un petit + coté Widget avec l’ouverture d’un popup pour saisir le numéro de suivi afin de ne pas devoir aller dans l’equipememnt pour le mettre à jour - C’est simple, non :sweat_smile:

Ah oui !! :rofl:
Bon je mets sur la ToDo mais cela arrivera surement après la sortie en stable de la première version parce que ca va demander pas mal de dev :stuck_out_tongue:
Ca va plaire à @OUARZA qui voulait pouvoir créer un colis depuis son design !

2 « J'aime »

Bonjour

Est-il possible de mettre plusieurs personnes en notification ?