Page 3 sur 26
Re: Durée de trajet avec Waze
Publié : 31 janv. 2016, 13:36
par Neutrino
ok, dans ce cas soit :
soit
Code : Tout sélectionner
idx='172'
commandArray['UpdateDevice']=idx..'|0|'..routeTotalTimeMin
Re: Durée de trajet avec Waze
Publié : 31 janv. 2016, 14:33
par MAidEN91
Yes c'est good merci
On peux changer le digit ou la légende du graph ou c'est en dur dans domo?
Dolby tu peux partager ta fonction pour optimiser les tests? Il est vrai que les variations de moins d'une minutes ne servent a rien. Du coup tu laisses tourner ton script toute la journée tu ne l'ajuste pas uniquement le matin comme présenté au départ?
Re: Durée de trajet avec Waze
Publié : 03 févr. 2016, 22:57
par MAidEN91
Question subsidiaire
Ce qui serait interessant c'est de pouvoir avoir l'historique des heures de pointe de manière précise sans que les stats soient lissées. Car même si notre script se lance que le matin (j'ai config le mien de 6h a 10h) cela reste qu'une petite partie de la journée sur 24h, du coup le reste du temps la valeur est faible et plus recalculée.
Savez vous s'il y a un moyen de pouvoir garder l'info de manière précise? Ci dessous mon exemple, sur la seconde courbe qui porte sur les 30 derniers jours on a la tendance, mais aucune vue sur les pics de trafic du matin.

Re: Durée de trajet avec Waze
Publié : 04 févr. 2016, 10:47
par dolby44
Hello,
Désolé de ne pas t'avoir répondu avant.
Bon je vois que tu as réussi à le faire par toi-même.
De mon coté, je lance le script toute la journée, donc je n'ai pas d'interruption dans ma courbe.
Ce que je te propose de faire, c'est de faire le test sur les heure uniquement sur la mise à jour de ta variable texte.
Tu auras ainsi pas trop de données texte à stocker, mais un aperçu complet du temps de trajet.
Un autre truc que j'aimerai faire serait d'afficher le temps de trajet sur mon trajet préféré, mais je ne sais pas si c'est possible.
Sinon, afficher trois variables avec les propositions sur les 3 meilleurs trajets. Le plugin Waze sur Jeedom le fait, donc on doit pouvoir le faire aussi sur domoticz.
Re: Durée de trajet avec Waze
Publié : 01 mars 2016, 17:19
par konix
Bonjour à tous,
J'ai ajouter la durée de trajet Waze pour mon parcour allé et retour et cela fonctionne parfaitement.
J'aimerai maintenant forcer les script sur un des trois trajets proposé.
Avez vous une idée ?
Je pensai jouer sur la valeur de la variable "trajet" ?
local waze=assert(io.popen('curl "
https://www.waze.com/row-RoutingManager ... LOW_UTURNS"'))
local trajet = waze:read('*all')
waze:close()
Merci pour vos retours
Re: Durée de trajet avec Waze
Publié : 22 mars 2016, 17:48
par konix
Un petit Up pour déterrer le sujet

Re: Durée de trajet avec Waze
Publié : 22 mars 2016, 21:02
par Neutrino
La variable trajet ne fait que stocker le retour de la requête au format JSON.
La solution si elle existe doit se situer ici:
Code : Tout sélectionner
&returnJSON=true&timeout=6000&nPaths=1&options=AVOID_TRAILS%3At%2CALLOW_UTURNS
Le paramètre nPaths permet de retourner plusieurs trajets, c'est par là que je commencerai à creuser.
Re: Durée de trajet avec Waze
Publié : 22 mars 2016, 22:50
par Neutrino
Bon, pour avoir un truc un peu comme Jeedom, c'est à dire chopper 3 trajets et afficher la durée, j'étais effectivement sur la bonne piste.
Je n'utilise pas de graphe, mais ça doit être adaptable, surtout avec le custom sensor qui permet de mettre le graphe en minutes
Je me contente de compiler les infos dans le capteur text.
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 = '97'
-- y = latitude et x = longitude
-- exemple pour paris :
-- departx="2.2903622"
-- departy="48.8582546"
--coordonnées de départ
departx="-1"
departy="46"
--coordonnées d'arrivée
arrivex="-2"
arrivey="47"
--Nombre d'itinéraires possibles
nbIti='3'
---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}
end
return commandArray
On obtient ça :

- waze.PNG (24.65 Kio) Consulté 12023 fois
Après, il doit y avoir moyen de mettre ça plus en beauté avec la Custom Page (oui avec des majuscules

) de Vil1driver.
Re: Durée de trajet avec Waze
Publié : 23 mars 2016, 08:32
par konix
Merci pour vos réponse je vais creuser la question avec vos commentaires

Re: Durée de trajet avec Waze
Publié : 23 mars 2016, 23:23
par Neutrino
Pour sélectionner un trajet précis, il faut déjà qu'il soit récupérer par la requête (si c'est pas le cas, il est peut-être temps de reconsidérer votre trajet habituel

)
Le nombre max de possibilités est de 4.
Ensuite, il suffit de tester la variable routeName avec le trajet préféré.
Si la condition est vraie, on balance la durée dans la commandArray pour l'afficher.
Mon but premier est de savoir si je dois prendre telle ou telle routes suivant les travaux à proximité de chez moi et donc de savoir si je dois tourner à gauche ou à droite au bout de ma rue

.