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

Au démarrage, ça trace…

Au cas ou, tu as bien installé l’intégration depuis HACS

@Lesuperlolo
Bonjour,
Dans ton configuration.yaml tu as bien c’est ligne:

group: !include groups.yaml
automation: !include automations.yaml
script: !include scripts.yaml
scene: !include scenes.yaml
sensor: !include sensor.yaml
template: !include template.yaml
recorder: !include recorder.yaml
multiscrape: !include multiscrape.yaml  #c'est ligne
utility_meter: !include utility_meter.yaml

Dans le dossier /config/ ta le fichier multiscrape.yaml.

dans multiscrape.yaml:

- name: carburants_carrefour_xxxxxx
  resource: "https://carbu.com/france/index.php/station/carrefour-contact/xxxxxx/xxxxx/12345"
  scan_interval: 3600
  sensor:
    - unique_id: carburants_carrefour_xxxxxx
      select: "[itemprop='name']"
      value_template: "<img src='/local/images/carrefour.png' style='height:20px;'> {{ value }}"
      attributes:
        - name: b7_name
          select: ".col-xs-12:nth-of-type(3) h2.title"
        - name: b7_price
          select: ".col-xs-12:nth-of-type(3) h1"
          value_template: "{{ value|replace(',','.') }}"
        - name: b7_date
          select: ".col-xs-12:nth-of-type(3) p.sources"
          value_template: "{{ value.split(' ')[0] }}"

Tout est bon pour toi ?

Si tout est bien configurer et qu’il y a des erreurs, tu les verra dans les logs

2023-05-08 09:36:09.274 ERROR (MainThread) [custom_components.multiscrape.coordinator] carburants_eleclerc_xxxxxxxx # Updating failed with exception:
2023-05-08 09:36:09.420 ERROR (MainThread) [custom_components.multiscrape.coordinator] carburants_geant_xxxxxxxxxx # Updating failed with exception:

J’étais justement en train de penser à ça en faisant les courses…
Ça fonctionne, mais il ne faut pas que mon code démarre par multiscrape: car c’est déjà dans le fichier concerné.
@Pulpy-Luke doit l’avoir indiqué autrement

Si tu split ta configuration avec multiscrape: !include multiscrape.yaml , ta pas besoin de mettre dans le fichier multiscrape.yaml en début de ligne multiscrape:.
tu commence directement par:

- name: carburants_carrefour_xxxxxx
  ...

Oui, sur son exemple du tuto c’est dans configuration.yaml.
la capture qu’il ta faite, c’est splitter avec le fichier multiscrape.yaml.
Il est fatiguer, faut l’excuser tellement il aide les gens :wink:

1 « J'aime »

Je suis d’accord, Mais Pulpy a bien un fichier séparé dans sa capture VS Code, et il indique pourtant le libellé en tête…
Bref, ça fonctionne.

c’hui pas fatigué :wink:
En fait depuis 18 mois (date du tuto), j’ai un peu revu ma config :wink:

Je ne l’ai pas précisé, ça me semblait évident, c’est le principe pour chaque include. Mais je le note pour le rappeler le prochain coup

1 « J'aime »

Un message a été scindé en un nouveau sujet : REST et historique

Salut,
heureusement que tu avait bien expliquer , car il y a eu du changement dans le titre.
Il on remplacer la , par un -.
Maintnant c’est Andorra Les prix du diesel - 06-nov-2023

        - name: b7_date
          select: "h1"
          value_template: >-
            {% set value=value.split('- ')[1]|trim %}
            {% set months = {"jan":"01","feb":"02","mars":"03","avr":"04","mai":"05","juin":"06","juillet":"07","agosto":"08","août":"08","sept":"09","oct":"10","nov":"11","déc":"12"} %}
            {{value.split('-')[0] }}/{{months[value.split('-')[1]]}}/{{value.split('-')[2][2:4] }}

j’ai modifier en {% set value=value.split('- ')[1]|trim %} et ca passe :slight_smile:

