Aller au contenu
MAM78

Itinéraire SNCF

Recommended Posts

yes, merci @MAM78, ca cest bon.

RER A bonjour :-)

Partager ce message


Lien à poster
Partager sur d’autres sites

c'est quand meme pas evident le choix du trajet je trouve , non ?

Capture d’écran 2017-07-10 à 22.00.26.png

Partager ce message


Lien à poster
Partager sur d’autres sites

Coucou,

 

J'arrive à extraire ça avec ça :

https://api.sncf.com/v1/coverage/sncf/journeys?from=admin:fr:71076&to=admin:fr:21231

 

{"tickets":[],"links":[{"href":"https:\/\/api.sncf.com\/v1\/coverage\/sncf\/journeys?to=admin%3Afr%3A21231&from=admin%3Afr%3A71076&datetime_represents=departure&datetime=20170711T055201","type":"next","rel":"next","templated":false},{"href":"https:\/\/api.sncf.com\/v1\/coverage\/sncf\/journeys?to=admin%3Afr%3A21231&from=admin%3Afr%3A71076&datetime_represents=arrival&datetime=20170711T063859","type":"prev","rel":"prev","templated":false},{"href":"https:\/\/api.sncf.com\/v1\/coverage\/sncf\/journeys?to=admin%3Afr%3A21231&from=admin%3Afr%3A71076&datetime_represents=departure&datetime=20170711T000000","type":"first","rel":"first","templated":false},{"href":"https:\/\/api.sncf.com\/v1\/coverage\/sncf\/journeys?to=admin%3Afr%3A21231&from=admin%3Afr%3A71076&datetime_represents=arrival&datetime=20170711T235959","type":"last","rel":"last","templated":false},{"href":"https:\/\/api.sncf.com\/v1\/coverage\/sncf\/stop_points\/{stop_point.id}","type":"stop_point","rel":"stop_points","templated":true},{"href":"https:\/\/api.sncf.com\/v1\/coverage\/sncf\/stop_areas\/{stop_area.id}","type":"stop_area","rel":"stop_areas","templated":true},{"href":"https:\/\/api.sncf.com\/v1\/coverage\/sncf\/vehicle_journeys\/{vehicle_journey.id}","type":"vehicle_journey","rel":"vehicle_journeys","templated":true},{"href":"https:\/\/api.sncf.com\/v1\/coverage\/sncf\/routes\/{route.id}","type":"route","rel":"routes","templated":true},{"href":"https:\/\/api.sncf.com\/v1\/coverage\/sncf\/commercial_modes\/{commercial_mode.id}","type":"commercial_mode","rel":"commercial_modes","templated":true},{"href":"https:\/\/api.sncf.com\/v1\/coverage\/sncf\/lines\/{line.id}","type":"line","rel":"lines","templated":true},{"href":"https:\/\/api.sncf.com\/v1\/coverage\/sncf\/physical_modes\/{physical_mode.id}","type":"physical_mode","rel":"physical_modes","templated":true},{"href":"https:\/\/api.sncf.com\/v1\/coverage\/sncf\/networks\/{network.id}","type":"network","rel":"networks","templated":true}],"journeys":[{"fare":{"found":false,"total":{"currency":"","value":"0.0"},"links":[]},"status":"","links":[{"href":"https:\/\/api.sncf.com\/v1\/coverage\/sncf\/journeys?from=admin%3Afr%3A71076&last_section_mode%5B%5D=walking&is_journey_schedules=True&direct_path=none&to=admin%3Afr%3A21231&min_nb_journeys=5&min_nb_transfers=0&allowed_id%5B%5D=stop_point%3AOCE%3ASP%3ATrainTER-87725002&allowed_id%5B%5D=stop_point%3AOCE%3ASP%3ATrainTER-87713040&first_section_mode%5B%5D=walking","type":"journeys","rel":"same_journey_schedules","templated":false}],"tags":["walking","ecologic"],"nb_transfers":0,"durations":{"walking":0,"total":2820},"arrival_date_time":"20170711T063900","calendars":[{"exceptions":[{"type":"remove","datetime":"20170714"},{"type":"remove","datetime":"20170815"}],"active_periods":[{"begin":"20170617","end":"20170902"}],"week_pattern":{"monday":true,"tuesday":true,"friday":true,"wednesday":true,"thursday":true,"sunday":false,"saturday":true}}],"departure_date_time":"20170711T055200","requested_date_time":"20170710T215957","sections":[{"from":{"embedded_type":"administrative_region","quality":0,"administrative_region":{"insee":"71076","name":"Chalon-sur-Sa\u00f4ne","level":8,"coord":{"lat":"46.788898","lon":"4.85296"},"label":"Chalon-sur-Sa\u00f4ne (71100)","id":"admin:fr:71076","zip_code":"71100"},"id":"admin:fr:71076","name":"Chalon-sur-Sa\u00f4ne (71100)"},"links":[],"arrival_date_time":"20170711T055200","co2_emission":{"value":0.0,"unit":""},"to":{"embedded_type":"stop_point","stop_point":{"name":"Chalon-sur-Sa\u00f4ne","links":[],"coord":{"lat":"46.781561","lon":"4.843487"},"label":"Chalon-sur-Sa\u00f4ne (Chalon-sur-Sa\u00f4ne)","equipments":[],"administrative_regions":[{"insee":"71076","name":"Chalon-sur-Sa\u00f4ne","level":8,"coord":{"lat":"46.788898","lon":"4.85296"},"label":"Chalon-sur-Sa\u00f4ne (71100)","id":"admin:fr:71076","zip_code":"71100"}],"id":"stop_point:OCE:SP:TrainTER-87725002","stop_area":{"codes":[{"type":"CR-CI-CH","value":"0087-725002-BV"}],"name":"Chalon-sur-Sa\u00f4ne","links":[],"coord":{"lat":"46.781561","lon":"4.843487"},"label":"Chalon-sur-Sa\u00f4ne (Chalon-sur-Sa\u00f4ne)","timezone":"Europe\/Paris","id":"stop_area:OCE:SA:87725002"}},"quality":0,"id":"stop_point:OCE:SP:TrainTER-87725002","name":"Chalon-sur-Sa\u00f4ne (Chalon-sur-Sa\u00f4ne)"},"departure_date_time":"20170711T055200","duration":0,"type":"crow_fly","id":"section_0_0","mode":"walking"},{"from":{"embedded_type":"stop_point","stop_point":{"name":"Chalon-sur-Sa\u00f4ne","links":[],"coord":{"lat":"46.781561","lon":"4.843487"},"label":"Chalon-sur-Sa\u00f4ne (Chalon-sur-Sa\u00f4ne)","equipments":[],"administrative_regions":[{"insee":"71076","name":"Chalon-sur-Sa\u00f4ne","level":8,"coord":{"lat":"46.788898","lon":"4.85296"},"label":"Chalon-sur-Sa\u00f4ne (71100)","id":"admin:fr:71076","zip_code":"71100"}],"id":"stop_point:OCE:SP:TrainTER-87725002","stop_area":{"codes":[{"type":"CR-CI-CH","value":"0087-725002-BV"}],"name":"Chalon-sur-Sa\u00f4ne","links":[],"coord":{"lat":"46.781561","lon":"4.843487"},"label":"Chalon-sur-Sa\u00f4ne (Chalon-sur-Sa\u00f4ne)","timezone":"Europe\/Paris","id":"stop_area:OCE:SA:87725002"}},"quality":0,"id":"stop_point:OCE:SP:TrainTER-87725002","name":"Chalon-sur-Sa\u00f4ne (Chalon-sur-Sa\u00f4ne)"},"links":[{"type":"vehicle_journey","id":"vehicle_journey:OCE:SN891400F01001"},{"type":"line","id":"line:OCE:725921"},{"type":"route","id":"route:OCE:725921-TrainTER-87725002-87713040"},{"type":"commercial_mode","id":"commercial_mode:ter"},{"type":"physical_mode","id":"physical_mode:LocalTrain"},{"type":"network","id":"network:sncf"}],"arrival_date_time":"20170711T063900","additional_informations":["regular"],"co2_emission":{"value":2063.347,"unit":"gEC"},"display_informations":{"direction":"Dijon-Ville (Dijon)","code":"","description":"","links":[],"color":"000000","physical_mode":"TER","headsign":"891400","commercial_mode":"TER","equipments":[],"label":"Dijon - Chalon - M\u00e2con","text_color":"","network":"SNCF"},"to":{"embedded_type":"stop_point","stop_point":{"name":"Dijon-Ville","links":[],"coord":{"lat":"47.323392","lon":"5.027278"},"label":"Dijon-Ville (Dijon)","equipments":[],"administrative_regions":[{"insee":"21231","name":"Dijon","level":8,"coord":{"lat":"47.321579","lon":"5.04147"},"label":"Dijon (21000)","id":"admin:fr:21231","zip_code":"21000"}],"id":"stop_point:OCE:SP:TrainTER-87713040","stop_area":{"codes":[{"type":"CR-CI-CH","value":"0087-713040-BV"}],"name":"Dijon-Ville","links":[],"coord":{"lat":"47.323392","lon":"5.027278"},"label":"Dijon-Ville (Dijon)","timezone":"Europe\/Paris","id":"stop_area:OCE:SA:87713040"}},"quality":0,"id":"stop_point:OCE:SP:TrainTER-87713040","name":"Dijon-Ville (Dijon)"},"base_arrival_date_time":"20170711T063900","base_departure_date_time":"20170711T055200","departure_date_time":"20170711T055200","geojson":{"type":"LineString","properties":[{"length":67210}],"coordinates":[[4.843487,46.781561],[4.749648,46.907419],[4.848722,47.02303],[4.956226,47.130657],[4.998787,47.227377],[5.027278,47.323392]]},"duration":2820,"type":"public_transport","id":"section_1_0","stop_date_times":[{"stop_point":{"name":"Chalon-sur-Sa\u00f4ne","links":[],"coord":{"lat":"46.781561","lon":"4.843487"},"label":"Chalon-sur-Sa\u00f4ne (Chalon-sur-Sa\u00f4ne)","equipments":[],"id":"stop_point:OCE:SP:TrainTER-87725002"},"links":[],"arrival_date_time":"20170711T055200","additional_informations":[],"departure_date_time":"20170711T055200","base_arrival_date_time":"20170711T055200","base_departure_date_time":"20170711T055200"},{"stop_point":{"name":"Chagny","links":[],"coord":{"lat":"46.907419","lon":"4.749648"},"label":"Chagny (Chagny)","equipments":[],"id":"stop_point:OCE:SP:TrainTER-87713578"},"links":[],"arrival_date_time":"20170711T060100","additional_informations":[],"departure_date_time":"20170711T060200","base_arrival_date_time":"20170711T060100","base_departure_date_time":"20170711T060200"},{"stop_point":{"name":"Beaune","links":[],"coord":{"lat":"47.02303","lon":"4.848722"},"label":"Beaune (Beaune)","equipments":[],"id":"stop_point:OCE:SP:TrainTER-87713545"},"links":[],"arrival_date_time":"20170711T061000","additional_informations":[],"departure_date_time":"20170711T061100","base_arrival_date_time":"20170711T061000","base_departure_date_time":"20170711T061100"},{"stop_point":{"name":"Nuits-St-Georges","links":[],"coord":{"lat":"47.130657","lon":"4.956226"},"label":"Nuits-St-Georges (Nuits-Saint-Georges)","equipments":[],"id":"stop_point:OCE:SP:TrainTER-87713529"},"links":[],"arrival_date_time":"20170711T061900","additional_informations":[],"departure_date_time":"20170711T062000","base_arrival_date_time":"20170711T061900","base_departure_date_time":"20170711T062000"},{"stop_point":{"name":"Gevrey-Chambertin","links":[],"coord":{"lat":"47.227377","lon":"4.998787"},"label":"Gevrey-Chambertin (Gevrey-Chambertin)","equipments":[],"id":"stop_point:OCE:SP:TrainTER-87713503"},"links":[],"arrival_date_time":"20170711T062900","additional_informations":[],"departure_date_time":"20170711T063000","base_arrival_date_time":"20170711T062900","base_departure_date_time":"20170711T063000"},{"stop_point":{"name":"Dijon-Ville","links":[],"coord":{"lat":"47.323392","lon":"5.027278"},"label":"Dijon-Ville (Dijon)","equipments":[],"id":"stop_point:OCE:SP:TrainTER-87713040"},"links":[],"arrival_date_time":"20170711T063900","additional_informations":[],"departure_date_time":"20170711T063900","base_arrival_date_time":"20170711T063900","base_departure_date_time":"20170711T063900"}]},{"from":{"embedded_type":"stop_point","stop_point":{"name":"Dijon-Ville","links":[],"coord":{"lat":"47.323392","lon":"5.027278"},"label":"Dijon-Ville (Dijon)","equipments":[],"administrative_regions":[{"insee":"21231","name":"Dijon","level":8,"coord":{"lat":"47.321579","lon":"5.04147"},"label":"Dijon (21000)","id":"admin:fr:21231","zip_code":"21000"}],"id":"stop_point:OCE:SP:TrainTER-87713040","stop_area":{"codes":[{"type":"CR-CI-CH","value":"0087-713040-BV"}],"name":"Dijon-Ville","links":[],"coord":{"lat":"47.323392","lon":"5.027278"},"label":"Dijon-Ville (Dijon)","timezone":"Europe\/Paris","id":"stop_area:OCE:SA:87713040"}},"quality":0,"id":"stop_point:OCE:SP:TrainTER-87713040","name":"Dijon-Ville (Dijon)"},"links":[],"arrival_date_time":"20170711T063900","co2_emission":{"value":0.0,"unit":""},"to":{"embedded_type":"administrative_region","quality":0,"administrative_region":{"insee":"21231","name":"Dijon","level":8,"coord":{"lat":"47.321579","lon":"5.04147"},"label":"Dijon (21000)","id":"admin:fr:21231","zip_code":"21000"},"id":"admin:fr:21231","name":"Dijon (21000)"},"departure_date_time":"20170711T063900","duration":0,"type":"crow_fly","id":"section_2_0","mode":"walking"}],"co2_emission":{"value":2063.347,"unit":"gEC"},"duration":2820,"type":"best"}],"disruptions":[],"notes":[],"feed_publishers":[],"context":{"car_direct_path":{"co2_emission":{"value":15138.9397330868,"unit":"gEC"}}},"exceptions":[]}

