Page 10 sur 26

Re: Durée de trajet avec Waze

Publié : 19 juil. 2017, 13:20
par schwinny
Merci pour ton retour. très utile ;)

Re: Durée de trajet avec Waze

Publié : 31 juil. 2017, 09:57
par MAidEN91
Bonjour,

J'ai tenté de faire fonctionner le script google maps (les 2 versions) mais dans les 2 cas mes compteurs s'update avec "0" comme valeur.

Quand je teste l'API a la main avec les coordonnées GPS départ et arrivée + ma clé cela fonctionne bien.

On dirait qu'une des boucles ne marche pas et qu'il passe directement a la fin en updatant a 0, normalement cela est censé se faire uniquement hors periode de calcul du trajet (journée et weekend).

Vous me direz si vous avez réussi a le faire marcher!

Re: Durée de trajet avec Waze

Publié : 12 août 2017, 16:22
par Neutrino
Pour ceux qui veulent continuer à utiliser Waze plutot que gmaps, la solution vient de ce post :
http://www.domoticz.com/forum/viewtopic ... 00#p145454
Il faut changer :

Code : Tout sélectionner

local waze=assert(io.popen('curl  "https://www.waze.com/r...".')

par :

Code : Tout sélectionner

local waze=assert(io.popen('curl --referer https://www.waze.com "https://www.waze.com/r...."')

Re: Durée de trajet avec Waze

Publié : 12 août 2017, 18:54
par MAidEN91
Impec ca fonctionne a nouveau merci pour l'info!

Re: Durée de trajet avec Waze

Publié : 18 août 2017, 10:31
par OyyoDams
Génial merci!

Re: Durée de trajet avec Waze

Publié : 20 août 2017, 13:43
par sennheiser
Salut !

Bon j'ai tout bien fait et cela fonction avec les coordonnées qui sont dans le script de base en revanche, dés que je met les miennes "de coordonnées" :D , j'ai le message suivant :

2017-08-20 13:38:07.081 Error: EventSystem: in /home/pi/domoticz/scripts/lua/script_time_waze.lua: /home/pi/domoticz/scripts/lua/script_time_waze.lua:58: bad argument #1 to 'pairs' (table expected, got nil)

J'ai essayé d'inverser les X / Y mais ca ne change rien :(

Si qqn peut m'aider ?


Merci

Re: Durée de trajet avec Waze

Publié : 20 août 2017, 21:36
par MAidEN91
Tu peux copier ton script ici?

Tu as bien mis des "." dans les coordonnées GPS?

Re: Durée de trajet avec Waze

Publié : 21 août 2017, 17:20
par sennheiser
Bonjour,

J'ai bien mis des "." pour les coordonnées.

Je précise qu'après avoir fait plein de test le script fonctionne si je met le "nblti='1'". Si je met 2 ou 3 ca ne marche plus. Donc je ne peut pas avoir plusieurs iti.

Sinon j'ai aussi toujours cette erreur là :
Error: EventSystem: Warning!, lua script /home/pi/domoticz/scripts/lua/script_time_waze.lua has been running for more than 10 seconds

Voici mon script :

Code : Tout sélectionner

---------------------------------
-- Script de calcul de temps pour un trajet entre 2 coordonnées
-- Auteur : Aurelien Neutrino
-- Date : 22 mars 2016
-- Nécessite un capteur virtuel de type Text
-- source :
-- http://www.domo-blog.fr/info-trajet-waze-eedomus-version-raspberry/
---------------------------------
commandArray={}

--import des fontions pour lire le JSON
json = (loadfile "/home/pi/domoticz/scripts/lua/JSON.lua")()
--coordonnées à modifier----------------
--idx du capteur
idx = '52'

-- y = latitude et x = longitude
-- exemple pour paris : 
-- departx="2.2XXXXXX"
-- departy="48.8XXXXXX"
--coordonnées de départ
departy="48.85XXXXX"
departx="2.29XXXXX"
--coordonnées d'arrivée
arrivey="48.XXXXX"
arrivex="2.XXXXX"

--Nombre d'itinéraires possibles
nbIti='1'

---récupère l'heure actuelle en minutes
time=os.time()
minutes=tonumber(os.date('%M',time))
hours=tonumber(os.date('%H',time))
maintenant=tonumber(hours*60+minutes)

---calcule du trajet entre 7h et 9h
--if(maintenant>=420 and maintenant<= 540 and maintenant%2==0)then
   ----------------------------------------------------------------
   --Récupération du trajet et de sa durée en temps réel via WAZE--
   ----------------------------------------------------------------
   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"'))
   local trajet = waze:read('*all')
   waze:close()
   
   local jsonTrajet = json:decode(trajet)
   --formate la réponse pour un trajet
   jsonTrajet1 = {}
   jsonTrajet1['alternatives']={}
   if(nbIti=='1')then
      jsonTrajet1['alternatives'][1] = jsonTrajet
      jsonTrajet = jsonTrajet1
   end

   itineraires = ""
   for i, alternatives in pairs(jsonTrajet['alternatives']) do
      if(i>1)then itineraires = itineraires .. " ou " end
      --Noms des principales routes empruntées
      routeName = alternatives['response']['routeName']
      --Liste des routes empruntées
      route = alternatives['response']['results']
      --Temps de trajet en secondes
      routeTotalTimeSec = 0
      --calcul du temps de trajet
      for response,results in pairs(route) do
         routeTotalTimeSec = routeTotalTimeSec + results['crossTime']
      end

      --Temps de trajet en minutes
      routeTotalTimeMin = routeTotalTimeSec/60-((routeTotalTimeSec%60)/60)

      --mise en forme de la réponse
      if (routeTotalTimeSec%60<10)then
         routeTotalTime =  routeTotalTimeMin ..':0'..routeTotalTimeSec%60
      else
         routeTotalTime =  routeTotalTimeMin ..'mn'..routeTotalTimeSec%60
      end
      if(routeTotalTimeSec%60>=30)then
         routeTotalTimeMin = routeTotalTimeMin +1
      end
   itineraires = itineraires .. routeTotalTime.." par "..routeName
   end
   print(itineraires)
   commandArray[1]={['UpdateDevice'] =idx..'|0|' .. itineraires}
return commandArray
Merci pour ton aide :)

S

Re: Durée de trajet avec Waze

Publié : 22 août 2017, 15:03
par MAidEN91
Tu as pas inversé ton X et ton Y?

Essayes avec x="2.xxxx" et y="48.xxxxx"

Sur ma version de script je n'ai pas la variable nblti, il est plus court je dois pas utiliser la dernière version...

Re: Durée de trajet avec Waze

Publié : 22 août 2017, 15:24
par sennheiser
Salut,

Merci pour la réponse.

J'ai déjà testé l'inversion et effectivement j'utilise la version qui donne 3 trajets alternatifs.

Je pense qu'il est là le souci mais je d'autre ont pris le meme script que moi et cela semble marcher.

S