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 :
Mon sensor est donc du style :
Sisi, la partie scrape …
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.