Partager ce message


Lien à poster
Partager sur d’autres sites

t'inquiète ce sera plus simple pour la future version ;)

  • Upvote 1

Partager ce message


Lien à poster
Partager sur d’autres sites
il y a 2 minutes, Sakkhho a dit :

c'est quand meme pas evident le choix du trajet je trouve , non ?

Moi avec cette interface , pas moyen 

 

j ai toujours ce message erreur..:15:

 

tu peux essayer dans ton interface , à la place RER A de mettre TER ???

 

"message": "The server could not verify that you are authorized to acces ..."

 

Partager ce message


Lien à poster
Partager sur d’autres sites

En plus , la sncf ...ce soir m'en a fait une belle...

 

plus de 2h30 de retard , rentré à 21h ce soir ....

avec pleins de trains supprimés , des changements de trains ....Que du bonheur  !!! :16:

 

Bref ça c'est un petit coup de gueule au passage ... Désolé

Partager ce message


Lien à poster
Partager sur d’autres sites

@Sakkhho

 

Ben Merci , je comprends pas ...moi ça marche pas .. on dirait que ma token de marche pas....

 

pourtant dans le navigateur , j'ai bien la popup  dans laquelle je renseigne ma token et ça passe ...

 

bizarre ...!!

Partager ce message


Lien à poster
Partager sur d’autres sites

