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

19/09/2022 - Refonte Complete du tuto suite à la reprise du developpement et à l’évolution du plugin plugin-prixcarburants

Au vu des évolutions du plugin, le tuto sera beaucoup plus simple.
Un seul bloc code pour changer les logos des stations à essence en s’evitant de très fastidieuses images sous condition

Dans l’ensemble du tuto, je ne garde que les 3 stations les moins chères (TOP 3). Si vous en souhaitez plus, le tuto sera à adapter en conséquence.

Dans tout le tuto, je considère que votre equipement plugin-prixcarburants est déjà paramétré et opérationnel. Ma config. J’utilise la position Jeedom Connect pour actualiser le prix en fonction de la ou je suis


1 - Créer un widget de type générique numérique

1 - renseigner le champ statut avec la commande [top 1 prix]
2 - créer dans les infos complémentaires 3 infos avec les commandes [Top 1 Adresse], [Top 1 MAJ] et [Top 1 Distance]
3 - renseigner le champ sous-titre comme vous le souhaitez, pour ma part , sous-titre personnalisé:

#[xxxxx][xxxxx][Top 1 Distance]# km 
#[xxxxx][xxxxx][Top 1 MAJ]#

4 - cocher « bloquer la vue detail » qui est inutile
5 - mettre une image par defaut, n’importe laquelle, l’important, c’est qu’un image soit présente

Ensuite cote APP MOBILE, en personnalisation, modifier le champ titre pour afficher l’adresse du TOP 1, #[xxxxx][xxxxx][Top 1 Adresse]

RENOUVELER cette OPERATION POUR LE TOP 2 et le TOP 3

2 - Créer un widget Webview pour avoir le lien vers Waze (si vous préferez google map, il suffira de prendre l’autre lien et changer l’icone :wink:

1 - renseigner le champ statut avec la commande [Top 1 Waze]
2 - Mettre l’icone Waze comme image par defaut
3 - affichage par defaut : vignette

Ensuite cote APP MOBILE, en personnalisation, masquer le nom, le sous-titre et le statut

RENOUVELER cette OPERATION POUR LE TOP 2 et le TOP 3

mettez en page votre page Jeedom connect avec les grilles avancées pour avoir un affichage comme ceci

scenario de mise à jour automatique des icones
Declencheur : les 3 commandes [Top 1 Logo], [Top 2 Logo], [Top 2 Logo] de votre équipement
Contenu :
4 commandes actions de type tag pour indiquer les variables du bloc code :

  • Equipement : Le nom (sans les #) de l’équipement concerné au format [objet][equipement]
  • Top1WidgetId : Id du widget TOP 1 créé plus haut
  • Top2WidgetId : Id du widget TOP 2 créé plus haut
  • Top3WidgetId : Id du widget TOP 3 créé plus haut

Puis un bloc code que vous ne devriez pas avoir besoins de modifier

require_once dirname(__FILE__) . '/../../plugins/JeedomConnect/core/class/JeedomConnectWidget.class.php';

// mise à jour de l'icone/marque de la station à essence
$tags=$scenario->getTags();     // récupératon des tag du scénario
$eqLogicName=$tags['#Equipement#'];
$widgetId1=$tags['#Top1WidgetId#'];
$widgetId2=$tags['#Top2WidgetId#'];
$widgetId3=$tags['#Top3WidgetId#'];

foreach (array(1, 2, 3) as $nbTop) {
  // mise à jour de l'image
  $IcoFileNameArray = explode('/',cmd::byString('#'.$eqLogicName.'[Top '.$nbTop.' Logo]#')->execCmd()) ;
  $IcoFileName = $IcoFileNameArray[6] ;
  $widgetKey='image';
  $widgetId=${widgetId.$nbTop} ;
  $scenario->setLog('Top '.$nbTop.' -> Logo : '.$IcoFileName.' -> WidgetId : '.$widgetId);
  $widgetValue= array('source' => 'user', 'name' => $IcoFileName, 'shadow' => false);
  JeedomConnectWidget::updateConfig($widgetId,$widgetKey,$widgetValue);
}

Et pour ceux que ca interesse le template du scenario
Scenarios_logos_carburant.json.txt (5,0 Ko)

Ensuite, charger l’integralité des logos des stations à essence dans Jeedom Connect
logos stations essence.zip.txt (293,8 Ko)

Si vous souhaitez vous amuser encore un peu :
Avoir un historique de l’évolution des prix
Possibilité de créer un widget historique pour suivre le cours du litre d’essence … activez l’historisation de [top 1 prix] coté plugin-prixcarburants et mettre en statut du widget cette commande

Pouvoir modifier le rayon de recherche
A suivre

6 « J'aime »