Prix Carburants - compatible v4.2

Bonjour,

EDIT : Vu que le développement du plugin original a été repris, ce topic n’a plus lieu d’être. Merci de vous diriger vers ce topic :

Suite aux changements survenus sur la v4.2 liés à la sécurité, le plugin original de @floman321 n’est plus compatible avec Jeedom. Il reste toutefois fonctionnel pour les équipements déjà créés.

J’ai donc créé un fork pour modifier ce plugin et permettre de continuer à avoir le plugin « prix carburants » sur Jeedom.
Le fork est disponible dès maintenant ici :
https://github.com/DuchkPy/prixcarburants_v2

Les modifications actuelles permettent de rendre ce plugin compatible avec la v4.2 (et les prochaines versions), plus l’intégration des PR existant sur le dépôt initial.
Je remercie donc @noodom et @Bad pour leurs contributions.

Je suis en attente du statut développeur pour pouvoir publier ce plugin sur le market.

N’hésitez pas à le tester et à me faire vos retour !

5 « J'aime »

Hola !

Bonne initiative ! :wink:

Je ne suis pas certain d avoir le temps de faire les modifs tout de suite donc je te donne mes premieres remarques entre 2 insomnies a chaud (en lecture depuis mon tel)

  1. Le plugin ne peut pas fonctionner en l etat :frowning_face:
    Tu n’as fait que partiellement le renommage du plugin :
    Tu fais ce changement :
