Durée de trajet avec Waze

Vous avez crée 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.
Soyez précis quant aux prérequis, les manips à faire pour que votre bijou fonctionne (des chmod ?, un apt-get à faire ...)
Décrivez précisément son fonctionnement
Placez votre code entre [Quote] et {/Quote]
Chrominator
Messages : 408
Enregistré le : 19 déc. 2015, 07:29

Re: Durée de trajet avec Waze

Message par Chrominator » 12 janv. 2018, 19:26

Mieux vaut référencer le script duquel on parle si on veut du support.
Mets un lien vers ce script ou poste-le, de manière à ce qu'on puisse voir ce qui se passe.

Disable adblock

This site is supported by ads and donations.
If you see this text you are blocking our ads.
Please consider a Donation to support the site.


alacran
Messages : 74
Enregistré le : 12 sept. 2016, 10:05

Re: Durée de trajet avec Waze

Message par alacran » 15 janv. 2018, 09:57

Bonjour,
voici le script (c'est le dernier posté sur ce sujet.
J'ai uniquement modifié les valeurs id, depart et arrivee ainsi que l'import du fichier json pour prendre celui sur les pages précédentes. Mais je précise quand le laissant tel quel, ça ne fonctionne pas non plus.
---------------------------------
-- Script de calcul de temps pour un trajet entre 2 coordonnées
-- Auteur : Neutrino
-- Date : 7 septembre 2015
-- Nécessite un capteur virtuel de type Text
-- source :
-- http://www.domo-blog.fr/info-trajet-waz ... raspberry/
---------------------------------
-- Modif Chrominator
--
-- 2016-01-30 : Remplacement des secondes du trajet par " mn"
-- Pas de détermination du temps de trajet les W-E et jours fériés
-- 2017-11-11 : Détermination du nom des routes principales (les plus longtemps parcourues) car routeName n'existe plus dans le JSON
--
DEBUG=false

function voir_les_logs (s) -- nécessite la variable DEBUG
if DEBUG then
if s ~= nil then
print ("<font color='#f3031d'>".. s .."</font>")
else
print ("<font color='#f3031d'>aucune valeur affichable</font>")
end
end
end

commandArray={}

--import des fontions pour lire le JSON
--json = (loadfile "/home/pi/domoticz/scripts/lua/JSON.lua")()
json = (loadfile "/home/pi/domoticz/scripts/lua/JSON_Waze.lua") ()
--variables à modifier----------------
--idx du capteur
idx = '69' -- Capteur de type texte pour afficher la durée du trajet et le nom de la principale route empruntée.
idx_curve = '70' -- Capteur de type voltmetre pour archiver les temps de parcours calculés
--coordonnées de départ
departx="-1.14082"
departy="48.84987"
--coordonnées d'arrivée
arrivex="-1.1329"
arrivey="48.63198"

---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)

-- Récupère le jour pour ne pas calculer de trajet les week-end.
-- Sunday = 0 - Saturday = 6
local weekday = os.date('%w', time)

---calcule du trajet entre 7h et 9h sauf W-E et jours fériés
--
if (maintenant>=420 and maintenant<= 540 and uservariables["jf"] == "false" and weekday ~= 6 and weekday ~= 0) or DEBUG then
-----------------------------------------
----------------------------------------------------------------
--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 ... A'..arrive
x..'+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 ... rty..'&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%2
CALLOW_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
for response,results in pairs(route) do
routeTotalTimeSec = routeTotalTimeSec + results['crossTime']
end

--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 == nil then voie = "/ND" end
if xtime==nil then xtime=0 end
xtime=xtime+tonumber(results['crossTime'])
voir_les_logs(tostring(response).." "..results['crossTime'].." "..results['street'].." "..voie.." "..xtime)
end

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

-- Détermination des durées de parcours pour chacune des routes

for street in pairs(voie) do
if xtime[street] ~= nil then
upd=0
for i in ipairs(chemin) do
if chemin==voie[street] then
trajet=trajet[i]+xtime[street]
upd=1
end
end
if upd == 0 and xtime[street]~=nil and voie[street]~=nil then
voir_les_logs("voie[street]="..voie[street])
voir_les_logs("xtime[street]="..xtime[street])
voir_les_logs("j="..j)
chemin[j]=voie[street]
if xtime[street]~=nil then
trajet[j]=xtime[street]
else
trajet[j]=0
end
voir_les_logs("chemin["..tostring(j).."]="..chemin[j])
voir_les_logs("trajet["..tostring(j).."]="..trajet[j])
j=j+1
end
end
end
voie4T=0
voie5T=0

-- Recherche de deux routes les plus utilisées

