Besoin d'aide pour récup info JSON depuis Script

Bonjour,

J’aimerais récupérer les infos des 5 prochains passages de bus à mon arret le plus proche.
J’ai récupéré l’API et un token de la société de transport urbain. Cela me permet de récupérer un JSON avec les infos nécessaires :

https://api.cts-strasbourg.eu/v1/siri/2.0/stop-monitoring?MonitoringRef=399A&RequestorRef=432b0fa7-d4cf-4411-a361-a58fd120fb98 &VehicleMode=bus&PreviewInterval=PT60M&LineRef=L6&DirectionRef=1&MaximumStopVisits=5&IncludeGeneralMessage=false&IncludeFLUO67=false

{
  "ServiceDelivery": {
    "ResponseTimestamp": "2023-02-20T13:10:10+01:00",
    "RequestMessageRef": null,
    "StopMonitoringDelivery": [
      {
        "version": "2.0",
        "ResponseTimestamp": "2023-02-20T13:10:10+01:00",
        "ValidUntil": "2023-02-20T13:10:17+01:00",
        "ShortestPossibleCycle": "PT30S",
        "MonitoringRef": [
          "399A"
        ],
        "MonitoredStopVisit": [
          {
            "RecordedAtTime": "2023-02-20T13:09:45+01:00",
            "MonitoringRef": "399A",
            "StopCode": "399A",
            "MonitoredVehicleJourney": {
              "LineRef": "L6",
              "DirectionRef": 1,
              "FramedVehicleJourneyRef": {
                "DatedVehicleJourneySAERef": "17352843-22PVSB-UPC Bus-Semaine-00"
              },
              "VehicleMode": "bus",
              "PublishedLineName": "L6",
              "DestinationName": "Pont Phario",
              "DestinationShortName": "Pont Phario",
              "Via": null,
              "MonitoredCall": {
                "StopPointName": "Moser",
                "ExpectedDepartureTime": "2023-02-20T13:13:30+01:00",
                "ExpectedArrivalTime": "2023-02-20T13:13:30+01:00",
                "Extension": {
                  "IsRealTime": true
                }
              }
            }
          },
          {
            "RecordedAtTime": "2023-02-20T13:09:45+01:00",
            "MonitoringRef": "399A",
            "StopCode": "399A",
            "MonitoredVehicleJourney": {
              "LineRef": "L6",
              "DirectionRef": 1,
              "FramedVehicleJourneyRef": {
                "DatedVehicleJourneySAERef": "17352816-22PVSB-UPC Bus-Semaine-00"
              },
              "VehicleMode": "bus",
              "PublishedLineName": "L6",
              "DestinationName": "Pont Phario",
              "DestinationShortName": "Pont Phario",
              "Via": null,
              "MonitoredCall": {
                "StopPointName": "Moser",
                "ExpectedDepartureTime": "2023-02-20T13:24:22+01:00",
                "ExpectedArrivalTime": "2023-02-20T13:24:22+01:00",
                "Extension": {
                  "IsRealTime": true
                }
              }
            }
          },
          {
            "RecordedAtTime": "2023-02-20T13:09:45+01:00",
            "MonitoringRef": "399A",
            "StopCode": "399A",
            "MonitoredVehicleJourney": {
              "LineRef": "L6",
              "DirectionRef": 1,
              "FramedVehicleJourneyRef": {
                "DatedVehicleJourneySAERef": "17352785-22PVSB-UPC Bus-Semaine-00"
              },
              "VehicleMode": "bus",
              "PublishedLineName": "L6",
              "DestinationName": "Pont Phario",
              "DestinationShortName": "Pont Phario",
              "Via": null,
              "MonitoredCall": {
                "StopPointName": "Moser",
                "ExpectedDepartureTime": "2023-02-20T13:34:01+01:00",
                "ExpectedArrivalTime": "2023-02-20T13:34:01+01:00",
                "Extension": {
                  "IsRealTime": true
                }
              }
            }
          },
          {
            "RecordedAtTime": "2023-02-20T13:09:45+01:00",
            "MonitoringRef": "399A",
            "StopCode": "399A",
            "MonitoredVehicleJourney": {
              "LineRef": "L6",
              "DirectionRef": 1,
              "FramedVehicleJourneyRef": {
                "DatedVehicleJourneySAERef": "17352817-22PVSB-UPC Bus-Semaine-00"
              },
              "VehicleMode": "bus",
              "PublishedLineName": "L6",
              "DestinationName": "Pont Phario",
              "DestinationShortName": "Pont Phario",
              "Via": null,
              "MonitoredCall": {
                "StopPointName": "Moser",
                "ExpectedDepartureTime": "2023-02-20T13:43:59+01:00",
                "ExpectedArrivalTime": "2023-02-20T13:43:59+01:00",
                "Extension": {
                  "IsRealTime": true
                }
              }
            }
          },
          {
            "RecordedAtTime": "2023-02-20T13:09:45+01:00",
            "MonitoringRef": "399A",
            "StopCode": "399A",
            "MonitoredVehicleJourney": {
              "LineRef": "L6",
              "DirectionRef": 1,
              "FramedVehicleJourneyRef": {
                "DatedVehicleJourneySAERef": "17352844-22PVSB-UPC Bus-Semaine-00"
              },
              "VehicleMode": "bus",
              "PublishedLineName": "L6",
              "DestinationName": "Pont Phario",
              "DestinationShortName": "Pont Phario",
              "Via": null,
              "MonitoredCall": {
                "StopPointName": "Moser",
                "ExpectedDepartureTime": "2023-02-20T13:53:39+01:00",
                "ExpectedArrivalTime": "2023-02-20T13:53:39+01:00",
                "Extension": {
                  "IsRealTime": true
                }
              }
            }
          }
        ]
      }
    ]
  }
}