C’est comme les mois, des fois il son en entier et des fois en abréger. Maintenant c’est quand abréger :rofl:

Bonjour

J’ai suivi le tuto, mais je bute sur des données qui sont inconnues

Screenshot_20231111_112609

J’ai l’impression que c’est un souci avec les index de la table

le fichier « multiscrape.yaml »


- name: carburants_q8easy_xxxx
  resource: "https://carbu.com/belgique/index.php/station/q8-easy/xxx/xxx/xxxx"
  scan_interval: 3600
  sensor:
    - unique_id: carburants_q8easy_xxxx
      select: "[itemtype='http://data-vocabulary.org/Organization'] h1"
      value_template: "{{ value }}"
      attributes:
          - name: sp95_name
            select: ".col-xs-12:nth-of-type(0) h2"
          - name: sp95_price
            select: ".col-xs-12:nth-of-type(0) h1.price"
            value_template: "{{ value|replace(',','.')|replace(' €/L','') }}"
          - name: sp95_date
            select: ".col-xs-12:nth-of-type(0) p.sources"
            value_template: "{{ value.split(' ')[0] }}"
          - 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(',','.')|replace(' €/L','') }}"
          - name: sp98_date
            select: ".col-xs-12:nth-of-type(1) p.sources"
            value_template: "{{ value.split(' ')[0] }}"
          - name: diesel_name
            select: ".col-xs-12:nth-of-type(3) h2"
          - name: diesel_price
            select: ".col-xs-12:nth-of-type(3) h1"
            value_template: "{{ value|replace(',','.')|replace(' €/L','') }}"
          - name: diesel_date
            select: ".col-xs-12:nth-of-type(3) p"
            value_template: "{{ value.split(' ')[0] }}"
          - name: e85_name
            value_template: "-"
          - name: e85_price
            value_template: "-"
          - name: e85_date
            value_template: "-"
- name: carburants_esso_xxx
  resource: "https://carbu.com/belgique/index.php/station/esso/xxxx/xxx/xxx"
  scan_interval: 3600
  sensor:
      - unique_id: carburants_esso_xxxxx
        select: "[itemtype='http://data-vocabulary.org/Organization'] h1"
        value_template: "{{ value }}"
        attributes:
            - name: sp95_name
              select: ".col-xs-12:nth-of-type(0) h2.title"
            - name: sp95_price
              select: ".col-xs-12:nth-of-type(0) h1"
              value_template: "{{ value|replace(',','.')|replace(' €/L','') }}"
            - name: sp95_date
              select: ".col-xs-12:nth-of-type(0) p.sources"
              value_template: "{{ value.split(' ')[0] }}"
            - 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(',','.')|replace(' €/L','') }}"
            - name: sp98_date
              select: ".col-xs-12:nth-of-type(1) p.sources"
              value_template: "{{ value.split(' ')[0] }}"
            - name: diesel_name
              select: ".col-xs-12:nth-of-type(3) h2"
            - name: diesel_price
              select: ".col-xs-12:nth-of-type(3) h1"
              value_template: "{{ value|replace(',','.')|replace(' €/L','') }}"
            - name: diesel_date
              select: ".col-xs-12:nth-of-type(3) p"
              value_template: "{{ value.split(' ')[0] }}"
            - name: e85_name
              value_template: "-"
            - name: e85_price
              value_template: "-"
            - name: e85_date
              value_template: "-"
