Récupérer son prix de carburant (encore) avec le multiscraping

ça résume aussi ma position…

1 « J'aime »

Bonjour,

En ce qui me concerne, je souhaiterais récupérer le prix du carburant sous la forme d’un nombre et pas d’un string.
Ou alors pouvoir modifier ce string en nombre via une fonction dans NodeRed.

Quelqu’un a une idée pour réaliser cela ?
Je vous en remercie d’avance.
Pascal

Salut,
De base, le jinja permet de faire ça

Bonjour Pulpy,
Donc si j’ai bien compris, il faudrait dans ce cas créer le template suivant pour éliminer l’unité de mesure (€/l) et changer la virgule en point puis convertir en nombre :
float {{ value|replace(' €/l','')|replace(',','.')|float(0) }}
J’ai testé dans la page modèle et cela semble OK.
Maintenant il reste à appliquer ce template au scrape suivant :

  - platform: scrape
    resource: https://carbu.com/belgique/index.php/station/makro/sint-pieters-leeuw/1600/1042
    select: ".price"  
    index: 2
    name: makro_leeuw_prix_diesel

Comme ceci ?

  - platform: scrape
    resource: https://carbu.com/belgique/index.php/station/makro/sint-pieters-leeuw/1600/1042
    select: ".price"  
    index: 2
    name: makro_leeuw_prix_diesel
      float {{ .price|replace(' €/l','')|replace(',','.')|float(0) }}

Merci d’avance.

Presque, la logique c’est bon, mais il y a quelques erreurs.

  • c’est pas float mais value_template, c’est un élément obligatoire de la construction.
  • le résultat avant la tranformation est toujours value, pas .price
  • il faut virer la virgule avant de faire le reste, sinon ça ‹ donne › une partie entière et les décimale separées
    value_template: "{{ value|replace(',','.')|replace(' €/L','')|float(0) }}"

Pour le reste ça semble ok. Attention, tu es utilise ‹ scrape › et pas le ‹ multiscraping › comme le sujet ici

OK, je n’y serais pas arrivé sans toi car à la lecture du templating, c’est pas évident de comprendre. Oui, dans mon exemple, j’ai utilisé un scrape mais la logique doit être la même pour le multiscraping.
J’ai effectivement vu pour les priorités des « | ». J’étais à côté !
Un grand merci.
C’est fou que tu répondes même un dimanche soir. :+1: :+1: :+1:
Bonne fin de soirée.

1 « J'aime »

Je n’arrive pas à comprendre comment afficher l’image de chaque station avec le CSS…si tu peux m’expliquer ?

Et bien ce n’était qu’une piste à creuser.

Mais comme je l’ai dit plus haut, je suis pas « ouf » en css et je n’ai pas vraiment eu le temps de creuser.

A l’heure où je te parle, je ne suis toujours pas convaincu que ce soit possible.

Bref si qqn d’affûté en css passe par là, son aide est la bienvenue :wink:

Bonjour,

J’ai une petite question je suis en train de mettre en place du multiscraping en test sur le carburant histoire de comprendre le mécanisme.

J’essai de voir si on peut historiser dans HA les valeurs, je suis toujours un gros débutant dans HA, mais le scraping m’intéresse pour d’autre valeur, mais pour d’autre valeur j’ai ce besoin d’historiser.

Si vous avez des pistes pour cela je suis preneur :slight_smile:

Salut
Rien de spécial à faire pour l’historisation… Ça marche tout seul

Ha… merde j’ai du raté un truc alors. Merci pour l’info en tout cas :+1:

Avec une petite correction : ça marche tout seul pour l’état les attributs secondaires ne sont pas historisés

Ha c’est ballot c’est en effet l’historisation des prix m’intéressait. Peut être qu’avec un scrapping valeur par valeur serait plus judicieux

Le scrapping 1 par 1 je trouve ça couteux…
Je vois pas bien le cas d’usage, mais mettre le prix le moins cher pour 1 carburant de la station dans un sensor en plus ça pourrait être une soluce

L’idée ensuite c’était pouvoir faire un graphique basé sur l’historique

Oui je me doute bien. Il faut quand même que tu réfléchise bien. Plusieurs carburants et / ou plusieurs stations ça rends vite les choses illisibles
Pour ma part je trouve que ça n’a qu’un intérêt au début (pour apprendre ha) : à l’usage, on regarde plus quelle est la station la moins chère ou sa préférée. Et quand il faut de l’essence difficile de patienter. A l’inverse aller faire le plein car pas cher sauf promo c’est assez rare. Et puis c’est de toute façon un gain en centimes

vous pouvez créer une entité à partir d’un attributs secondaire (ou sous attributs selon comment l’appel;) ) et cela permettra de garder l’historique il me semble bien.

Comme je le disais je me fais la main avec les carburants, le but final sera d’utiliser le scrapping sur une autre source, le prix du carburant c’est juste une excuse pour l’entraînement :stuck_out_tongue_closed_eyes:

Intéressant ça, faut que je regarde comment faire

Il y a un tuto sur la création d’entités à partir d un attribut. Pour le sous attribut ça doit être dans les commentaires de ce tuto justement.

1 « J'aime »