- class prixcarburantsCmd extends cmd {
+ class plugin_prixcarburantsCmd extends cmd {

(Perso j aurai plutot fait un prixcarburantsV2 et prixcarburantsV2Cmd)

Mais tu continues d instancier l ancienne class :

$prixcarburantsCmd = new prixcarburantsCmd();

Ca ne peut pas fonctionner :sweat_smile:

J imagine que ca doit etre pareil avec la class plugin_prixcarburants vs prixcarburants

  1. Il serait surement bon, tant qu a refaire le plugin, de profiter pour faire un petit nettoyage :slight_smile:
    Les fichiers stations.json et PrixCarburants_instantane.xml, ainsi que le rep listestations n’ont rien a faire dans le dossier class.
    Plutôt dans un dossier resources a la racine du plugin ? Ou core/config ? En tout cas, pas class :slight_smile:

Je continuerai la relecture demain si j ai un peu de temps :slight_smile:

1 « J'aime »

Bonjour,

Pourquoi n’essayez-vous pas de contacter le développeur original pour qu’il vous donne accès à son repo sur git histoire de ne pas créer de fork justement.

Avoir du plug-in dans le market quasi identique ne va pas être très clair.

Je suis assez d accord
Mais Perso je n ai pas trouvé son @ ni ici, ni sur git, ni sur d autres sites.jai juste vu qu il etait de bordeaux :slight_smile:

@tomitomas
Je me suis aussi dit que le suffixe « plugin_ » était étrange, quand j’ai posté sur le forum.
En effet, je me suis un peu emmêlé les pinceaux en renommant les instances, je vais revérifier ça.

@Mips
Tu as raison, ce serait plus facile ainsi.
J’ai essayé de le contacter. J’ai fait le tour de plein de site où son pseudo apparaît, sans trouver de moyen de contact.
J’ai juste vu qu’il n’y a plus rien de neuf (aucun post, aucune connexion) depuis mi-2021.
Le seul endroit où je n’ai pas pu tester, c’est via Facebook, vu que je n’ai pas de compte.
Mais si quelqu’un réussi à le contacter je suis preneur.

Bonjour, merci à toi pour l’instant j’ai copié les 2 correctifs que tu as indiqué sur le plugin existant en attendant si il faut basculer sur ton fork.
Merci pour ton travail.

En dernier recourt vous pouvez contacter l’équipe jeedom pour demander de reprendre le plugin en votre nom.
Ils essaieront d’abord de contacter l’auteur également.

Moi je serai VRAIMENT d’avis de garder le même nom de plugin pour éviter de devoir changer la configuration des équipements déjà existants.

Si ta demande de reprise aboutit (comme pour jmqtt avec Domochip et moi), tu pourras fournir la continuité attendue par la communauté, sans effort de leur part (ce qui est important) :wink:

aligné !
sauf que de base 2 plugins ne peuvent pas avoir le meme id …!

donc si pas de reprise possible, ni de rep du dev initial … pas d’autres choix :wink:

On est effectivement d’accord, mais rien n’empèche de passer à la volée sur la repo Github, avec un scenario et un bloc code.

(A utiliser à vos risques et périls, en connaissance de cause)
Par exemple, pour aller sur le Github le code serait le suivant :

$p = update::byLogicalId("prixcarburants");
$scenario->setLog('old cfg: '.json_encode($p->getConfiguration()));
$p->setConfiguration("market", null);
$p->setConfiguration("user", "DuchkPy");
$p->setConfiguration("repository", "plugin_prixcarburants");
$p->setConfiguration("version", "master");
$scenario->setLog('new cfg: '.json_encode($p->getConfiguration()));
$p->save();

Pour revenir sur le Market :

$p = update::byLogicalId("prixcarburants");
$scenario->setLog('old cfg: '.json_encode($p->getConfiguration()));
$p->setConfiguration("market", 1);
$p->setConfiguration("user", null);
$p->setConfiguration("repository", null);
$p->setConfiguration("version", "stable");
$scenario->setLog('new cfg: '.json_encode($p->getConfiguration()));
$p->save();

Bad

S’il y a la possibilité de reprendre le plugin sans avoir besoin de chnager l’id, ce serait super.

En attendant, je vais remettre sur la branche principale l’id d’origine et créer une branche avec un id différents.
Vu que ce n’est pas trop de boulot de juste renommer.

Je ferai signe ici quand j’aurai corrigé les différentes choses mentionnée plus haut (ce soir ou demain soir)

Pour info, moi j’ai une erreur « Call to a member function getSource() on bool » sur la page gestion des plugins. Je suis en version 4.2.11 de Jeedom et la version git du jour que j’ai récupéré. Du coup impossible d’activer le plugin.

Je viens de tester d’installer la version, avec succès, en 4.2.11 et 4.2.12
Aussi, la fonction getSource n’est pas utilisé par ce plugin.

Peux-tu m’indiquer quels paramètres tu as renseigné dans la configuration « Github » pour installer cette version ?
J’ai pour ma part :

  • ID logique du plugin : prixcarburants
  • Utilisateur ou organisation du dépôt : DuchkPy
  • Nom du dépôt : prixcarburants
  • Branche : master

Je n’ai pas eu d’erreur sur la page de gestion des plugins, et le plugin fonctionne correctement.

Je viens aussi de tester la variante v2, pour laquelle j’ai tout juste fini de tout renommer. En l’installant avec les paramètres suivants :

  • ID logique du plugin : prixcarburants_v2
  • Utilisateur ou organisation du dépôt : DuchkPy
  • Nom du dépôt : prixcarburants_v2
  • Branche : master

Et ça fonctionne de la même façon. (Pour l’instant j’ai juste changer l’ID, par rapport à la branche master)

J’ai pris le zip (https://github.com/DuchkPy/prixcarburants/archive/refs/heads/master.zip), je l’ai décompressé dans le dossier plugins, renommé en prixcarburants puis j’ai cette erreur en allant sur la page gestion des plugins.
Même souci avec la v2, donc c’est possible que ça vient de chez moi. Pourtant pas de problème avec mes 40taines de plugins.

J’ai reproduit ton erreur, en me trompant.
En effet, j’ai voulu installer la version « prixcarburants » sur mon installation contenant déjà le plugin original ayant le même nom et le même ID.

Une fois le dossier « prixcarburants » supprimer via l’éditeur de fichiers, l’erreur a disparu, et j’ai pu installer les 2 versions sans soucis en passant par ce que j’ai détaillé plus haut.

Hello, je viens de voir une mise a jour sur le market, donc c’est toi qui a repris les droits ?

Ahh oui, en effet, ça a été mis à jour.
Non ce n’est pas moi, mais floman321 qui a fait quelques mises à jour sur Github, mais pour l’instant pas ma proposition pour être compatible v4.2

Bonjour à tous,

Je viens de mettre à jour la branche v2 du fork, pour y inclure quelques modifications :
Ajout de :

  • l’adresse complète, en plus de l’adresse raccourcie déjà disponible. Caché par défaut
  • les coordonnées GPS, latitude et longitude, dans 2 commandes d’info distinctes. Cachés par défaut.
  • liens Google maps et Waze pour créer des itinéraires. Cachés par défaut. Merci à @sagitaz pour sa proposition de code.

Du fait de ces changements, le choix de la méthode de localisation n’est plus lié seulement au choix de station par localisation, mais se fait dans la partie « style d’affichage » (je réfléchis à renommer cette section).

2 « J'aime »

j’ai essayer d’installer la v2 est j’ai systematiquement un :

Avec la master pas de soucis.

0194|[Sun Feb 20 10:08:25.660462 2022] [php7:error] [pid 19633] [client 192.168.1.71:50480] PHP Fatal error:  Uncaught Error: Call to a member function getSource() on bool in /var/www/html/core/class/plugin.class.php:1239
0195|Stack trace:
0196|#0 /var/www/html/core/class/utils.class.php(67): plugin->getSource()
0197|#1 /var/www/html/core/ajax/update.ajax.php(44): utils::o2a(Object(plugin))
0198|#2 {main}
0199|thrown in /var/www/html/core/class/plugin.class.php on line 1239, referer: http://192.168.1.20/index.php?v=d&p=update

Même erreur.
J’y suis arrivé en récupérant le zip de la v2 directement
Adresses et coordonnées GPS et liens Waze/gmap ont bien été créé (pas encore testé)