- name: carburants_totalenergies_xxxx
  resource: "https://carbu.com/belgique/index.php/station/totalenergies/xxx/xxx/xxxx"
  scan_interval: 3600
  sensor:
      - unique_id: carburants_totalenergies_xxxxx
        select: "[itemtype='http://data-vocabulary.org/Organization'] h1"
        value_template: "{{ value }}"
        attributes:
          - name: sp95_name
            select: ".col-xs-12:nth-of-type(0) h2.title"
          - name: sp95_price
            select: ".col-xs-12:nth-of-type(0) h1"
            value_template: "{{ value|replace(',','.')|replace(' €/L','') }}"
          - name: sp95_date
            select: ".col-xs-12:nth-of-type(0) p.sources"
            value_template: "{{ value.split(' ')[0] }}"
          - 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(',','.')|replace(' €/L','') }}"
          - name: sp98_date
            select: ".col-xs-12:nth-of-type(1) p.sources"
            value_template: "{{ value.split(' ')[0] }}"
          - name: diesel_name
            select: ".col-xs-12:nth-of-type(3) h2"
          - name: diesel_price
            select: ".col-xs-12:nth-of-type(3) h1"
            value_template: "{{ value|replace(',','.')|replace(' €/L','') }}"
          - name: diesel_date
            select: ".col-xs-12:nth-of-type(3) p"
            value_template: "{{ value.split(' ')[0] }}"
          - name: e85_name
            value_template: "-"
          - name: e85_price
            value_template: "-"
          - name: e85_date
            value_template: "-"

Les 3 cartes

type: custom:flex-table-card
entities:
  include: sensor.carburants*
columns:
  - name: Station
    data: state
    icon: mdi:gas-station
    align: left
  - name: sp95 (E5)
    data: sp95_price
    align: center
  - name: Update
    data: sp95_date
    align: center
css:
  tbody tr:nth-child(odd): 'background-color: rgba(255, 255, 255, 0.2)'
  tbody tr:nth-child(even): 'background-color: rgba(255, 255, 255, 0.1)'
  tbody tr:nth-child(1): 'color: #00ff00'
  tbody tr:nth-child(7): 'color: #FF7F50'
style: |
  :host {
    font-size: 13px;
    border-radius: 10px;
    border-style: solid;
    border-width: 2px 2px 0px 2px;
    border-color: #ffffff;
  }
type: custom:flex-table-card
entities:
  include: sensor.carburants*
columns:
  - name: Station
    data: state
    icon: mdi:gas-station
    align: left
  - name: sp98 (E5)
    data: sp98_price
    align: center
  - name: Update
    data: sp98_date
    align: center
css:
  tbody tr:nth-child(odd): 'background-color: rgba(255, 255, 255, 0.2)'
  tbody tr:nth-child(even): 'background-color: rgba(255, 255, 255, 0.1)'
  tbody tr:nth-child(1): 'color: #00ff00'
  tbody tr:nth-child(7): 'color: #FF7F50'
style: |
  :host {
    font-size: 13px;
    border-radius: 10px;
    border-style: solid;
    border-width: 2px 2px 0px 2px;
    border-color: #ffffff;
  }

type: custom:flex-table-card
entities:
  include: sensor.carburants*
columns:
  - name: Station
    data: state
    icon: mdi:gas-station
    align: left
  - name: Diesel (E5)
    data: diesel_price
    align: center
  - name: Update
    data: diesel_date
    align: center
css:
  tbody tr:nth-child(odd): 'background-color: rgba(255, 255, 255, 0.2)'
  tbody tr:nth-child(even): 'background-color: rgba(255, 255, 255, 0.1)'
  tbody tr:nth-child(1): 'color: #00ff00'
  tbody tr:nth-child(7): 'color: #FF7F50'
style: |
  :host {
    font-size: 13px;
    border-radius: 10px;
    border-style: solid;
    border-width: 2px 2px 0px 2px;
    border-color: #ffffff;
  }

Dans le tuto, on parle d’utiliser l’extension de web scraper pour chrome que j’ai installé. Est-ce la même chose que la console de développement sous fireofx ?

Que dois-je regarder ? les inputs-select ?
Screenshot_20231111_113608

Ou autre chose ?

Merci

Salut,

Ce qu’il faut regarder, c’est si c’est une erreur dans les stations ou dans la carte…
Avec les outils de dev, on voit si les valeur SP98/SP95/diesel sont présentes