c'est un problème de token c'est certain

MP moi la clef je regarderai

Partager ce message


Lien à poster
Partager sur d’autres sites
il y a 2 minutes, Sakkhho a dit :

c'est un problème de token c'est certain

oui c'est ce que je me suis dit ...

donc j'en ai fait une autre avec un autre compte ....et ben pareil

 

 

Partager ce message


Lien à poster
Partager sur d’autres sites

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

Modifié par MAM78

Partager ce message


Lien à poster
Partager sur d’autres sites

Voilà le message d'erreur exact:

 

sncf3.thumb.JPG.e011682d7123e1a2099924b1ba98afa2.JPG

Partager ce message


Lien à poster
Partager sur d’autres sites

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

Partager ce message


Lien à poster
Partager sur d’autres sites
il y a 3 minutes, MAM78 a dit :

Si tu arrives à extraire le code Rest indiqué ci-dessous, ce ne dois pas venir de ton token.

@MAM78 c'est ce que je crois ....

 

j'ai pensé au soucis de navigateur : Chrome, firefox, Edge, IE  => tests tous KO !!!

Partager ce message


Lien à poster
Partager sur d’autres sites

@MAM78 , oui je vois bien le principe , sauf que j'ai l'erreur du cadre du bas Response  Message : The server ......