for i in ipairs(chemin) do
voir_les_logs("chemin["..tostring(i).."]="..chemin[i])
voir_les_logs("trajet["..tostring(i).."]="..trajet[i])
if trajet[i]~=nil and chemin[i]~="/ND" then
if trajet[i] > voie4T then
voie4N=chemin[i]
voie4T=trajet[i]
elseif trajet[i] > voie5T then
voie5N=chemin[i]
voie5T=trajet[i]
end
end
end
voir_les_logs(voie4N.." "..voie5N)
routeName=voie4N.." "..voie5N
routeTotalTime = os.date("%H:%M", routeTotalTimeSec-3600)..'&nbsppar&nbsp '..string.gsub(routeName, ' ', '&nbsp')
commandArray[#commandArray+1]={['UpdateDevice'] =idx..'|0|' .. tostring(routeTotalTime)}
commandArray[#commandArray+1]={['UpdateDevice'] =idx_curve..'|0|' .. tostring(routeTotalTimeMin)}
end

return commandArray

alacran
Messages : 74
Enregistré le : 12 sept. 2016, 10:05

Re: Durée de trajet avec Waze

Message par alacran » 19 janv. 2018, 09:09

Bonjour,
je suis vraiment le seul pour qui le script ne fonctionne pas?

Merci de votre aide svp

tonejay
Messages : 106
Enregistré le : 15 sept. 2017, 20:28

Re: Durée de trajet avec Waze

Message par tonejay » 21 janv. 2018, 18:37

alacran a écrit :Bonjour,
je suis vraiment le seul pour qui le script ne fonctionne pas?

Merci de votre aide svp
Non le miens ne fonctionne pas non plus ...

Disable adblock

This site is supported by ads and donations.
If you see this text you are blocking our ads.
Please consider a Donation to support the site.


alacran
Messages : 74
Enregistré le : 12 sept. 2016, 10:05

Re: Durée de trajet avec Waze

Message par alacran » 22 janv. 2018, 14:54

J'ai trouvé il me semble.
Dans le IF, la variable jf n'est pas déclarée, donc jamais "true". On ne peut donc pas rentrer dans la boucle. Je l'ai retiré et maintenant ça fonctionne.
J'ai vu passé un message plus haut dans le thread la dessus mais j'avoue ne pas avoir compris les échanges.

Maintenant il fonctionne. Mais il fonctionne également le samedi et le dimanche pour moi. Donc les weekday !=6 et !=0 doivent correspondre à d'autres jours, mais pour l'instant, ça ne fonctionne que depuis samedi, je n'ai aps encore fait une semaine entière pour savoir.
Enfin, mieux vaut trop que pas assez; depuis, ça fonctionne bien et j'ai pu ajuster les plages horaires

tonejay
Messages : 106
Enregistré le : 15 sept. 2017, 20:28

Re: Durée de trajet avec Waze

Message par tonejay » 22 janv. 2018, 16:46

alacran a écrit :J'ai trouvé il me semble.
Dans le IF, la variable jf n'est pas déclarée, donc jamais "true". On ne peut donc pas rentrer dans la boucle. Je l'ai retiré et maintenant ça fonctionne.
J'ai vu passé un message plus haut dans le thread la dessus mais j'avoue ne pas avoir compris les échanges.

Maintenant il fonctionne. Mais il fonctionne également le samedi et le dimanche pour moi. Donc les weekday !=6 et !=0 doivent correspondre à d'autres jours, mais pour l'instant, ça ne fonctionne que depuis samedi, je n'ai aps encore fait une semaine entière pour savoir.
Enfin, mieux vaut trop que pas assez; depuis, ça fonctionne bien et j'ai pu ajuster les plages horaires
Donc tu as retiré le 1er "If" complet ??

alacran
Messages : 74
Enregistré le : 12 sept. 2016, 10:05

Re: Durée de trajet avec Waze

Message par alacran » 23 janv. 2018, 11:03

voila ce que j'ai mis
if (maintenant>=480 and maintenant<= 540 and weekday ~= 6 and weekday ~= 0) or DEBUG then
480 = 8h
540 = 9h du matin
weekday ~=6 = je ne sais pas quel jour
weekday ~=0 = je ne sais pas quel jour
Pour l'instant le script à fonctionner samedi, dimanche, lundi et mardi. Donc les weekday à 6 et 0, je ne sais pas encore à quels jours ils correspondent (c'est du debuggage empirique ^^)

Chrominator
Messages : 408
Enregistré le : 19 déc. 2015, 07:29

Re: Durée de trajet avec Waze

Message par Chrominator » 24 janv. 2018, 23:17

Ouvrez une doc LUA et il n'y aura plus de doute.

La semaine commence le dimanche pour les nord-américains.
En LUA, O est dimanche, 6 est samedi.

et pour ceux qui se demandent ce qu'est jf, lorsqu'il est vrai on est un jour férié.
Le script est ici dans ce forum.

alacran
Messages : 74
Enregistré le : 12 sept. 2016, 10:05

Re: Durée de trajet avec Waze

Message par alacran » 24 janv. 2018, 23:42

Merci Chrominator.
Mais en France (pour ma part),0 et 6 ne correspondent pas à samedi et dimanche puisque le script fonctionne le samedi et le dimanche.
J'attend de voir le reste de la semaine, mais pour l'instant il a fonctionné tous les jours (de samedi à mercredi).

Pour la variable jf, ok c'est les jours fériés, mais comme elle n'est déclarée nul part, elle est toujours fausse chez moi; donc on ne rentre jamais dans le if donc le script ne fonctionne pas...
Ou alors la variable jf est externe, mais dans ce cas elle est où et pourquoi chez moi elle est toujours false?

Moumi32
Messages : 2
Enregistré le : 28 févr. 2017, 09:56

Re: Durée de trajet avec Waze

Message par Moumi32 » 26 janv. 2018, 15:48

Bonjour à tous,

Je suis nouveau sur Domoticz ;) et j'ai du mal à démarrer pour waze :? . Ou doit on mettre le script pour WAZE? dans le répertoire Script de domoticz ou il faut créer un script à partir d'evenement?

Pourriez-vous faire un petit tuto d'installation?

Merci pour vos réponses.

Disable adblock

This site is supported by ads and donations.
If you see this text you are blocking our ads.
Please consider a Donation to support the site.


Répondre