Ensuite, il faut choisir le bon bloc (avec le selector)

  • 1 = body > main > div.container-fluid > div > div > div.row.station-content > div.col-xs-12.col-sm-8.carburants > div > div:nth-child (1)
  • 2 = body > main > div.container-fluid > div > div > div.row.station-content > div.col-xs-12.col-sm-8.carburants > div > div:nth-child (2)
    etc

ce qui donne en jinja:

  • select: « .col-xs-12:nth-of-type(1) h2 »
  • select: « .col-xs-12:nth-of-type(2) h2 »

Merci.

J’utilise régulièrement la console de développement, mais ici, je ne parviens pas à trouver le chemin pour accéder au selector ? De quel selector parles-tu ?

De plus, je n’ai que " body > main > div.container-fluid > div > div > div.row.station-content > div.col-xs-12.col-sm-8.carburants > xxxxxxxx

La disposition semble correcte sp95 (1) sp98 (2) diesel (3)

Merci

Tu es un niveau encore trop haut, pointe le bloc complet.


et

Moi dans ton code, je vois 0 donc ça m’etonne
image

Au passage, pas besoin des éléments du e85 dans ton cas tu peux les virer

EDIT : j’ai un doute sur le 0 ou 1
Bref, il faut regarder l’entité d’abord

Merci pour les explications

J’ai corrigé certaines erreurs

Dans le css

h2.title au lieu de h2
h1.price au lieu de h1
p.sources au lieu de p

le résultat est mieux mais le prix du E95 = E98, ce qui n’est pas correct

type: custom:flex-table-card
entities:
  include: sensor.carburants*
columns:
  - name: Station
    data: state
    icon: mdi:gas-station
    align: left
  - name: sp95 (E10)
    data: sp95_price
    align: center
  - name: Update
    data: sp95_date
    align: center
css:
  tbody tr:nth-child(odd): 'background-color: rgba(255, 255, 255, 0.2)'
  tbody tr:nth-child(even): 'background-color: rgba(255, 255, 255, 0.1)'
  tbody tr:nth-child(1): 'color: #00ff00'
  tbody tr:nth-child(7): 'color: #FF7F50'
style: |
  :host {
    font-size: 13px;
    border-radius: 10px;
    border-style: solid;
    border-width: 2px 2px 0px 2px;
    border-color: #ffffff;
  }

type: custom:flex-table-card
entities:
  include: sensor.carburants*
columns:
  - name: Station
    data: state
    icon: mdi:gas-station
    align: left
  - name: sp98 (E5)
    data: sp98_price
    align: center
  - name: Update
    data: sp98_date
    align: center
css:
  tbody tr:nth-child(odd): 'background-color: rgba(255, 255, 255, 0.2)'
  tbody tr:nth-child(even): 'background-color: rgba(255, 255, 255, 0.1)'
  tbody tr:nth-child(1): 'color: #00ff00'
  tbody tr:nth-child(7): 'color: #FF7F50'
style: |
  :host {
    font-size: 13px;
    border-radius: 10px;
    border-style: solid;
    border-width: 2px 2px 0px 2px;
    border-color: #ffffff;
  }

pompe1

type: custom:flex-table-card
entities:
  include: sensor.carburants*
columns:
  - name: Station
    data: state
    icon: mdi:gas-station
    align: left
  - name: Diesel (E7)
    data: diesel_price
    align: center
  - name: Update
    data: diesel_date
    align: center
css:
  tbody tr:nth-child(odd): 'background-color: rgba(255, 255, 255, 0.2)'
  tbody tr:nth-child(even): 'background-color: rgba(255, 255, 255, 0.1)'
  tbody tr:nth-child(1): 'color: #00ff00'
  tbody tr:nth-child(7): 'color: #FF7F50'
style: |
  :host {
    font-size: 13px;
    border-radius: 10px;
    border-style: solid;
    border-width: 2px 2px 0px 2px;
    border-color: #ffffff;
  }

pompe1

