[LUA] Durée de trajet avec Waze

Vous avez créé un script LUA dont vous êtes fier, un .sh génial, un programme Python hors du commun, un Tuto, c'est ici que vous pouvez les partager.
Neutrino
Messages : 2662
Inscription : 10 juil. 2015, 15:42
Localisation : Les Herbiers(85)

Re: Durée de trajet avec Waze

Message par Neutrino »

De rien :D
Merci pour vos retours, ça me fait plaisir :)
Ma maison à plein d'IP ! :mrgreen:
SAV Bonjour. Vous avez vidé le cache ?
landaisbenj
Messages : 695
Inscription : 12 mars 2017, 19:24

Re: Durée de trajet avec Waze

Message par landaisbenj »

patrice a écrit : 01 déc. 2018, 12:27 Bonjour
Oui merci au rédacteurs de ce script , je l'utilise depuis un mois,j'y ai intégré l'envoi de SMS quand le delai de déplacement dépasse une certaine durée et c'est un bijou
Merci encore
Bien joué l'idée. Je prends. Un sms en journée si l'un des deux trajets augmente un peu trop !? parfait.
Rpbi3b: Domoticz + Homebridge + Monit + Freebox scripts + Shellinabox; Rpbi2: Jarvis
Domoticz: Derniere stable; RFLINK: Dernière stable; Xiaomi Gateway
Dim33
Messages : 209
Inscription : 29 janv. 2017, 23:19

Re: Durée de trajet avec Waze

Message par Dim33 »

Super script c'est certain ..... par contre il s’exécute le weekend alors qu'il ne devrait pas.... Pas compris pourquoi ?
NUC sous Ubuntu Server / RFXCom / Domoticz Version: 2020.2
Datawolf
Messages : 273
Inscription : 03 avr. 2018, 13:51

Re: Durée de trajet avec Waze

Message par Datawolf »

Dim33 a écrit : 04 déc. 2018, 23:13 Super script c'est certain ..... par contre il s’exécute le weekend alors qu'il ne devrait pas.... Pas compris pourquoi ?
Après avoir lu ton post je viens de remplacer

Code : Tout sélectionner

local weekday = os.date('%w', time)
par

Code : Tout sélectionner

local weekday = os.date('%w')
KingOfIce
Messages : 28
Inscription : 02 juil. 2018, 11:42

Re: Durée de trajet avec Waze

Message par KingOfIce »

Dim33 a écrit : 01 sept. 2018, 09:20 Bonjour,

Avec la dernière version de Domoticz, le script m'affiche une erreur : attempt to index local 'jsonTrajet' (a nil value).

Cette ligne de code est incriminée : routeName = jsonTrajet['response']['routeName']

Code : Tout sélectionner

   -----------------------------------------
   ----------------------------------------------------------------
   --Récupération du trajet et de sa durée en temps réel via WAZE--
   ----------------------------------------------------------------
   voir_les_logs('curl --referer https://www.waze.com "https://www.waze.com/row-RoutingManager/routingRequest?from=x%3A'..departx..'+y%3A'..departy..'&to=x%3A'..arrivex..'+y%3A'..arrivey..'&returnJSON=true&returnGeometries=true&returnInstructions=true&timeout=60000&nPaths=1&clientVersion=4.0.0&options=AVOID_TRAILS%3At%2CALLOW_UTURNS%3At%2CAVOID_TOLL_ROADS"')
   local waze=assert(io.popen('curl --referer https://www.waze.com "https://www.waze.com/row-RoutingManager/routingRequest?from=x%3A'..departx..'+y%3A'..departy..'&to=x%3A'..arrivex..'+y%3A'..arrivey..'&returnJSON=true&returnGeometries=true&returnInstructions=true&timeout=60000&nPaths=1&clientVersion=4.0.0&options=AVOID_TRAILS%3At%2CALLOW_UTURNS%3At%2CAVOID_TOLL_ROADS"'))
   local infowaze = waze:read('*all')
   waze:close()
   local jsonTrajet = json:decode(infowaze)
   --Noms des principales routes empruntées
   routeName = jsonTrajet['response']['routeName']
   if routeName == nil then routeName="route non précisée" end
   --Liste des routes empruntées
   route = jsonTrajet['response']['results']
   --Temps de trajet en secondes
   routeTotalTimeSec = 0
   --calcul du temps de trajet
   routeTotalTimeSec =jsonTrajet['response']['totalRouteTime']
   
   --Temps de trajet en minutes
   routeTotalTimeMin = routeTotalTimeSec/60-((routeTotalTimeSec%60)/60)

   -- Détermination des noms des routes employées
   xtime = {}
   route = jsonTrajet['response']['results']
   voie = jsonTrajet['response']['streetNames']
   for response,results in pairs(route) do
      i = tonumber(results['street'])
      if voie[i] == nil then voie[i] = "/ND" end
      if xtime[i]==nil then xtime[i]=0 end
      xtime[i]=xtime[i]+tonumber(results['crossTime'])
      voir_les_logs(tostring(response).." "..results['crossTime'].." "..results['street'].." "..voie[i].." "..xtime[i])
   end

   i=0
   j=1
   chemin = {}
   trajet = {}

