Bonsoir,
Chez moi l’intégration de max5962 pour récuperer les prix du carburant fonctionne de moins en moins bien :
- Plusieurs erreurs de connexion dans les logs pendant le journée …
- Les fichiers data qui trainent (15Mo) si on les purge pas à la main etc, virés par un cron !
Du coup, j’ai décidé d’utiliser le multiscraping :
L’idée c’est d’avoir un sensor par station et tous les attributs qui vont bien, sans pour autant télécharger des dizaines de Mo, le tout en une seule requête, et en ayant la main sur la fréquence de mise à jour
J’ai donc crée mon nouveau sensor :
multiscrape:
- name: carburants_auchan_bordeaux
resource: "https://carbu.com/france/index.php/station/auchan/bordeaux/33000/5246"
scan_interval: 3600
sensor:
- unique_id: carburants_auchan_bordeaux
select: "[itemtype='http://data-vocabulary.org/Organization'] h1"
value_template: "{{ value }}"
attributes:
- name: sp98_name
select: ".col-xs-12:nth-of-type(1) h2"
- name: sp98_price
select: ".col-xs-12:nth-of-type(1) h1.price"
value_template: "{{ value|replace(',','.') }}"
- name: sp98_date
select: ".col-xs-12:nth-of-type(1) p.sources"
value_template: "{{ value.split(' ')[0] }}"
- name: e10_name
select: ".col-xs-12:nth-of-type(3) h2"
- name: e10_price
select: ".col-xs-12:nth-of-type(3) h1.price"
value_template: "{{ value|replace(',','.') }}"
- name: e10_date
select: ".col-xs-12:nth-of-type(3) p.sources"
value_template: "{{ value.split(' ')[0] }}"
- name: gpl_name
select: ".col-xs-12:nth-of-type(6) h2"
- name: gpl_price
select: ".col-xs-12:nth-of-type(6) h1.price"
value_template: "{{ value|replace(',','.') }}"
- name: gpl_date
select: ".col-xs-12:nth-of-type(6) p.sources"
value_template: "{{ value.split(' ')[0] }}"
L’astuce c’est de changer les nth-of-type(XXXX)
dans le select:
pour basculer d’un tableau à l’autre. @Clemalex en parle très bien dans son sujet, pour trouver les bonnes valeurs : 0/1/2/3/4
https://forum.hacf.fr/t/comparer-les-prix-des-carburants-de-vos-stations-preferees/434
Le reste c’est de la mise en forme / tri pour récupérer les carburants qui vous concernent
Au final le sensor est comme ceci :
Et du coup l’affichage est ultrasimple
type: entities
card_mod:
class: top-level-card
title: Prix carburants
entities:
- entity: sensor.carburants_auchan_bordeaux
type: custom:multiple-entity-row
name: Auchan
icon: mdi:gas-station
show_state: false
entities:
- attribute: sp98_price
name: SP98
- attribute: e10_price
name: E10
- attribute: gpl_price
name: GPL
Petite astuce, pour trouver facilement le bon select
, je suis passé par cette extension Chrome :