friendly_name: Multiscrape Sensor
sp95_name: Super 95 (E10)
sp95_price: 1.708
sp95_date: 11/11/23
sp98_name: Super 95 (E10)
sp98_price: 1.708
sp98_date: 11/11/23
diesel_name: Diesel (B7)
diesel_price: 1.860
diesel_date: 11/11/23

pompe2

friendly_name: Multiscrape Sensor
sp95_name: Super 95 (E10)
sp95_price: 1.676
sp95_date: 11/11/23
sp98_name: Super 95 (E10)
sp98_price: 1.676
sp98_date: 11/11/23
diesel_name: Diesel (B7)
diesel_price: 1.828
diesel_date: 11/11/23

pompe3

friendly_name: Multiscrape Sensor
sp95_name: Super 95 (E10)
sp95_price: 1.760
sp95_date: 11/11/23
sp98_name: Super 95 (E10)
sp98_price: 1.760
sp98_date: 11/11/23
diesel_name: Diesel (B7)
diesel_price: 1.928
diesel_date: 11/11/23

tu n’as pas la bon indice… un 2 à la place d’un 1.
Donc les cartes fonctionnent bien mais ton sensor est mal écrit
D’ailleurs, c’est facile à vérifier le nom qu’il trouve est bien SP95

Merci pour ton aide @Pulpy-Luke mais cela coince toujours. J’ai passé en revue ma configuration

Qu’attends-tu par

tu n’as pas la bon indice… un 2 à la place d’un 1.
Donc les cartes fonctionnent bien mais ton sensor est mal écrit
D’ailleurs, c’est facile à vérifier le nom qu’il trouve est bien SP95

Cela me semble bon pourtant. Ou alors, nous ne parlons pas du même indice ?

Pour commencer (avec la console F12 sous firefox)

Q8
super 95 (e10)

le bloc
div.col-sm-6:nth-child(1)
le titre
div.col-sm-6:nth-child(1) > div:nth-child(1) > div:nth-child(1) > h2:nth-child(1)
le prix
div.col-sm-6:nth-child(1) > div:nth-child(1) > div:nth-child(2) > h1:nth-child(1)
la date
div.col-sm-6:nth-child(1) > div:nth-child(1) > div:nth-child(2) > p:nth-child(2)

super 98 (e5)

le bloc
div.col-sm-6:nth-child(2)
le titre
div.col-sm-6:nth-child(2) > div:nth-child(1) > div:nth-child(1) > h2:nth-child(1)
le prix
div.col-sm-6:nth-child(2) > div:nth-child(1) > div:nth-child(2) > h1:nth-child(1)
la date
div.col-sm-6:nth-child(2) > div:nth-child(1) > div:nth-child(2) > p:nth-child(2)

Diesel (b7)
le bloc
div.col-sm-6:nth-child(3)
le titre
div.col-sm-6:nth-child(3) > div:nth-child(1) > div:nth-child(1) > h2:nth-child(1)
le prix
div.col-sm-6:nth-child(3) > div:nth-child(1) > div:nth-child(2) > h1:nth-child(1)
la date
div.col-sm-6:nth-child(3) > div:nth-child(1) > div:nth-child(2) > p:nth-child(2)

on y voit plusieurs indices, doit-on mettre un indice du genre
pour le titre (3,1,1,1)
pour le prix (3,1,2,1)

là, je pense que c’est ici que je me trompe.

mon fichier multiscrape.yaml


