RestFul et les json_attributes sur un json sans franchement d'étiquettes

Bonjour tout le monde,

Je fais suite a un précédent post sur un sensor. En fait je souhaite aller chercher les horaires de TER tous les matins.
Pour ce faire, j’essaye dans un fichier ceci

- platform: rest
  resource: https://xxxxxxxxxxxxxxxxxx@api.navitia.io/v1/coverage/sncf/stop_areas/stop_area%3ASNCF%3A87471144/stop_schedules?from_datetime=20220103T000000&items_per_schedule=5&
  method: GET
  name: Horaire

Le hic c’est que le json retournée par l’application ne doit pas correspondre à un dictionnaire Json, donc passer par des json_attributres ne me semble pas possible. Si je ne me trompe pas l’étiquette définie dans le json a_attribute doit figurer dans le json en entrée ?

J’ai collé dans la suite du post un json allégé pour vous montrer, ce que je dois aller chercher stop_schedules[0].date_times[0].date_time, à noter que cette recherche fonctionne dans le menu d’HA Outils de développement / Modèle. J’ai cherché sur le net mais toutes les ressources que j’ai trouvé fonctionnent avec le json_attribute ou alors (ce qui est largement possible) j’ai pas su adapter à mon json d’entrée.

Merci pour vos retours, pistes ou solutions.

Bonne fin journée et bon week end dans la foulée.

Arno

{
    "stop_schedules":[
       {"date_times":[
        {
           "date_time":"20220107T065630",
           "additional_informations":[
              
           ],
           "base_date_time":"20220107T065630",
           "links":[
              {
                 "category":"terminus",
                 "internal":true,
                 "rel":"notes",
                 "type":"notes",
                 "id":"destination:6180704218786539560"
              },
              {
                 "type":"vehicle_journey",
                 "value":"vehicle_journey:SNCF:2022-01-07:856006:1187:Train",
                 "rel":"vehicle_journeys",
                 "id":"vehicle_journey:SNCF:2022-01-07:856006:1187:Train"
              }
           ],
           "data_freshness":"base_schedule"
        },
        {
           "date_time":"20220107T075700",
           "additional_informations":[
              
           ],
           "base_date_time":"20220107T075700",
           "links":[
              {
                 "category":"terminus",
                 "internal":true,
                 "rel":"notes",
                 "type":"notes",
                 "id":"destination:6180704218786539560"
              },
              {
                 "type":"vehicle_journey",
                 "value":"vehicle_journey:SNCF:2022-01-07:856018:1187:Train",
                 "rel":"vehicle_journeys",
                 "id":"vehicle_journey:SNCF:2022-01-07:856018:1187:Train"
              }
           ],
           "data_freshness":"base_schedule"
        },
        {
           "date_time":"20220107T080330",
           "additional_informations":[
              
           ],
           "base_date_time":"20220107T080330",
           "links":[
              {
                 "type":"vehicle_journey",
                 "value":"vehicle_journey:SNCF:2022-01-07:856007:1187:Train",
                 "rel":"vehicle_journeys",
                 "id":"vehicle_journey:SNCF:2022-01-07:856007:1187:Train"
              }
           ],
           "data_freshness":"base_schedule"
        },
        {
           "date_time":"20220107T085630",
           "additional_informations":[
              
           ],
           "base_date_time":"20220107T085630",
           "links":[
              {
                 "category":"terminus",
                 "internal":true,
                 "rel":"notes",
                 "type":"notes",
                 "id":"destination:6180704218786539560"
              },
              {
                 "type":"vehicle_journey",
                 "value":"vehicle_journey:SNCF:2022-01-07:856024:1187:Train",
                 "rel":"vehicle_journeys",
                 "id":"vehicle_journey:SNCF:2022-01-07:856024:1187:Train"
              }
           ],
           "data_freshness":"base_schedule"
        }]
       }]
        }     

Salut,
J’ai pas (encore) travailler avec du json dans HA, donc je peut pas trop t’aider a ce sujet.
Mais ton fichier est bien un fichier json valide et comme moyen de contournement, tu peut utiliser jq ( parseur de json) :

cat /tmp/1.json | jq '.stop_schedules[].date_times[].date_time'
"20220107T065630"
"20220107T075700"
"20220107T080330"
"20220107T085630"

Merci pour ton retour, j’ai cru voir dans mes recherches qu’on pouvait passer par des command_line dans du YAML ?
Un truc du style

Je vais tester

Je reviens à la charge sur mon soucis, j’ai réussi a récupérer les horaires avec ceci

rest:
  - authentication: basic
    scan_interval: 900
    resource: https://ec4xxxxb8-xx7-4yyf5-yyyy4-d817d12abca1@api.navitia.io/v1/coverage/sncf/stop_areas/stop_area%3ASNCF%3A87471144/stop_schedules?from_datetime=20220111T110000&items_per_schedule=5&
    sensor:
      - name: "Horaire 1"
        value_template: "{{ value_json.stop_schedules[0].date_times[0].date_time }}" 
      - name: "Horaire 2"
        value_template: "{{ value_json.stop_schedules[0].date_times[1].date_time }}" 
      - name: "Horaire 3"
        value_template: "{{ value_json.stop_schedules[0].date_times[2].date_time }}" 
      - name: "Horaire 4"
        value_template: "{{ value_json.stop_schedules[0].date_times[3].date_time }}" 

C’est peu être pas trop propre mais je fonctionne étape après étape, maintenant je veux mettre le paramètre from_datetime paramétrable
je suis donc passé par

es?from_datetime={{now().strftime(« %Y%m%dT%H%M%S »)}}&items_per_schedule=5&

Ce qui correspond au format de date demandé par l’API AAAAMMJJTHHMMSS

sauf que cette fois ci … choux blanc ! Pour le débug, je ne vois pas comment faire pour constater que l’appel API se passe bien.
Le journal d’HA me remonte 2 erreurs qui ne concernent pas ce sensor.

Merci pour vos retours et bonne journée
Arno

Tu as essayé de remplacer resource par resource_template ?