Page 3 sur 26

Re: Durée de trajet avec Waze

Publié : 31 janv. 2016, 13:36
par Neutrino
ok, dans ce cas soit :

Code : Tout sélectionner

commandArray['UpdateDevice']='172|0|'..routeTotalTimeMin
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.

Image

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 8-)
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
waze.PNG (24.65 Kio) Consulté 12013 fois
Après, il doit y avoir moyen de mettre ça plus en beauté avec la Custom Page (oui avec des majuscules :mrgreen: ) 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 :D

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 :lol: )
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 :mrgreen: .