- name: carburants_q8easy_xxxxx
  resource: "https://carbu.com/belgique/index.php/station/q8-easy/xxxxxx/xxxxx/xxxxxx"
  scan_interval: 3600
  sensor:
    - unique_id: carburants_q8easy_xxxxxx
      select: "[itemtype='http://data-vocabulary.org/Organization'] h1"
      value_template: "{{ value }}"
      attributes:
          - name: sp95_e10_name
            select: ".col-xs-12:nth-of-type(1) h2.title"
          - name: sp95_e10_price
            select: ".col-xs-12:nth-of-type(1) h1.price"
            value_template: "{{ value|replace(',','.')|replace(' €/L','') }}"
          - name: sp95_e10_date
            select: ".col-xs-12:nth-of-type(1) p.sources"
            value_template: "{{ value.split(' ')[0] }}"
          - name: sp98_e5_name
            select: ".col-xs-12:nth-of-type(2) h2.title"
          - name: sp98_e5_price
            select: ".col-xs-12:nth-of-type(2) h1.price"
            value_template: "{{ value|replace(',','.')|replace(' €/L','') }}"
          - name: sp98_e5_date
            select: ".col-xs-12:nth-of-type(2) p.sources"
            value_template: "{{ value.split(' ')[0] }}"
          - name: diesel_b7_name
            select: ".col-xs-12:nth-of-type(3) h2.title"
          - name: diesel_b7_price
            select: ".col-xs-12:nth-of-type(3) h1.price"
            value_template: "{{ value|replace(',','.')|replace(' €/L','') }}"
          - name: diesel_b7_date
            select: ".col-xs-12:nth-of-type(3) p.sources"
            value_template: "{{ value.split(' ')[0] }}"
          
- name: carburants_esso_manage
  resource: "https://carbu.com/belgique/index.php/station/esso/xxxxxx/xxxxx/xxxxxx"
  scan_interval: 3600
  sensor:
      - unique_id: carburants_esso_xxxxxx
        select: "[itemtype='http://data-vocabulary.org/Organization'] h1"
        value_template: "{{ value }}"
        attributes:
          - name: sp95_e10_name
            select: ".col-xs-12:nth-of-type(1) h2.title"
          - name: sp95_e10_price
            select: ".col-xs-12:nth-of-type(1) h1.price"
            value_template: "{{ value|replace(',','.')|replace(' €/L','') }}"
          - name: sp95_e10_date
            select: ".col-xs-12:nth-of-type(1) p.sources"
            value_template: "{{ value.split(' ')[0] }}"
          - name: sp98_e5_name
            select: ".col-xs-12:nth-of-type(2) h2.title"
          - name: sp98_e5_price
            select: ".col-xs-12:nth-of-type(2) h1.price"
            value_template: "{{ value|replace(',','.')|replace(' €/L','') }}"
          - name: sp98_e5_date
            select: ".col-xs-12:nth-of-type(2) p.sources"
            value_template: "{{ value.split(' ')[0] }}"
          - name: diesel_b7_name
            select: ".col-xs-12:nth-of-type(3) h2.title"
          - name: diesel_b7_price
            select: ".col-xs-12:nth-of-type(3) h1.price"
            value_template: "{{ value|replace(',','.')|replace(' €/L','') }}"
          - name: diesel_b7_date
            select: ".col-xs-12:nth-of-type(3) p.sources"
            value_template: "{{ value.split(' ')[0] }}"
            
- name: carburants_totalenergies_xxxxx
  resource: "https://carbu.com/belgique/index.php/station/totalenergies//xxxxxx/xxxxx/xxxxxx"
  scan_interval: 3600
  sensor:
      - unique_id: carburants_totalenergies_xxxxxxx
        select: "[itemtype='http://data-vocabulary.org/Organization'] h1"
        value_template: "{{ value }}"
        attributes:
          - name: sp95_e10_name
            select: ".col-xs-12:nth-of-type(1) h2.title"
          - name: sp95_e10_price
            select: ".col-xs-12:nth-of-type(1) h1.price"
            value_template: "{{ value|replace(',','.')|replace(' €/L','') }}"
          - name: sp95_e10_date
            select: ".col-xs-12:nth-of-type(1) p.sources"
            value_template: "{{ value.split(' ')[0] }}"
          - name: sp98_e5_name
            select: ".col-xs-12:nth-of-type(2) h2.title"
          - name: sp98_e5_price
            select: ".col-xs-12:nth-of-type(2) h1.price"
            value_template: "{{ value|replace(',','.')|replace(' €/L','') }}"
          - name: sp98_e5_date
            select: ".col-xs-12:nth-of-type(2) p.sources"
            value_template: "{{ value.split(' ')[0] }}"
          - name: diesel_b7_name
            select: ".col-xs-12:nth-of-type(3) h2.title"
          - name: diesel_b7_price
            select: ".col-xs-12:nth-of-type(3) h1.price"
            value_template: "{{ value|replace(',','.')|replace(' €/L','') }}"
          - name: diesel_b7_date
            select: ".col-xs-12:nth-of-type(3) p.sources"
            value_template: "{{ value.split(' ')[0] }}"

