Bonjour à tous,
Dans cet exemple, cela concerne le prix annuel de l’abonnement EDF, que je récupère dans un tableau sur internet.
Pour récupérer n’importe quelle donnée (température, lieu, texte, prix de l’essence près de chez vous, valeurs de la bourse, météo, etc) , voici une solution simple à mettre en place.
Celle-ci est basée sur le fait de mettre à jour une entrée input.number en lui changeant sa valeur sa valeur en fonction de celle du capteur correspondant créé sous Scrape, c’est à dire récupérée sur internet, uniquement si elle est disponible. Si indisponible, vous gardez la dernière valeur valide. (2 sensors + 1 automatisation à créer)
A noter que dans ce topic, vous trouverez un exemple pour Tempo dans ce tutoriel, et un exemple pour Zen fixe HP/HC, dans l’une des réponses ci-dessous.
ETAPE 1 :
Sous Appareils&services, cliquer sur Ajouter une intégration, et recherchez « Scrape », puis installez-la.
ETAPE 2 : Configurer la ressource
Ici, il vous faut indiquer le site internet sur lequel se rendre pour accéder à la donnée voulue.
Dans mon cas, j’utilise la page : Tarifs Tempo EDF bleu blanc rouge : grille tarifaire février 2026
Avec comme délai d’expiration « 20160 ».
Vous pouvez créer autant de Ressources (site web cible) que vous le désirez, et créer autant de capteurs que vous le voulez pour chacun d’eux.
Récupérant dans le même tableau le prix annuel de l’abonnement EDF Tempo, et ses différents prix, j’ai donc un total d’une ressource ayant elle-même 7 entités, dans mon cas.
ETAPE 3 : Ajouter un capteur
A cette étape, vous allez définir l’endroit ou se trouve la valeur désirée sur la page internet, d’après son CSS.
J’utilise donc :
table.table.table--stripped.table--small tbody tr:nth-child(2) td:nth-child(2)
Ce qui correspond à la 2eme colonne de la 2eme ligne du tableau sur la page en question, c’est à dire 209,4 €, ayant un contrat 9kVA.
Pour le Prix du kWh Jour Bleu en heures creuses, j’aurais utilisé :
table.table.table--stripped.table--small tbody tr:nth-child(2) td:nth-child(3)
Ce qui correspond à la 3eme colonne de la 2eme ligne du tableau sur la page en question, c’est à dire 0,1288 €, au moment où j’écris cet article.
S’agissant d’un prix, on donnera comme « Unité de mesure » des « EUR ».
Enfin, il faudra utiliser le « Modèle de valeur » suivant pour supprimer tout ce qui n’est pas un chiffre ou une virgule dans la valeur récupérée, convertir cela en nombre décimal et transformer la virgule en point :
{{ value | regex_replace('[^0-9,]', '') | replace(',', '.') | float }}
ETAPE 4 : Création d’un input_number
A présent, afin de s’assurer d’avoir toujours un capteur valide, on va créer un input.number sur lequel on va transférer la valeur du sensor correspondant créé via Scrape.
Pour cela, se rendre sur « Appareils&services », puis « Entrées », et cliquer sur « Créer une Entrée ».
Il a pour ID : input_number.prix_abonnement_edf_annuel_maj_auto
Avec une valeur max de 1000, du fait que le prix de l’abonnement sera normalement toujours en dessous.
ETAPE 5 : : mise à jour automatique de l’input_number
Il ne reste plus qu’à créer l’automatisation qui va prendre la valeur du capteur créé sous scrape, pour la coller sur ce nouveau sensor input.number qu’on utilisera sur la page Énergie.
Et comme garde-fou, on ne fera la mise à jour que si le capteursous scrape est valide. Dans le cas contraire, notre input_number reste lui valide.
Voici l’automatisation correspondante :
alias: "Mise à jour coût abonnement si valide dans Scrape "
description: ""
triggers:
- entity_id:
- sensor.prix_abo_annuel_edf
trigger: state
conditions:
- condition: template
value_template: >
{{ not states('sensor.prix_abo_annuel_edf') in ['unavailable', 'unknown']
}}
actions:
- target:
entity_id: input_number.prix_abonnement_edf_annuel_maj_auto
data:
value: "{{ states('sensor.prix_abo_annuel_edf') }}"
action: input_number.set_value
ETAPE 6 : MAJ des capteurs Scrape QUE en février et aout (évite de voir son IP bannie par le site web interrogé)
Et une autre automatisation pour ne chercher à récupérer ces informations avec Scrape que les premiers jours de février et d’aout, dates auxquelles les tarifs changent :
alias: Mise à jour automatique des capteurs scrape EDF
description: >-
Va chercher la nouvelle version du prix de l'abonnement et des kwh, entre le 1
et le 5 février et même chose en aout sur Kelwatt
triggers:
- trigger: time_pattern
hours: /12
conditions:
- condition: template
value_template: "{{ now().month in [2, 8] and now().day in range(1, 6) }}"
actions:
- action: homeassistant.update_entity
metadata: {}
data:
entity_id:
- sensor.prix_abo_annuel_edf_2
- sensor.prix_du_kwh_jour_blanc_en_heures_creuses_2
- sensor.prix_du_kwh_jour_blanc_en_heures_pleines_2
- sensor.prix_du_kwh_jour_bleu_en_heures_creuses_2
- sensor.prix_du_kwh_jour_bleu_en_heures_pleines_2
- sensor.prix_du_kwh_jour_rouge_en_heures_creuses_2
- sensor.prix_du_kwh_jour_rouge_en_heures_pleines_2
mode: single
Attention à bien désactiver l’actualisation automatique qui se fait toutes les 10 minutes, de base.
Pour cela :
- Cliquez sur les trois petits points (⋮) à côté du nom de l’intégration et choisissez Options système.
- Décochez l’option « Activer l’interrogation pour les mises à jour ». Cela désactive la mise à jour automatique des 10 minutes.
Enfin, si vous récupérez comme moi 7 tarifs (abonnement + prix tempo), il vous faudra 7 input.number, bien sûr. Et adapter l’automatisation pour qu’elle soit valide pour chacun d’eux, ou simplement faire 7 automatisations.
ETAPE 7 : Création d’un capteur du cout journalier de l’abonnement et son ajout dans Energie
Suivre le tutoriel en lien ci-dessous pour pouvoir diviser le montant annuel du coût de l’abonnement afin de correspondre à une journée, et pouvoir l’utiliser dans Énergie automatiquement.
INFOS COMPLÉMENTAIRES :
Voilà, vous récupérez à présent la valeur voulue sur le site internet désiré (choisissez en qui est fiable), comme ici avec kelwatt.
De plus, vous avez un capteur « propre » qui restera même si vous supprimez un jour Scrape (qui je le rappelle est une intégration native de HA).
Enfin, tant que vous utilisez cette manière de faire, vous aurez une valeur qui ne pourra jamais être indisponible.
ATTENTION :
Pour ceux qui ont déjà suivi mon précédent tutoriel ( Ajout du cout de l'abonnement EDF/Gaz/Eau (ou autre fournisseur) au dashboard Energy - accessible à tous ), si vous suivez celui-ci, il est nécessaire de remplacer sensor.prix_abo_annuel_edf par input_number.prix_abonnement_edf_annuel_maj_auto , dans la première ligne du sensor créé à l’étape 1, qui s’appelle « Abonnement EDF journalier »
Enjoy ! ![]()




