Extraire une donnée numérique d'un texte

Bonjour,
Je suis assez fier de moi car grâce à ce forum, et en ne comprenant rien au HTML et autres subtilités de web, j’ai réussi à extraire la température de l’eau de la Seine depuis le site SIAAP : Syndicat Interdépartemental pour l’Assainissement de l’Agglomération Parisienne - Bilan des usines d’épuration grâce à l’intégration SCRAPE.
J’ai maintenant un beau sensor du style « 4,8 °C ».
C’est déja top, mais je cherche maintenant à créer un sensor numérique à partir du premier. Je saurais faire sur Excel par exemple en prenant tous les caractères sauf les 3 derniers, puis en transformant en numérique, mais je n’ai pas trouvé comment faire ça dans un template.
Merci d’avance.

Salut,

Partage ton code, c’est un truc plutot trivial à ajouter, genre |float(0) à la fin

Bonjour Pulpy-Luke,
Toujours là quand il faut aider ;-). Merci.
Il n’y a pas vraiment de code. Il y a juste une entité créée, qui est donc une valeur texte, car l’information du site web extraite est « 4,8 °C », qui est sur la page en un seul bloc (la valeur numérique, l’espace et l’unité).
Le code de la page web source :
image

Mon sensor est donc du style :

Sisi, la partie scrape …

J’ai tout fait par l’intégration Scrape, donc je n’ai que les écrans de configuration:


OK il faut que je regarde, j’ai encore pas joué avec le mode graphique

Je progresse : avec

state: "{{ states('sensor.web_scrape_temperature_seine').split(' ')[0] }}"

appliqué à la chaine de caractères, je récupère « 4,8 »
Reste plus qu’à transformer ça en valeur numérique.

avec çà en plus comme dit Maitre @Pulpy-Luke
Mais ?
regarde avec un template

{{states('sensor.web_scrape_temperature_seine').split(' ')[0]|replace( ',','.')}}

Merci pour l’aide.
En créant un template, j’ai en effet maintenant une valeur numérique:

template:
  - sensor:
    - name: "Température de la Seine (numérique)"
      unique_id: temperature_seine_numerique
      state: "{{states('sensor.web_scrape_temperature_seine').split(' ')[0]|replace( ',','.')}}"
      unit_of_measurement: "°C"

Tu dois pourvoir regrouper les deux en un

Oui, certainement.
C’est là que ce serait plus simple de pouvoir éditer le Scrape en Yaml plutôt que de devoir repasser par l’UI.

Salut tu peux le faire avec l’option Modèle de Valeur dans la partie Scrape directement :innocent:!
Il suffit de mettre value à la place du sensor !

{{ value.split(' ')[0]|replace( ',','.') }}

Résumé

UTILISER l’ UI est préférable, même si on peut passer par un YAML pour faire ton entité !