Etats

Q8

friendly_name: Multiscrape Sensor
sp95_e10_name: Super 95 (E10)
sp95_e10_price: 1.676
sp95_e10_date: 12/11/23
sp98_e5_name: Super 95 (E10)
sp98_e5_price: 1.676
sp98_e5_date: 12/11/23
diesel_b7_name: Diesel (B7)
diesel_b7_price: 1.828
diesel_b7_date: 12/11/23

Esso

friendly_name: Multiscrape Sensor
sp95_e10_name: Super 95 (E10)
sp95_e10_price: 1.708
sp95_e10_date: 12/11/23
sp98_e5_name: Super 95 (E10)
sp98_e5_price: 1.708
sp98_e5_date: 12/11/23
diesel_b7_name: Diesel (B7)
diesel_b7_price: 1.860
diesel_b7_date: 12/11/23

total


friendly_name: Multiscrape Sensor
sp95_e10_name: Super 95 (E10)
sp95_e10_price: 1.760
sp95_e10_date: 11/11/23
sp98_e5_name: Super 95 (E10)
sp98_e5_price: 1.760
sp98_e5_date: 11/11/23
diesel_b7_name: Diesel (B7)
diesel_b7_price: 1.928
diesel_b7_date: 11/11/23

Je dis que la carte ne fait qu’afficher les valeurs des sensors.
Donc que quand les ne sont pas bon (c’est tout cas), alors l’affichage n’est pas non plus

Non l’indice que tu va chercher (le bloc de données avec les infos nom/prix/date) n’est pas correct.
Tu vois bien que ton sensor contient 2 fois la même donnée (ou des valeurs qui ne correspondent pas)
image
Donc TES indices 1 et/ou 2 sont à revoir
image

J’ai compris le principe, mais je ne vois toujours pas quel indice, je dois mettre par rapport aux indices trouvés par la console.

Ce que j’ai trouvé

e95 = 1
e98 = 2
diesel = 3

Il manque le petit truc pour débloquer la situation. Et je suppose que je ne dois y aller par tâtonnement, il y a surement un mode opératoire pour les trouver, en plus des infos dénichées via la console.

Pour éliminer une éventuelle erreur, les noms des variables, doivent-ils être identiques au select du site carbu ?
par exemple E10, moi j’ai mis sp98_e10_price et non e10_price

Sur le principe, tu as tout bon, mais :

  • il y a possiblement un truc sur la page (que je ne connais pas) avec plusieurs fois les même infos (avec des indices différents)
  • tu as peut-être un sensor avec une correction qui n’est pas prise en compte (manque un restart) dans ton HA

Bref, j’ai pas vraiment plus de piste à te donner, autre que l’indice 1 ne donne pas ce que tu veux, il faut donc le trouver/changer

Les noms des l’attribut que tu donnes sont à ta main.
Par contre si tu les change, il te faudra adapter les éventuels exemples de cartes que j’ai donné au fil du sujet. L’affichage, la comparaison, les tris notamment se basent sur les noms initiaux

Un très grand merci à @Pulpy-Luke de m’avoir sorti de ce mauvais pas.

Le problème se situe au niveau de l’architecture des pages « belges » du site, tout au moins de ma région.

Première colonne

