Aller au contenu

MAM78

Membres confirmés
  • Compteur de contenus

    2 501
  • Inscription

  • Dernière visite

  • Jours gagnés

    28

Tout ce qui a été posté par MAM78

  1. MAM78

    Itinéraire SNCF

    tu peux m'envoyer ton code Token en MP pour que je fasse un test je te promets de le détruire une fois le teste terminer attention de bien m'envoyer le code envoyer par mail par la SNCF
  2. MAM78

    Itinéraire SNCF

    Attention, tu as modifié les codes de départ et d'arrivée dans la scène et par conséquent cassé son code LUA. Ce n'est plus la qu'il faut le faire. Comme indiqué dans mon précédent post c'est dans le VD qu'il convient de faire la modification. Seules les users variables doivent être modifiées. Cf. la ligne qui indique "Ne pas modifier le code ci-dessous"
  3. Est-il possible de créer/supprimer en code LUA des labels et des boutons dans un VD ? Dans le même registre, est-il possible de modifier en LUA le texte (situé à gauche) d'un label d'un VD ? (je ne parle pas de sa valeur)
  4. MAM78

    Itinéraire SNCF

    Une fois le VD et la scène chargée. Attention pour le moment, cela ne fonctionne que pour les lignes directes (donc, veuillez saisir comme destination la gare de votre premier changement, s'il y a changement) Vous rechercher les codes de votre station de départ et d'arrivée : en ayant préalablement sélectionné un type key "stop_points" suivi d'un clic sur ADD en saisissant le nom de votre station de départ, puis sélection de la ligne correspondant à votre station Copier/Coller du code dans la variable code_api_from du VD en saisissant le nom de votre station de destination Copier/Coller du code dans la variable code_api_to du VD Voir exemple ci-dessous :
  5. MAM78

    Itinéraire SNCF

    Pour test : Vous trouverez ci-dessous le VD à Charger : Itinéraire_SNCF.vfib.json N'oubliez pas de modifier la variable SceneID_Iti_SNCF par l'ID de la Scène Itinéraire SNCF (dans laquelle vous aurez coller le code LUA ci-dessous) Voici le code de la nouvelle scène : N'oubliez pas de modifier l'ID de votre Scène Sonos dans la variable SceneID_Sonos (si vous en possédez une enceinte) --[[ %% properties %% events %% globals --]] ---------------------------------------------------------------------------------- -- Name : HC2 SNCF Itinéraire -- Type : Virtual Device & Scene -- Cette scène permet d'obtenir l'horaire du prochain train au départ d'une gare ---------------------------------------------------------------------------------- -- Le Projet : -- Construire Virtual Device Affichant les données reccupérées -- avec en option une notification vocale sur une enceinte SONOS en mode TTS ---------------------------------------------------------------------------------- -- Version : 0.2 -- Création : MAM78 -- Date MAJ : 09/07/2017 -- -- Evolutions : -- V0.1 09/07/2017 : Initialisation du projet -- V0.2 10/07/2017 : Association de la scène à un VD qui appel la scène en -- passant les paramètres de la recherche d'itinéraire ---------------------------------------------------------------------------------- -- User variables local SceneID_Sonos = 61 local modetrace = true local modedebug = true ---------------------------------------------------------------------------------- -- Pour pouvoir utiliser l'API de la SNCF, vous devez vous créer un compte sur : -- https://data.sncf.com/api -- Une fois votre compte créé vous recevrez un mail avec une clé d’authentification -- Puis, vous devez vous connecter au site : -- https://www.base64encode.org -- Puis, encoder la clef reçu dans le mail ci-dessus -- Copier ce code dans la vadiable ci-dessous (User_API_Sncf) ---------------------------------------------------------------------------------- local User_API_Sncf = "votre code API SNCF encodé en 64" ---------------------------------------------------------------------------------- -- Ne pas modifier le code ci-dessous, sinon pour l'adapter à votre usage ---------------------------------------------------------------------------------- local TimeOut = 3000 ---------------------------------------------------------------------------------- -- Message pour mode Trace ---------------------------------------------------------------------------------- function Trace(color, message) if modetrace then if color and color ~= "" then fibaro:debug('<span style="color:'..color..';">'..message..'</span>') else fibaro:debug(message) end end end ---------------------------------------------------------------------------------- -- Message pour mode Debug ---------------------------------------------------------------------------------- function Debug(color, message) if modedebug then if color and color ~= "" then fibaro:debug('<span style="color:'..color..';">'..message..'</span>') else fibaro:debug(message) end end end function SetUI(id, target, value) fibaro:call(id, "setProperty", "ui."..target..".value", value); end ---------------------------------------------------------------------------------- -- Retourne le jour de la semaine en clair ---------------------------------------------------------------------------------- function josdGetJourSemaine(jour) josdGetJourSemaineTab={[0]="Dimanche",[1]="Lundi",[2]="Mardi",[3]="Mercredi",[4]="Jeudi",[5]="Vendredi",[6]="Samedi"} return josdGetJourSemaineTab[tonumber(jour)] end ---------------------------------------------------------------------------------- -- Conversion format date "aaaammjjThhmmss" en format date ---------------------------------------------------------------------------------- function Conversion_Date(dateheure) local TableDate = os.date("*t") TableDate.day = string.sub (dateheure, 7, 8) TableDate.month = string.sub (dateheure, 5, 6) TableDate.year = string.sub (dateheure, 1, 4) TableDate.hour = string.sub (dateheure, 10, 11) TableDate.min = string.sub (dateheure, 12, 13) return (os.time(TableDate)) end ---------------------------------------------------------------------------------- -- Traitement des données en provenance de l'IPA SNCF ---------------------------------------------------------------------------------- function GetData() Debug("grey","T1".." - "..Iti_Titre) -- https://api.sncf.com/v1/coverage/sncf -- /journeys? -- from=stop_area:OCE:SA:87382473& -- to=stop_area:OCE:SA:87382218& -- datetime='20170716T040000'& -- datetime_represents=departure& -- min_nb_journeys=4 local api_url = "https://api.sncf.com/v1" local api_coverage = "sncf" local api_fonction = "journeys?" local api_from = code_api_from local api_to = code_api_to local api_datetime = os.date("%Y%m%dT%H%M00", os.time()) local api_datetime_represents = "departure" local api_min_nb_journeys = "3" local Query = api_url local Query = Query .. "/coverage/" .. api_coverage local Query = Query .. "/" .. api_fonction local Query = Query .. "from=" .. api_from.."&" local Query = Query .. "to=" .. api_to.."&" local Query = Query .. "datetime=" .. api_datetime.."&" local Query = Query .. "datetime_represents=" .. api_datetime_represents.."&" local Query = Query .. "min_nb_journeys" .. api_min_nb_journeys Debug("grey","T2".." - "..Iti_Titre) local http = net.HTTPClient({ timeout = TimeOut }) Debug("grey","T3".." - "..Iti_Titre) Debug("grey",Query) local ok = pcall(function() http:request(Query, { options = { method = 'GET', headers ={ ["Content-Type"] = "application/json", ["Authorization"] = "BASIC "..User_API_Sncf}, data = body }, success = function(response) Debug("grey","T4".." - "..Iti_Titre) if response.status == 200 then Debug("grey","T5".." - "..Iti_Titre) Trace("blue","Traitement ok : "..Iti_Titre) local status, data = pcall(json.decode, response.data) if (status and data) then Trace("green","Départ : "..data.journeys[1].sections[1].from.stop_point.name) Trace("green","Direction : "..data.journeys[1].sections[1].to.stop_point.name) SetUI(VD_Id, "lblLigne", data.journeys[1].sections[1].display_informations.commercial_mode .." / "..data.journeys[1].sections[1].display_informations.code) SetUI(VD_Id, "lblFrom", data.journeys[1].sections[1].from.stop_point.name) SetUI(VD_Id, "lblTo", data.journeys[1].sections[1].to.stop_point.name) SetUI(VD_Id, "lblDir", data.journeys[1].sections[1].display_informations.direction) if data.journeys[1].status =="" then SetUI(VD_Id, "lblTrafic", "normal") else SetUI(VD_Id, "lblTrafic", data.journeys[1].status) end local Date_Time = Conversion_Date(data.journeys[1].sections[1].departure_date_time) local Horaire = tostring(tonumber(os.date("%H", Date_Time))) .. " heure ".. tostring(tonumber(os.date("%M", Date_Time))) local JourSemaine = josdGetJourSemaine(os.date("%w", MonHeure)) -- Test pour vérifier si le prochain départ est pour le jour même if os.date("%Y/%m/%d",Date_Time) == os.date("%Y/%m/%d",time) then Prochain_Depart = "aujourd'hui" else Prochain_Depart = JourSemaine end Trace("green", "Prochain départ "..Prochain_Depart.." à " ..os.date("%H:%M", Date_Time)) local Lbl_message = "Départ à "..os.date("%H:%M", Date_Time) -- SetUI(params[idx].VD_Id, "lblDep1", "Départ "..Prochain_Depart.." à " ..Horaire) message = "Prochain départ" message = message .. " "..Prochain_Depart message = message .. " de "..Msg_Depart message = message .. " pour "..Msg_Arrivee message = message .. " a ".. Horaire local Date_Time = Conversion_Date(data.journeys[1].sections[1].arrival_date_time) local Horaire = tostring(tonumber(os.date("%H", Date_Time))) .. " heure ".. tostring(tonumber(os.date("%M", Date_Time))) local JourSemaine = josdGetJourSemaine(os.date("%w", Date_Time)) message = message .. " Arrivée à "..Horaire Trace("green", "Arrivée à " ..os.date("%H:%M", Date_Time)) Lbl_message = Lbl_message .." Arrivée à "..os.date("%H:%M", Date_Time) SetUI(VD_Id, "lblDep1", Lbl_message) -- Envoi d'un message sur l'enceinte SONOS if Msg_Sonos == "OUI" then Debug("grey", "Envoi Message sur enceinte SONOS") fibaro:startScene(SceneID_Sonos, {{msg = message}, {vol = Volume_Sonos}}) end else Trace("orange"," Attention : Aucunes données à traiter") end else Debug("grey","T6".." - "..Iti_Titre) Trace("yellow","Traitement ko : "..Iti_Titre) if response.status == 500 or response.status == 503 then Trace("orange","Erreur d'indisponibilité du serveur") else Trace("orange","Erreur requête serveur, response.status = "..response.status) end end end, error = function(err) Debug("grey","T7".." - "..Iti_Titre) Trace("orange","Erreur de reception de données, Erreur = ".. err) end }) end) if not(ok) then Trace("orange","Erreur dans l'exécution de fhttp:request(Query") end Debug("grey","T9".." - "..Iti_Titre) end function Start() Debug("grey","VD_Id="..VD_Id.." / Volume_Sonos="..Volume_Sonos.." / Msg_Sonos="..Msg_Sonos) -- test pour vérifier si le module virtuel exist ou pas local ip = fibaro:get(VD_Id, 'IPAddress') if ip == nil then Debug("orange","Warning : Le module virtuel : "..VD_Id.." n'existe pas. Vous devez le créer !") else -- Lancement du traitement de l'itinéraire GetData() end end ------------------------------------------------------------------------------- -- Begining off Scène ------------------------------------------------------------------------------- local params = fibaro:args() Trace("orange","Début de traitement de la scène") if (params) then for k, v in ipairs(params) do if (v.Iti_Titre) then Iti_Titre = v.Iti_Titre end if (v.code_api_to) then code_api_to = v.code_api_to end if (v.code_api_from) then code_api_from = v.code_api_from end if (v.Msg_Arrivee) then Msg_Arrivee = v.Msg_Arrivee end if (v.Msg_Depart) then Msg_Depart = v.Msg_Depart end if (v.Msg_Sonos) then Msg_Sonos = v.Msg_Sonos end if (v.Volume_Sonos) then Volume_Sonos = v.Volume_Sonos end if (v.VD_Id) then VD_Id = v.VD_Id end end Start() else Trace("orange","Erreur : Cette scène fonctionne par appel depuis un VD avec un passage de paramètres") end Trace("orange","Fin de traitement de la scène")
  6. MAM78

    Itinéraire SNCF

    alors là tu à bien un PB de token probablement. Laisse moi un instant, je vais vous livrer une nouvelle version
  7. MAM78

    Itinéraire SNCF

    lorsque tu saisis TER, tu dois avoir une liste qui s'affiche, puis tu sélectionnes la ligne qui correspond à ta recherche et tu fais ENTER puis tu récupère le code du champs
  8. MAM78

    Itinéraire SNCF

    @minos Si tu arrives à extraire le code Rest indiqué ci-dessous, ce ne doit pas venir de ton token.
  9. MAM78

    Itinéraire SNCF

    t'inquiète ce sera plus simple pour la future version
  10. MAM78

    Itinéraire SNCF

    Super, pour ton info, j'ai réécrit la Scène que j'ai associé à un VD afin de pouvoir disposer autant de trajets que l'on souhaite. J'ai également intégré l'info trafic. J'ai encore quelques modifications à faire. Je posterais ce soir les nouveautés. Patience [emoji39]
  11. MAM78

    Itinéraire SNCF

    lorsque tu as saisie ton token, est-ce que tu as cliqué sur le symbol disquette ?
  12. MAM78

    Itinéraire SNCF

    Saisie entre le mot lines et le symbole de la poubelle, le nom de ta ligne et elle apparaitra comme par miracle Moi aussi, je n'avais pas capté du premier coup
  13. MAM78

    Itinéraire SNCF

    envoi ta capture d'écran
  14. MAM78

    Itinéraire SNCF

    Tu prends celui envoyé par mail
  15. MAM78

    Itinéraire SNCF

    @Sakkhho tu peux essayer ça ? line:OCE:SN-87754994-87386573 route:OCE:SN-RERA-87386573-87754994 stop_point:OCE:SP:RERA-87386573
  16. MAM78

    Itinéraire SNCF

    1) il faut cliquer sur type a key to add a path éléments 2) sélectionner lines 3) Puis cliquer sur ADD 4) Saisir le nom de ta ligne en claire (exemple : RER A) 5) Sélectionner dans la liste la ligne qui correspond à votre recherche 5) Faire entrée Cela va transformer votre saisie en un code. Idem pour les autres champs
  17. MAM78

    Itinéraire SNCF

    Tu peux préciser tes saisies pour chaque champs ?
  18. MAM78

    Itinéraire SNCF

    il faut cliquer sur type a key to add a path éléments Saisir le nom de ta ligne Puis cliquer sur ADD Cela va transformer votre saisie en un code. Idem pour les autres champs
  19. Hello @Sakkhho Comme évoqué, tu trouveras ci-dessous le lien sur mon tuto qui utilise l'API de la SNCF Il reste encore pas mal de boulot. Je n'ai pas encore trouver comment avoir de l'info trafic sur la ligne. A suivre ...
  20. MAM78

    Itinéraire SNCF

    Itinéraire SNCF Préambule : Sur la suggestion/initiative de @Sakkhho vous trouverez ci-dessous les bases d'un nouveau Virtual Device et d'une Scène visant à obtenir des informations sur les itinéraires de trains de la SNCF. Le projet exploite l'API mise à disposition par la SNCF disponible sous la forme d'Open Data. Cette API permet notamment d'obtenir des informations sur : Calculer un itinéraire en train de gare à gare en combinant les trains Rechercher les horaires planifiés des arrêts en gare Consulter les grilles horaires d'une ligne Le Projet : Le but du projet consiste à (pour le moment) : Afficher l'horaire du prochain départ d'un train sur une ligne et une gare donnée En option, émettre une notification vocale sur une enceinte SONOS (en mode TTS) et selon l'activation d'un bouton sur un VD Et pour plus tard : Indiquer s'il y a une perturbation sur la ligne Vos idées/suggestions sont le bienvenues Pré-requis : 1) Pour pouvoir utiliser l'API de la SNCF, vous devez vous créer un compte sur : https://data.sncf.com/api 2) Une fois votre compte créé vous recevrez un mail avec une clé d’authentification 3) Il faut encoder la clé d'authentification en format Base64, pour cela, vous devez vous connecter au site : https://www.base64encode.org 4) Encoder la clef reçu dans le mail évoqué ci-dessus 5) Conservé le code généré, il vous sera nécessaire au paragraphe Configuration Installation : Créer une nouvelle scène et copier le code LUA ci-dessous : --[[ %% properties %% events %% globals --]] ---------------------------------------------------------------------------------- -- Name : SNCF Itinéraire ---------------------------------------------------------------------------------- -- Cette scène permet d'obtenir l'horaire du prochain train au départ d'une gare ---------------------------------------------------------------------------------- -- Type : Virtual Device & Scene -- Utilisation : HC2 ---------------------------------------------------------------------------------- -- Le Projet : -- Construire Virtual Device Affichant les données reccupérées -- avec en option une notification vocale sur une enceinte SONOS en mode TTS ---------------------------------------------------------------------------------- -- Version : 0.1 -- Création : MAM78 -- Date MAJ : 09/07/2017 -- -- Evolutions : -- V0.1 09/07/2017 : Initialisation du projet ---------------------------------------------------------------------------------- -- User variables local Msg_Sonos = false -- A activer si vous disposez de ma scène de traitement de message TTS Sonos local SceneID_Sonos = 61 local Volume_Sonos = 20 local Msg_Depart = "letan la ville" -- écriture phonétique pour TTS local Msg_Arrivee = "paris gare saint lazard" -- écriture phonétique pour TTS local modetrace = true local modedebug = true ---------------------------------------------------------------------------------- -- Pour pouvoir utiliser l'API de la SNCF, vous devez vous créer un compte sur : -- https://data.sncf.com/api -- Une fois votre compte créé vous recevrez un mail avec une clé d’authentification -- Puis, vous devez vous connecter au site : -- https://www.base64encode.org -- Puis, encoder la clef reçue dans le mail évoqué ci-dessus -- Copier ce code généré dans la vadiable ci-dessous (User_API_Sncf) ---------------------------------------------------------------------------------- local User_API_Sncf = "à remplacer par l'encodage 64 du code d'accès à l'API SNCF" ---------------------------------------------------------------------------------- -- Les variables ci-dessous détermine le trajet que vous souhaitez utiliser -- Ces codes sont récupérables sur le site : -- http://canaltp.github.io/navitia-playground/play.html -- Saisir dans champs : -- API = https://api.sncf.com/v1 -- Token = le contenu de la variable User_API_Sncf (ci-dessus) -- coverage = sncf -- lines = saisir/sélectionner la localité de la station en tête de votre ligne -- -> Votre saisie va se transformer en un code -- routes = le sens du trajet dans lequel vous circulez -- -> Votre saisie va se transformer en un code -- routes = le sens du trajet dans lequel vous circulez -- -> Votre saisie va se transformer en un code -- stop_points = saisir le nom de votre station de départ -- -> Votre saisie va se transformer en un code -- empty feature = departures -- Cliquer sur le bouton SUBMIT -- vous devriez obtenir la liste des prochains départ -- Copier/coller les codes obtenus dans les variables correspondantes ci-dessous ---------------------------------------------------------------------------------- local code_api_lines = "line:OCE:SN-87384008-87382481" local code_api_routes = "route:OCE:SN-Transilien-87382481-87384008" local code_api_stop_points = "stop_point:OCE:SP:Transilien-87382473" ---------------------------------------------------------------------------------- -- Ne pas modifier le code ci-dessous, sinon pour l'adapter à votre usage ---------------------------------------------------------------------------------- ---------------------------------------------------------------------------------- -- Message pour mode Trace ---------------------------------------------------------------------------------- function Trace(color, message) if modetrace then if color and color ~= "" then fibaro:debug('<span style="color:'..color..';">'..message..'</span>') else fibaro:debug(message) end end end ---------------------------------------------------------------------------------- -- Message pour mode Debug ---------------------------------------------------------------------------------- function Debug(color, message) if modedebug then if color and color ~= "" then fibaro:debug('<span style="color:'..color..';">'..message..'</span>') else fibaro:debug(message) end end end ---------------------------------------------------------------------------------- -- Retourne le jour de la semaine en clair ---------------------------------------------------------------------------------- function josdGetJourSemaine(jour) josdGetJourSemaineTab={[0]="Dimanche",[1]="Lundi",[2]="Mardi",[3]="Mercredi",[4]="Jeudi",[5]="Vendredi",[6]="Samedi"} return josdGetJourSemaineTab[tonumber(jour)] end ---------------------------------------------------------------------------------- -- Conversion format date "aaaammjjThhmmss" en format date ---------------------------------------------------------------------------------- function Conversion_Date(dateheure) local TableDate = os.date("*t") TableDate.day = string.sub (dateheure, 7, 8) TableDate.month = string.sub (dateheure, 5, 6) TableDate.year = string.sub (dateheure, 1, 4) TableDate.hour = string.sub (dateheure, 10, 11) TableDate.min = string.sub (dateheure, 12, 13) return (os.time(TableDate)) end ---------------------------------------------------------------------------------- -- Traitement des données en provenance de l'IPA SNCF ---------------------------------------------------------------------------------- function GetData() local api_url = "https://api.sncf.com/v1" local api_coverage = "sncf" local api_lines = code_api_lines local api_routes = code_api_routes local api_stop_points = code_api_stop_points local api_fonction = "departures?" local Query = api_url local Query = Query .. "/coverage/" .. api_coverage local Query = Query .. "/lines/" .. api_lines local Query = Query .. "/routes/" .. api_routes local Query = Query .. "/stop_points/" .. api_stop_points local Query = Query .. "/" .. api_fonction local http = net.HTTPClient() Debug("grey",Query) local ok = pcall(function() http:request(Query, { options = { method = 'GET', headers ={ ["Content-Type"] = "application/json", ["Authorization"] = "BASIC "..User_API_Sncf}, data = body }, success = function(response) if response.status == 200 then local status, data = pcall(json.decode, response.data) if (status and data) then Trace("green","Départ : "..data.departures[1].stop_point.name) Trace("green","Direction : "..data.departures[1].display_informations.direction) local MonHeure = Conversion_Date(data.departures[1].stop_date_time.departure_date_time) local Horaire = tostring(tonumber(os.date("%H", MonHeure))) .. " heure ".. tostring(tonumber(os.date("%M", MonHeure))) local JourSemaine = josdGetJourSemaine(os.date("%w", MonHeure)) message = "Prochain départ " -- Test pour vérifier si le prochain départ est pour le jour même if os.date("%Y/%m/%d",MonHeure) == os.date("%Y/%m/%d",time) then message = message .. " aujourdui " Trace("green", "Prochain départ aujourd'hui à " ..Horaire) else message = message .. " "..JourSemaine Trace("green", "Prochain départ "..JourSemaine.." a " ..Horaire) end message = message .. " de "..Msg_Depart message = message .. " pour "..Msg_Arrivee message = message .. " a ".. Horaire -- Envoi d'un message sur l'enceinte SONOS if Msg_Sonos then Debug("grey", "Envoi Message sur enceinte SONOS") fibaro:startScene(SceneID_Sonos, {{msg = message}, {vol = Volume_Sonos}}) end else Trace("orange"," Attention : Aucunes données à traiter") end else if response.status == 500 or response.status == 503 then Trace("orange","Erreur d'indisponibilité du serveur") else Trace("orange","Erreur requête serveur, response.status = "..response.status) end end end, error = function(err) Trace("orange","Erreur de reception de données, Erreur = ".. err) end }) end) if not(ok) then Trace("orange","Erreur dans l'exécution de fhttp:request(Query") end end GetData() Configuration : Un ensemble de variables sont disponibles pour l'utilisateur, -- User variables local modetrace = true -- permet de voir le résultat du traitement local modedebug = true -- permet de suivre les différente étapes lors de l'exécution du traitement local Msg_sonos = false -- A activer si vous disposez de ma scène de traitement de message TTS Sonos local SceneID_Sonos = 61 -- Id de la scène qui traite les messages vocaux envoyés sur une enceinte Sonos local Volume_Sonos = 20 -- Détermine le volume des messages vocaux envoyés sur l'enceinte Sonos (entre 0% et 100%) local Msg_Depart = "lestant la ville" -- nom de la localité de départ (écriture en mode phonétique pour TTS) local Msg_Arrivee = "paris gare saint lazard" -- nom de la localité de la fin ligne (écriture en mode phonétique pour TTS) local User_API_Sncf = "à remplacer par l'encodage 64 du code d'accès à l'API SNCF" -- code généré au chapitre pré-requis Pour préciser votre trajet, il est nécessaire de récupérer les codes (api_lines, api_routes, api_stop_points) que vous allez pouvoir gérer depuis le site http://canaltp.github.io/navitia-playground/play.html 1) Vous devez vous connecter sur le http://canaltp.github.io/navitia-playground/play.html 2) Saisir dans champs : API = https://api.sncf.com/v1 Token = le contenu de la variable User_API_Sncf (ci-dessus) coverage = sncf lines = saisir/sélectionner la localité de la station en tête de votre ligne (votre saisie va se transformer en un code) routes = le sens du trajet dans lequel vous circulez (votre saisie va se transformer en un code) routes = le sens du trajet dans lequel vous circulez (votre saisie va se transformer en un code) stop_points = saisir le nom de votre station de départ (votre saisie va se transformer en un code) empty feature = departures 4) Cliquer sur le bouton SUBMIT 5) En-dessous du bouton, vous devriez obtenir la liste des prochains départ, sinon avez du faire une erreur ! 6) Copier/coller les codes obtenus dans les champs (lines, routes, stop_points) dans les variables utilisateur correspondantes ci-dessous ---------------------------------------------------------------------------------- local code_api_lines = "line:OCE:SN-87384008-87382481" --remplacer la valeur entre guillemet local code_api_routes = "route:OCE:SN-Transilien-87382481-87384008" --remplacer la valeur entre guillemet local code_api_stop_points = "stop_point:OCE:SP:Transilien-87382473" --remplacer la valeur entre guillemet Utilisation : En attendant, la création du VD qui va afficher les données, vous pour exécuter la Scène en mode début et lire le résultat dans la trace. Versions : V0.1 : du 09/07/2017 -> Intialisation du projet
  21. @Sakkhho dans quelle gare tu montes dans ton RER A pour quelle destination
  22. je vois que nous avons les mêmes sources de travail
  23. @minos je vais me pencher sur le sujet J'ai bien une idée. A suivre ...
  24. attention de bien reprendre le dernier code que j'ai déposé. j'ai corrigé quelques erreurs
  25. Hello @Sakkhho Voici ton code corrigé avec une traitement des erreurs potentielles --[[ %% autostart %% properties %% globals --]] -- User variables function GetData() local URL = "https://api-ratp.pierre-grimaud.fr" local Parameter = "/v3/traffic?format=json" local Query = URL .. Parameter local http = net.HTTPClient() local ok = pcall(function() http:request(Query, { options = { method = 'GET', headers = {["Content-Type"] = "application/json"}, data = body }, success = function(response) if response.status == 200 then local status, data = pcall(json.decode, response.data) if (status and data) then LineRer = data.result.rers[1].line EtatRer = data.result.rers[1].title EtatLongRer = data.result.rers[1].message LineMetro = data.result.metros[1].line EtatMetro = data.result.metros[1].title fibaro:debug(LineRer) fibaro:debug(EtatRer) fibaro:debug(LineMetro) fibaro:debug(EtatMetro) fibaro:debug(EtatRer) end else if response.status == 500 or response.status == 503 then fibaro:debug("Erreur d'indisponibilité du serveur") else fibaro:debug("Erreur requête serveur, response.status = "..response.status) end end end, error = function(err) fibaro:debug("Erreur de reception de données, Erreur = ".. err) end }) end) if not(ok) then Debug("red","Erreur dans l'exécution de fhttp:request(Query") end end GetData()
×
×
  • Créer...