Horaire de bus

Mon problème

Bonjour a tous,
je débute dans le monde de HOMEASSISANT ainsi que le codage.
j’ai quelque soucis avec un scrape…j’espère que vous allez pouvoir m’aider.
j’essaye de prendre des donnés de bus
lorsque j’actualise la page les horaires sont: --min
après 2 secondes ça affiche: 37min
test bus

Mais mon capteur scrape… prends instantanée
Screenshot 2021-07-12 at 05-40-02 Aperçu - Home Assistant

Avez vous une solution ?
Merci :grinning:

/config/sensors.yaml

  - platform: scrape
    resource: https://www.transdev-idf.com/horaires-ligne-9/moulon-vers-centre-commercial-ulis-2/006-006-50023612-50023485
    select: "span.next-bus-1"
    name: ligne_9_horaire
  - platform: scrape
    resource: https://www.transdev-idf.com/horaires-ligne-9/moulon-vers-centre-commercial-ulis-2/006-006-50023612-50023485
    select: "span.next-bus-2"
    name: ligne_9_horaire_2 
  - platform: scrape
    resource: https://www.transdev-idf.com/horaires-ligne-9/moulon-vers-centre-commercial-ulis-2/006-006-50023612-50023485
    select: "span.next-buses-updated-at"
    name: ligne_9_maj

Ma configuration


System Health

version core-2021.7.1
installation_type Home Assistant Supervised
dev false
hassio true
docker true
virtualenv false
python_version 3.9.5
os_name Linux
os_version 4.19.0-16-amd64
arch x86_64
timezone Europe/Paris
Home Assistant Community Store
GitHub API ok
Github API Calls Remaining 4726
Installed Version 1.13.2
Stage running
Available Repositories 912
Installed Repositories 14
Home Assistant Cloud
logged_in false
can_reach_cert_server ok
can_reach_cloud_auth ok
can_reach_cloud ok
Home Assistant Supervisor
host_os Debian GNU/Linux 10 (buster)
update_channel stable
supervisor_version supervisor-2021.06.8
docker_version 20.10.7
disk_total 112.7 GB
disk_used 10.5 GB
healthy true
supported true
supervisor_api ok
version_api ok
installed_addons File editor (5.3.2), Samba share (9.5.1), Mosquitto broker (6.0.1), Grafana (7.0.2), Node-RED (9.2.0), InfluxDB (4.1.1), SSH & Web Terminal (9.0.0), Duck DNS (1.12.5), AdGuard Home (4.1.6)
Lovelace
dashboards 1
resources 9
views 3
mode storage
___

Peut être en ajoutant une action sur l’entité représentant la date de mise à jour forçant le rafraîchissement des entités :

tap_action:
  action: call-service
  service: homeassistant.update_entity
  service_data: {}
  target:
    entity_id:
      - sensor.ligne_9_horaire
      - sensor.ligne_9_horaire_2
      - sensor.ligne_9_maj

Tu peux aussi faire une automatisation qui se déclenche si l’état de sensor.ligne_9_maj est ---

alias: Mise a jour Ligne 9
description: Se déclenche si le scrape renvoi---
mode: single
trigger:
  - platform: state
    entity_id: sensor.ligne_9_maj
    to: '---'
condition: []
action:
  - service: homeassistant.update_entity
    target:
      entity_id: 
        - sensor.ligne_9_horaire
        - sensor.ligne_9_horaire_2
        - sensor.ligne_9_maj

En fait, la partie « horaire » de la page est le résultat de l’exécution d’un javascript.
Donc, la requête http charge la page avec les -- et c’est ensuite l’exécution du javascript qui met à jour les données. Je ne crois pas que l’intégration scrape sache faire ça.
Va falloir coder avec un outil de scrape plus sophistiqué.
Et, là, aucune idée comment faire :frowning:

1 « J'aime »

Sinon partir sur l’utilisation d’une api :

https://portal.api.iledefrance-mobilites.fr/fr/

et

la doc swagger de

Ca risque de faire mauvais ménage…

Mais, oui, sinon, c’est la « bonne » solution.

C’est juste au cas où un dev passe par là… :innocent: :blush:

Bonjour, j’ai essayé les actions… en vain. Je pense que l’api est là meilleure solution… mais j’y crois encore. Sûrement une personne ayant trouvé la solution. En tout cas merci d’avoir essayer de résoudre mon problème. Je parle avec quelque personnes ausssi qui ont ce problème non résolu. J’espère que l’on va trouver une solution.

Bonjour, merci de m’avoir guidé. Je cherche encore. Mais la piste du Java semble déjà une bonne direction. Merci de m’avoir aidé.