Page 4 sur 26

Re: Durée de trajet avec Waze

Publié : 05 juin 2016, 17:52
par multinet
Salut Neutrino

Avec le script denriere version (celui avec 3 iti possibles)
j'obtiens ce message d'erreur lorsque je l'execute manuellement

Code : Tout sélectionner

root@domoticz:/home/pi/domoticz/scripts/lua# lua script_time_wazeN2.lua 
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100    54  100    54    0     0    108      0 --:--:-- --:--:-- --:--:--   108
lua: script_time_wazeN2.lua:53: bad argument #1 to 'pairs' (table expected, got nil)
stack traceback:
	[C]: in function 'pairs'
	script_time_wazeN2.lua:53: in main chunk
	[C]: ?
Une idée ? (sachant que le script d'origine me met aussi une erreur du meme style mais différente)
Un grand merci d'avance
Multinet

Re: Durée de trajet avec Waze

Publié : 06 juin 2016, 10:33
par Neutrino
Il doit y avoir un problème avec tes coordonnées de départ et d'arrivée.
Essaie d'échanger X et Y pour voir, c'est souvent l'erreur qui est faite.

Re: Durée de trajet avec Waze

Publié : 06 juin 2016, 12:56
par multinet
Super merci c'etait cela en effet j'avais inversé

Bon il me reste un pb car la mise à jour du capteur virtuel type 'text' ne fonctionne pas (j'ai toujours hello world')

j'ai vérifié l'idx il est bon

As tu une idée.?

Merci et bonne journée

Re: Durée de trajet avec Waze

Publié : 06 juin 2016, 15:50
par Neutrino
Ajoute un

Code : Tout sélectionner

print(itineraires)
avant le commandArray, histoire de voir si tout est bien calculé.

Re: Durée de trajet avec Waze

Publié : 06 juin 2016, 17:23
par staber
Lorsque je passe :

Code : Tout sélectionner

https://www.waze.com/row-RoutingManager/routingRequest?from=x:-70.970+y:48.385&to=x:-71.014+y:48.431&returnJSON=true&timeout=6000&nPaths=1&options=AVOID_TRAILS:t,ALLOW_UTURNS
(je précise que ce n'est pas le vrai coordonnée de ma maison :D

Il me retourne :

Code : Tout sélectionner

{ "error" : "Error: 502|Could not locate start point"}
J'arrive à faire un itinéraire en France. Ça marche bien mais impossible de le faire chez moi :shock:

Une idée ? J'ai essayé aussi d'inversé x et y mais je pense que je les mets dans le bon ordre car un itinéraire en France marche

Re: Durée de trajet avec Waze

Publié : 06 juin 2016, 19:05
par Neutrino
Je viens d'essayer avec plusieurs coordonnées québécoises et j'obtiens le même résultat que toi :(
Comme si Waze n'aimait pas la Belle Province... :?
Essaye la solution Google Maps, ça fonctionne peut-être mieux... http://www.domoticz.com/forum/viewtopic ... 23&t=11450

Re: Durée de trajet avec Waze

Publié : 06 juin 2016, 21:03
par staber
Oui ça fonctionne bien avec google maps...

très étrange car j'utilise waze ici!

Re: Durée de trajet avec Waze

Publié : 06 juin 2016, 21:29
par multinet
Neutrino a écrit :Ajoute un

Code : Tout sélectionner

print(itineraires)
avant le commandArray, histoire de voir si tout est bien calculé.
Bonsoir

Cela m'affiche bien les 2 trajets avec leur durée

Merci pour toute l'aide fournie :)

Multinet

Re: Durée de trajet avec Waze

Publié : 07 juin 2016, 19:48
par multinet
Bonsoir

Je reviens sur mon probleme car je suis toujours bloqué sur la mise a jour du dispositif TEXTE de domiticz

voici le résultat de ma commande :

Code : Tout sélectionner

root@domoticz:/home/pi/domoticz/scripts/lua# lua script_time_wazeN2.OLD 
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100 35715    0 35715    0     0  54984      0 --:--:-- --:--:-- --:--:-- 55286
16:32 par Avenue François Mitterrand Mérignac; A630 - Rocade Extérieure
mon script (mes coord sont masquées volontairement)

Code : Tout sélectionner

root@domoticz:/home/pi/domoticz/scripts/lua# cat script_time_wazeN2.OLD 
--------------------------------
-- 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")()
--variables à modifier----------------
--idx du capteur
idx='256'
--coordonnées de départ
departy="x"
departx="x"
--coordonnées d'arrivée
arrivey="x"
arrivex="x"

--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 "https://www.waze.com/row-RoutingManager/routingRequest?from=x%3A'..departx..'+y%3A'..departy..'&to=x%3A'..arrivex..'+y%3A'..arrivey..'&returnJSON=true&timeout=6000&nPaths='..nbIti..'&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 ..':'..routeTotalTimeSec%60
      end
      if(routeTotalTimeSec%60>=30)then
         routeTotalTimeMin = routeTotalTimeMin +1
      end
   itineraires = itineraires .. routeTotalTime.." par "..routeName
   end
   commandArray[1]={['UpdateDevice'] = idx .. '|0|' .. itineraires}
print(itineraires)
----end
    
    return commandArray
et mon dispositif text de domoticz
Capture d’écran 2016-06-07 à 19.47.21.jpg
Capture d’écran 2016-06-07 à 19.47.21.jpg (49.46 Kio) Consulté 10061 fois
si vous avez une idée ?

Merci pour tout
Multinet

Re: Durée de trajet avec Waze

Publié : 07 juin 2016, 20:02
par vil1driver
C'est quoi ce .OLD et surtout cette méthode de lancement ?!!

Les gars les scripts lua doivent être lancé par domoticz !

Si ce n'est pas domoticz qui lance le script aucune action liée à domoticz ne sera effectué !