Je chercher à récupérer le ExpectedArrivalTime :

ServiceDelivery > StopMonitoringDelivery > 0 > MonitoredStopVisit > 0 > MonitoredVehicleJourney > MonitoredCall > ExpectedArrivalTime

J’utilise le pluggin Script de Jeedom pour ca :

Malheureusement il me retourne constamment un Json invalide ou non décodable.

Vous avez une idée du pourquoi ? Est-ce qu’il y a une autre solution que Script pour récupérer les info d’un JSON ?

Merci
Vincent

Hello Vincent,

Il y a quelque chose dans le champ utilisateur, peut-être faut-il le retirer ? Ou le compléter avec un mot de passe ?
Dans un navigateur, directement avec l’url tu arrives à récupérer quelque chose ? (pas moi)
Si tu passes en info « Autre » (string) tu arrives à récupérer quelque chose sans chemin json ?

Sinon, as-tu vu le plugin « Localisation et Trajet » (geotrav), il utilise l’API Navitia qui est synchronisée avec celle de la CTS.

Bad (von elsass)

Dans le champs utilisateur il y a mon token, qui est demandé quand on ouvre l’URL cité plus haut.
Pas de mot de passe nécessaire.
J’ai tenté Info : autres et sans request. Mais si la request est vide Jeedom ne me laisse pas valider.

J’ai tenté Navitia mais malheureusement il se base sur les horaires théoriques et non le « real time ». Ou alors je l’avais mal configuré :frowning:

Bonjour,

Il y a un espace dans ta chaine, il faudrait le retirer dans l’URL avant &VehicleMode
Une fois ceci-fait il demande un login/pass donc à renseigner ici :
image

Et comme tu veux cette information : « 2023-02-20T13:53:39+01:00 » il faudrait lui indiquer que c’est un champs « autre » et non « numérique »
image

Je n’ai pas regardé vraiment ta requête pour le moment

Merci! Effectivement faute de syntaxe + j’ai du mettre un mot de passe au hasard pour valider la request. Je récupère bien les horaires real-time !

Ce sujet a été automatiquement fermé après 24 heures suivant le dernier commentaire. Aucune réponse n’est permise dorénavant.