<div class="col-xs-12 col-sm-6">
						<div class="panel panel-default">
							<div class="panel-heading" style="text-align:center">
								<h2 class="title">Super 95 (E10)</h2>
								</div>
								<div class="panel-body"   style="text-align:center">
								
									<h1 class="price">1,618 &euro;/L</h1>
									<p class="sources">12/11/23 Dats24.be</p>
								</div>
							</div>
						</div>	

deuxième colonne

					<div class="col-xs-12 col-sm-6">
						<div class="panel panel-default">
							<div class="panel-heading" style="text-align:center">
								<h2 class="title">Super 98 (E5)</h2>
								</div>
								<div class="panel-body"   style="text-align:center">
								
									<h1 class="price">1,969 &euro;/L</h1>
									<p class="sources">12/11/23 Dats24.be</p>
								</div>
							</div>
						</div>	

Première colonne

					<div class="col-xs-12 col-sm-6">
						<div class="panel panel-default">
							<div class="panel-heading" style="text-align:center">
								<h2 class="title">Diesel (B7)</h2>
								</div>
								<div class="panel-body"   style="text-align:center">
								
									<h1 class="price">1,770 &euro;/L</h1>
									<p class="sources">12/11/23 Dats24.be</p>
								</div>
							</div>
						</div></div>
					  </div>
</div>

Pour SP95
classe du bloc col-xs-12 col-sm-6
Pour SP98
classe du bloc col-xs-12 col-sm-6
Pour Diesel
classe du bloc col-xs-12 col-sm-6

pour que cela correct pour le SP98, il faut mettre

ici, il faut employer col-xs-12 (première colonne)

- name: carburants_q8easy_xxxxxx
  resource: "https://carbu.com/belgique/index.php/station/q8-easy/xxxxxx/xxxx/xxxxxx"
  scan_interval: 3600
  sensor:
    - unique_id: carburants_q8easy_xxxxxx
      select: "[itemtype='http://data-vocabulary.org/Organization'] h1"
      value_template: "{{ value }}"
      attributes:
          - name: sp95_e10_name
            select: ".col-xs-12:nth-of-type(1) h2.title"
          - name: sp95_e10_price
            select: ".col-xs-12:nth-of-type(1) h1.price"
            value_template: "{{ value|replace(',','.')|replace(' €/L','') }}"
          - name: sp95_e10_date
            select: ".col-xs-12:nth-of-type(1) p.sources"
            value_template: "{{ value.split(' ')[0] }}"

ici, il faut employer: col-sm-6 (deuxième colonne)

          - name: sp98_e5_name
            select: ".col-sm-6:nth-of-type(2) h2.title"
          - name: sp98_e5_price
            select: ".col-sm-6:nth-of-type(2) h1.price"
            value_template: "{{ value|replace(',','.')|replace(' €/L','') }}"
          - name: sp98_e5_date
            select: ".col-sm-6:nth-of-type(2) p.sources"
            value_template: "{{ value.split(' ')[0] }}"

ici, il faut employer col-xs-12 (première colonne)

          - name: diesel_b7_name
            select: ".col-xs-12:nth-of-type(3) h2.title"
          - name: diesel_b7_price
            select: ".col-xs-12:nth-of-type(3) h1.price"
            value_template: "{{ value|replace(',','.')|replace(' €/L','') }}"
          - name: diesel_b7_date
            select: ".col-xs-12:nth-of-type(3) p.sources"
            value_template: "{{ value.split(' ')[0] }}"
1 « J'aime »

Il me reste à résoudre un petit problème

  • pour la couleur verte pour le prix le moins cher
  • pour la couleur rouge pour le prix le plus cher

Mais dans le code, je lis

css:
  tbody tr:nth-child(odd): 'background-color: rgba(255, 255, 255, 0.2)'
  tbody tr:nth-child(even): 'background-color: rgba(255, 255, 255, 0.1)'
  tbody tr:nth-child(1): 'color: #00ff00'
  tbody tr:nth-child(7): 'color: #FF7F50'

Screenshot_20231112_201635

Est-ce dû à ma liste des 7 stations ?