Une idée ? Personne n'a le pb avec la dernière version stable de Domoticz ?

Merci.
Hello, idem pour moi :( T'as trouvé la raison ?
Datawolf
Messages : 273
Inscription : 03 avr. 2018, 13:51

Re: Durée de trajet avec Waze

Message par Datawolf »

Faut debugger, infoWaze doit être vide...
Dim33
Messages : 209
Inscription : 29 janv. 2017, 23:19

Re: Durée de trajet avec Waze

Message par Dim33 »

KingOfIce a écrit : 06 déc. 2018, 21:03
Dim33 a écrit : 01 sept. 2018, 09:20 Bonjour,

Avec la dernière version de Domoticz, le script m'affiche une erreur : attempt to index local 'jsonTrajet' (a nil value).

Cette ligne de code est incriminée : routeName = jsonTrajet['response']['routeName']

Code : Tout sélectionner

   -----------------------------------------
   ----------------------------------------------------------------
   --Récupération du trajet et de sa durée en temps réel via WAZE--
   ----------------------------------------------------------------
   voir_les_logs('curl --referer https://www.waze.com "https://www.waze.com/row-RoutingManager/routingRequest?from=x%3A'..departx..'+y%3A'..departy..'&to=x%3A'..arrivex..'+y%3A'..arrivey..'&returnJSON=true&returnGeometries=true&returnInstructions=true&timeout=60000&nPaths=1&clientVersion=4.0.0&options=AVOID_TRAILS%3At%2CALLOW_UTURNS%3At%2CAVOID_TOLL_ROADS"')
   local waze=assert(io.popen('curl --referer https://www.waze.com "https://www.waze.com/row-RoutingManager/routingRequest?from=x%3A'..departx..'+y%3A'..departy..'&to=x%3A'..arrivex..'+y%3A'..arrivey..'&returnJSON=true&returnGeometries=true&returnInstructions=true&timeout=60000&nPaths=1&clientVersion=4.0.0&options=AVOID_TRAILS%3At%2CALLOW_UTURNS%3At%2CAVOID_TOLL_ROADS"'))
   local infowaze = waze:read('*all')
   waze:close()
   local jsonTrajet = json:decode(infowaze)
   --Noms des principales routes empruntées
   routeName = jsonTrajet['response']['routeName']
   if routeName == nil then routeName="route non précisée" end
   --Liste des routes empruntées
   route = jsonTrajet['response']['results']
   --Temps de trajet en secondes
   routeTotalTimeSec = 0
   --calcul du temps de trajet
   routeTotalTimeSec =jsonTrajet['response']['totalRouteTime']
   
   --Temps de trajet en minutes
   routeTotalTimeMin = routeTotalTimeSec/60-((routeTotalTimeSec%60)/60)

   -- Détermination des noms des routes employées
   xtime = {}
   route = jsonTrajet['response']['results']
   voie = jsonTrajet['response']['streetNames']
   for response,results in pairs(route) do
      i = tonumber(results['street'])
      if voie[i] == nil then voie[i] = "/ND" end
      if xtime[i]==nil then xtime[i]=0 end
      xtime[i]=xtime[i]+tonumber(results['crossTime'])
      voir_les_logs(tostring(response).." "..results['crossTime'].." "..results['street'].." "..voie[i].." "..xtime[i])
   end

   i=0
   j=1
   chemin = {}
   trajet = {}

Une idée ? Personne n'a le pb avec la dernière version stable de Domoticz ?

Merci.
Hello, idem pour moi :( T'as trouvé la raison ?
Le pb ne provient pas du script mais de Waze .... l'erreur devrait disparaître d'elle même.
NUC sous Ubuntu Server / RFXCom / Domoticz Version: 2020.2
Wolfen38
Messages : 1983
Inscription : 19 oct. 2017, 14:49

Re: Durée de trajet avec Waze

Message par Wolfen38 »

Datawolf a écrit : 06 déc. 2018, 14:40
Après avoir lu ton post je viens de remplacer

Code : Tout sélectionner

local weekday = os.date('%w', time)
par

Code : Tout sélectionner

local weekday = os.date('%w')
Ca change rien chez moi, ca tourne toujours le we.
Dim33
Messages : 209
Inscription : 29 janv. 2017, 23:19

Re: Durée de trajet avec Waze

Message par Dim33 »

Idem chez moi.
NUC sous Ubuntu Server / RFXCom / Domoticz Version: 2020.2
Datawolf
Messages : 273
Inscription : 03 avr. 2018, 13:51

Re: Durée de trajet avec Waze

Message par Datawolf »

Bien sur que ça tourne le weekend. Jusqu'au if weekday ~= 0 et çà sort. ;)
Répondre