Tuto : integrer le prix des carburants dans jeedomconnect (+ geolocalisation temps reel et guidage vers les stations)

Pour ceux qui ont mis en place le bloc code ci-dessus et donc supprimer le crondaily … il convient de mettre en place une routine pour télécharger quotidiennement le fichiers des prix (fichier xml récupéré sur https://www.prix-carburants.gouv.fr/).
Ce fichier contient l’ensemble des prix de l’ensemble des stations françaises ((taille supérieure à 10Mo !).
De mon coté, j’ai rajouté ceci en début de scenario


Ainsi je récupère le fichier seulement lorsque le scenario est lancé via la programmation et pas lorsqu’il est lancé à la main (trigger == user)
mais vous pouvez faire ceci dans un second scenario planifié 1 fois par jour et avec juste le bloc code ci-dessous

//update file Prix carburant
prixcarburants::updatePrixCarburant();

encore une fois merci @chris94440 pour la commande :wink:

1 « J'aime »

Merci par contre quand je clique sur mon logo waze j’ai Alert une erreurest survenue lors du chargement de l’adresse…
Erreur code 2 err_name_not_resolved

Tu peux nous mettre l’adresse en question, celle qui est dans le widget , champ url

C’est bon tout est rentrer en ordre…

Comme l’a fait remarqué @loic69 dans un autre post la distance calculé est en ligne droite entre 2 points … pour palier à cela on peut se servir de l’api direction de google pour calculere distance entre notre position et la station essence … le problème va être le temps de traitement …car on va calculer la distance entre toutes les stations essences contenu dans le fichier par rapport à notre position GPS …
Si on se cantonne juste à calculer pour les stations se trouvant dans le rayon défini … on multiplie par 4 le temps
Temps sans calcul exact : < 5s
Temps avec calcul exact : < 16s
A vous de voir … mais c’est pas très pratique à l’utilisation sauf a rajouter un widget de type info qui dit si le calcul est terminé…

Exemple d’appel à l’api google
Le $from et $dest sont de la forme : latitude,longitude

function get_distance_api_google($scenario,$from, $dest,$googleApiKey ) {
    $options = array(
        CURLOPT_RETURNTRANSFER => true,     // return web page
        CURLOPT_HEADER         => false,    // don't return headers
        CURLOPT_FOLLOWLOCATION => true,     // follow redirects
        CURLOPT_ENCODING       => "",       // handle all encodings
        CURLOPT_USERAGENT      => "spider", // who am i
        CURLOPT_AUTOREFERER    => true,     // set referer on redirect
        CURLOPT_CONNECTTIMEOUT => 120,      // timeout on connect
        CURLOPT_TIMEOUT        => 120,      // timeout on response
        CURLOPT_MAXREDIRS      => 10,       // stop after 10 redirects
        CURLOPT_SSL_VERIFYPEER => false     // Disabled SSL Cert checks
    );

    $ch      = curl_init( 'https://maps.googleapis.com/maps/api/directions/json?origin='.$from.'&destination='.$dest.'&key='.$googleApiKey);
    curl_setopt_array( $ch, $options );
    $content = curl_exec( $ch );
    $err     = curl_errno( $ch );
    $errmsg  = curl_error( $ch );
    $header  = curl_getinfo( $ch );
    curl_close( $ch );

    //$header['errno']   = $err;
    //$header['errmsg']  = $errmsg;
    //$header['content'] = $content;

  	$distance = json_decode($content,true);
  	$nbKm=round(($distance['routes'][0]['legs'][0]['distance']['value']/1000),2);
  	//$scenario->setLog($nbKm);
    return $nbKm;
}

Moi, perso, l’API Google map , je ne la touche plus … ma dernière expérience a failli être très douloureuse (425€ si j’avais validé un mode de paiement !)

:roll_eyes:

2 « J'aime »

Oui effectivement c’est chiant cette histoire d’API payante… J’ai paye pour ma part une centaine d’euros pendant plusieurs mois le tps de trouver qui requaitait bcp…

La je suis juste sous la barre du gratuit mais il en faudrait très peu pour que ça recommence.
Donc calculer les distances des stations…

Je ne sais pas où il serait possible de trouver une API gratuite pour utilisation perso

Hello

Merci du partage @ngrataloup

Juste un truc que je viens de remarqué

Quand les prix sont plus d’actualité

Les balise

< div_style_ etc… …>

s’affiche

Regarde la capture tout en bas

Oui, lorsque la date de dernière mise à jour dépasse la valeur paramétrée, le plugin met des balises pour considérer le relevé comme expiré et l’afficher en rouge coté Jeedom… mais JC ne gère pas ces balises.

Le pb ne devrait pas se produire avec l’evolution du tuto qui integre la gestion de la localisation temps reel. utilises-tu celle-là ?

Si tu n’utilises pas ceci, il suffit d’augmenter la durée (ou le mettre à vide ou à 0 - pas essayé !) du champ « Considerer date relevé comme expirée (jours) : » pour que les balise « rouge » ne soient pas integrées au format date.

Tu peux ensuite dans tes widgets jeedom mettre en place des conditions sur les dates pour afficher un logo ou un fond d’ecran specifique (rouge !) si la date courantes est superieure à la date de la MAJ (commande TOP xx MAJ) + YY jours

Norbert

Re,

Je vais regardé ca, merci

Car la j’essai de comprendre cette partie

// Critères de navigation à personnaliser 
$appNavigation='waze';  // waze - googlemaps - aucun
$cmd_coord_gps_actuel = '#[Norbert][JC_Norbert][Position]#'; // commande de localisation
$widgetid_loc_top1 = 163 ;  // id du widget de type webview pour la localisation du top 1 sur Jeedomconnect
$widgetid_loc_top2 = 164 ;  // id du widget de type webview pour la localisation du top 2 sur Jeedomconnect
$widgetid_loc_top3 = 165 ;  // id du widget de type webview pour la localisation du top 3 sur Jeedomconnect

Ok, tiens moi au courant si c’est OK

@ngrataloup && @chris_77

Chris j’ai trouvé ton problème,

tes NULL NULL NULL
vienne du fait que dans l’application Jeedom Connect tu as pas activé
GEOFENCING et activer TRACKING

Si tu décoche c’est 2 paramètres , boum plus rien fonctionne

hello,

de quelle partie et de quel message parles tu ?

car avec @ngrataloup on avait vu le soucis…!

Celui la

Le pb datant du 6 janvier :wink: et corrigé depuis était lié au fait que pour le SP95E10, il fait juste indiqué E10 pour le type de carburant (contrairement à la liste de choix côté équipement). Mais sans doute que sans localisation, il est aussi affiché x3 null aussi

1 « J'aime »

Re,

Ok de ce fait , le fait de se trompé avec le type carburant et la géo non activé entraine la même erreur .

PS: Pour l’histoire des " div " je l’ai résolut en poussant à 40 jours :rofl:

1 « J'aime »

Merci soucis résolu, comme disait @ngrataloup (erreur de typo entre SP95E10 et E10)

Ouais j’ai pas fait gaffe la date !! :joy:

Me doute que depuis le temps c’étais résolu

1 « J'aime »

le plugin « prix carburant » est un super plugin, ( jeedomconnect) aussi .
Mais c’est dommage que le prix de beaucoup de stations service ne sont pas mis a jour regulierement via le site : https://www.prix-carburants.gouv.fr/
surtout en ce moment.

1 « J'aime »

Bonjour,
Ah bon ? je reçois tous les jours les prix via courriel du site, mais à une heure aléatoire et bien souvent, c’est rafraichi plus rapidement via le plugin :slight_smile:
Thierry