Partager ce message


Lien à poster
Partager sur d’autres sites

alors là tu à bien un PB de token probablement.

 

Laisse moi un instant, je vais vous livrer une nouvelle version

Partager ce message


Lien à poster
Partager sur d’autres sites
à l’instant, MAM78 a dit :

Laisse moi un instant, je vais vous livrer une nouvelle version

T'inquiete je suis pas aux pièces...après ma journée de M.... avec la sncf ...:D

Partager ce message


Lien à poster
Partager sur d’autres sites

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")

 

Partager ce message


Lien à poster
Partager sur d’autres sites

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 :

 

5963efdd96925_Sanstitre9.thumb.png.92aea48015f675207ce927bed158ccd5.png

Modifié par MAM78

Partager ce message


Lien à poster
Partager sur d’autres sites

Salut,

 

je suis en train de tester avant partir au taff ....;) surtout avant d'aller choper mon train......

 

voilà ce que j'ai dans le debug...:

 

sncf4.thumb.JPG.05e5c2abb1e2d6b9f448188183526237.JPG

Partager ce message


Lien à poster
Partager sur d’autres sites

je verrai ce soir ...il manquait les "  ".

 

mais j 'ai pas d'actualisation dans le VD ...

 

a suivre

Partager ce message


Lien à poster
Partager sur d’autres sites

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"

Partager ce message


Lien à poster
Partager sur d’autres sites

Ok je regarderai ça ce soir. ..:P

Partager ce message


Lien à poster
Partager sur d’autres sites

Coucou ,

 

Grrrrrr

ménerve !!!! :15:

 

toujours ce Pu.... de problème de token mais je comprends pourquoi il refuse !!!!!

 

SNCF5.JPG.c47a2e1ecb245f158d35f404ee08dcce.JPG

Partager ce message


Lien à poster
Partager sur d’autres sites

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

Partager ce message


Lien à poster
Partager sur d’autres sites

×