Pas besoin de chercher loin, regarde d’abord ce que ça donne dans les outils de dev
Oui ça remonte bien et j’ai les bonnes valeurs. Certaines dates pour l’E10 sont vides mais je ne pense pas que ce soit ça ?
Donc commence par reduire les élements de la carte. 1 carburant, uniquement le prix. Ajoute sa date etc… Quand ça plante, tu as le coupable
J’ai trouvé, j’avais un vieux sensor en cache (qui était dans la card à cause du « carburant_* »), que je viens de supprimer… ! Merci pour l’aide
Bon j’ai cherché à être notifié dès lors que la station la moins chère change.
Sachant que mes 2 véhicules roulent au diesel, je n’avais pas besoin de gérer une diversité, et je voulais éviter de créer de nouveaux sensors pour cette automation.
Par conséquent l’automation s’appuie sur 2 input_text que je compare pour déclencher ou non la notif.
Le code :
alias: 'test carbu'
description: ''
trigger:
- platform: state
entity_id:
- sensor.carburants_carrefour_AAA
- sensor.carburants_carrefour_BBB
- sensor.carburants_intermarche_CCC
- sensor.carburants_intermarche_DDD
- sensor.carburants_leclerc_DDD
- sensor.carburants_intermarche_EEE
- sensor.carburants_carrefour_EEE
action:
- service: input_text.set_value
target:
entity_id: input_text.carbu_cheap_tmp
data:
value: |
{% set mini = (state_attr('sensor.carburants_carrefour_AAA', 'diesel_price'),
state_attr('sensor.carburants_carrefour_BBB', 'diesel_price'),
state_attr('sensor.carburants_intermarche_CCC', 'diesel_price'),
state_attr('sensor.carburants_intermarche_DDD', 'diesel_price'),
state_attr('sensor.carburants_leclerc_DDD', 'diesel_price'),
state_attr('sensor.carburants_intermarche_EEE', 'diesel_price'),
state_attr('sensor.carburants_carrefour_EEE', 'diesel_price'))|min %}
{% set mylist = 'sensor.carburants_carrefour_AAA',
'sensor.carburants_carrefour_BBB',
'sensor.carburants_intermarche_CCC',
'sensor.carburants_intermarche_DDD',
'sensor.carburants_leclerc_DDD',
'sensor.carburants_intermarche_EEE',
'sensor.carburants_carrefour_EEE' %}
{% for item in mylist %}
{% if state_attr(item, 'diesel_price') == mini %}
{{ state_attr(item, 'friendly_name') }} {{ state_attr(item, 'diesel_price') }}
{% endif %}
{% endfor %}
- choose:
- conditions: "{{ states('input_text.carbu_cheap_tmp') != states('input_text.carbu_cheap') }}"
sequence:
- service: input_text.set_value
target:
entity_id: input_text.carbu_cheap
data:
value: "{{ states('input_text.carbu_cheap_tmp') }}"
- service: notify.sms_moi
data:
message: |
⛽ Station la moins chère
{{ states('input_text.carbu_cheap') }}
mode: single
Même si ça fonctionne, ça reste un premier jet et j’imagine qu’il y’a forcement moyen d’améliorer le code
J’utilise la méthode de @WarC0zes pour créer les capteurs pour les stations mais ça ne marche pour celle-ci pour le SP95 (E10) :
https://carbu.com/france/index.php/station/geant-casino/saint-andre-de-cubzac/33240/7836
Une idée ?
Salut,
Cette station n’est pas différente des autres, le SP95 est en div:nth-child(**2**)
Avec la méthode de @WarC0zes, j’obtiens : div:nth-of-type(3) h1
pour le prix du E10 mais ça ne remonte rien.
Oui 2 => E5 et 3 => E10. Au temps pour moi
Si ça s’affiche pas, c’est que le reste de la formule n’est pas bon. Copié/collé à vérifier
Essais avec ça :
select: ".col-xs-12:nth-of-type(3) h1"
ça fonctionne Herbs mais bizarrement pour toutes les stations, j’obtiens quelque chose du genre div.col-xs-12:nth-of-type(1) h1.price
mais avec celle-ci, j’obtiens ça div:nth-of-type(3) h1
et ça ne remonte rien.
Ouais j’ai eu le même cas de figure pour certaines infos, j’y suis allé au bluff avec l’exemple que je t’ai donné plus haut.
Et finalement ça a fonctionné, honnêtement j’ai pas cherché plus loin à essayer de comprendre si ça venait du code source de la page web ou d’un bug de l’extension « Web Scraper »
Bonjour,
Je n’arrive pas à mettre toutes les infos des stations que j’aimerais sur la card donnée par @Herbs. En effet j’aimerais ajouter l’image en icône comme je l’ai fait ici
mais du coup dans la card de @Herbs qui gère le tri et couleur. Sachant que je ne peux pas mettre l’image pour le « Multiscrape » dans mon fichier « Configuration.YAML ».
Le code de la card :
type: custom:flex-table-card
sort_by: b7_price
entities:
- entity: sensor.carburants_leclerc_riorges
- entity: sensor.carburants_carrefour_riorges
- entity: sensor.carburants_carrefour_roanne
- entity: sensor.carburants_carrefour_mably
- entity: sensor.carburants_carrefour_le_coteau
- entity: sensor.carburants_intermarche_commelle
- entity: sensor.carburants_intermarche_lentigny
- entity: sensor.carburants_intermarche_riorges
- entity: sensor.carburants_super_u_le_coteau
columns:
- data: name
icon: mdi:gas-station
align: left
- name: Diesel
data: b7_price
align: center
- name: SP95
data: sp95_price
align: center
- name: SP98
data: sp98_price
align: center
- name: Date
data: b7_date
align: center
css:
tbody tr:nth-child(odd): 'background-color: rgba(255, 255, 255, 0.1)'
tbody tr:nth-child(even): 'background-color: rgba(255, 255, 255, 0.2)'
tbody tr:nth-child(1): 'color: #00ff00'
tbody tr:nth-child(9): 'color: #f00020'
card_mod: null
style: |
:host {
font-size: 13px;
border-radius: 10px;
border-style: solid;
border-width: 2px 2px 0px 2px;
border-color: #ffffff;
}
Merci pour votre aide
Hum j’ai pas l’impression que ce soit possible avec uniquement « flex-table-card ».
Par contre en jouant avec « multiscrape » , et avec une légère modif de la carte peut-être.
- Côté « multiscrape » faudrait essayer d’ajouter une entrée « picture » au sensor :
- name: carburants_carrefour_xxxxxxxxxxxx
resource: "https://carbu.com/france/index.php/station/carrefour-contact/xxxxxxxxxxxx/27520/9128"
scan_interval: 3600
sensor:
- unique_id: carburants_carrefour_xxxxxxxxxxxx
name: 'xxxxxxxxxxxx'
picture: '/local/chemin/image'
select: "[itemtype='http://data-vocabulary.org/Organization'] h1"
value_template: "{{ value }}"
attributes:
- name: diesel_name
select: ".col-xs-12:nth-of-type(5) h2"
- name: diesel_price
select: ".col-xs-12:nth-of-type(5) h1"
value_template: "{{ value|replace(',','.') }}"
- name: diesel_update
select: ".col-xs-12:nth-of-type(5) p"
value_template: "{{ value.split(' ')[0] }}"
- Et ensuite dans la carte ajouter la colonne correspondante :
type: custom:flex-table-card
sort_by: diesel_price
entities:
include: sensor.carburants*
columns:
- data: picture
align: left
- data: state
icon: mdi:gas-station
align: left
- name: Diesel
data: diesel_price
align: center
- name: Update
data: diesel_update
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'
card_mod:
style: |
:host {
font-size: 13px;
border-radius: 10px;
border-style: solid;
border-width: 2px 2px 0px 2px;
border-color: #ffffff;
}
Bon je n’ai pas testé, donc c’est sans garantie !!!
Tiens nous au courant.
J’ai essayé avec « image » dans mon fichier de configuration mais ça ne passe pas. Et de ce que j’ai vu dans la documentation de « multiscrape » je n’ai pas vu d’attribuer du genre. Je teste quand je rentre mais pas grand espoir…
ça le créé ok mais c’est un type « string » et il n’y a pas d’interprétation du chemin comme pour « image » dans la carte « entities ».
Du coup soit c’est pas possible soit je suis une quiche
Salut,
Je suis pas convaincu que la flex-table-card
permette d’afficher une image. En tout cas j’ai rien qui en parle dans les docs
Oui je pense aussi. Faudrait que je trouve une card où je puisse faire le tri et mettre une image…un mix entre les 2 que j’ai postées
Dans l’absolu j’étais pas trop confiant à la base, mais en partant de ça :
Y’a pas moyen de le forcer à interpréter le chemin et de lui faire afficher l’image ?
Après le css est moi on est pas trop copain