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]
MAidEN91
Messages : 82
Enregistré le : 01 sept. 2015, 20:50

Re: Durée de trajet avec Waze

Message par MAidEN91 » 25 août 2017, 14:11

Hello,

J'ai testé ta version et effectivement j'obtiens la même erreur dès que je passe les itinéraires a + que 1...

Code : Tout sélectionner

2017-08-25 14:06:07.154 Error: EventSystem: in /home/pi/domoticz/scripts/lua/script_time_waze_test.lua: /home/pi/domoticz/scripts/lua/script_time_waze_test.lua:56: bad argument #1 to 'pairs' (table expected, got nil)
Le soucis vient donc de la boucle qui gère les chemins alternatifs mais je ne vois pas trop ou :

Code : Tout sélectionner

   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
Domoticz 3.5877
RPi 2 / RFXTrx433e / Zwave Sigma
Sondes Oregon + 1 Wire + Prises Chacon + Qubinos
Téléinfo via optocoupleur
Custom Page

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.


Neutrino
Messages : 1022
Enregistré le : 10 juil. 2015, 15:42
Localisation : Challans (85)

Re: Durée de trajet avec Waze

Message par Neutrino » 25 août 2017, 19:50

Le problème doit effectivement venir de la boucle, mais je ne vois pas où.
A mon avis, waze ne trouve pas de chemin alternatif et le JSON renvoyé n'est du coup pas bien interprété.
L'un de vous peut-il m'envoyer leur version avec leur vraies coordonnées en MP histoire que je débugge ?
Ma maison à plein d'IP ! :mrgreen:

sennheiser
Messages : 8
Enregistré le : 14 août 2017, 16:28

Re: Durée de trajet avec Waze

Message par sennheiser » 26 août 2017, 11:42

Neutrino a écrit :Le problème doit effectivement venir de la boucle, mais je ne vois pas où.
A mon avis, waze ne trouve pas de chemin alternatif et le JSON renvoyé n'est du coup pas bien interprété.
L'un de vous peut-il m'envoyer leur version avec leur vraies coordonnées en MP histoire que je débugge ?

C'est fait :)
Raspberry Pi 3 + Ecran tactile 7" raspberry
Domoticz
Interface Broadlink RM PRO

Neutrino
Messages : 1022
Enregistré le : 10 juil. 2015, 15:42
Localisation : Challans (85)

Re: Durée de trajet avec Waze

Message par Neutrino » 26 août 2017, 16:11

Merci :)

Le problème se situe chez Waze :( .
Le serveur met plus de 10 secondes à répondre, donc le script est dégagé par Domoticz...

Pour que ça marche, il faut que le script s'exécute en dehors de domoticz et lancé par cron par exemple.
Et là, plus de problème de timeout.
Ma maison à plein d'IP ! :mrgreen:

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.


jmv75013
Messages : 104
Enregistré le : 03 janv. 2017, 16:20

Re: Durée de trajet avec Waze

Message par jmv75013 » 08 sept. 2017, 11:42

Bonjour,

J'ai essayé le script ci-dessous et trajet retourne un chaine vide. Quelqu'un aurait une idée

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/
---------------------------------
json = (loadfile "/home/pi/domoticz/scripts/lua/JSON.lua")()--import des fontions pour lire le JSON

function aff_log (s,debuging)
	if (debuging) then
		print ("<font color='#f3031d'> ".. s .."</font>")
	end
end 

idx = '152'	--idx du capteur
--coordonnées de départ y = latitude et x = longitude
departy="49.355966"
departx="0.513058"
--coordonnées d'arrivée
arrivey="48.955823"
arrivex="4.359103"

nbIti=1 --Nombre d'itinéraires possibles
local debuging=true
	
commandArray={}
	now=os.date("*t")
	if (now.min % 2 == 0) then -- Execution du script toutes les 15 minutes
		aff_log("--------------------------",debuging)
		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&timeout=6000&nPaths='..nbIti..'&options=AVOID_TRAILS%3At%2CALLOW_UTURNS"'))
		
		local trajet = waze:read('*all')
		waze:close()
		
		heure = os.date("%X",time)
		aff_log("-- Heure : "..heure,debuging)
		if (trajet~= nil) then
			aff_log("-- Trajet : "..trajet,debuging)
			aff_log("-- Long : "..string.len(trajet),debuging)
			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
				-- aff_log("-- Itinéraires : "..itineraires,debuging)
				if(itineraires ~= "")then 
					itineraires = itineraires .. " ou " 
				end
				routeName = alternatives['response']['routeName'] --Noms des principales routes empruntées		
				route = alternatives['response']['results'] --Liste des routes empruntées
				aff_log("-- RouteName : "..routeName,debuging)
				aff_log("-- Route : "..route,debuging)

				--calcul du temps de trajet en secondes 	
				routeTotalTimeSec = 0
				for response,results in pairs(route) do
					routeTotalTimeSec = routeTotalTimeSec + results['crossTime']
				end
				tps = os.date("%Hh:%Mmn",routeTotalTimeSec)
				aff_log("-- RouteTotalTimeSec : "..routeTotalTimeSec,debuging)
				aff_log("-- Tps : "..tps,debuging)
				if (itineraires=="") then
					itineraires = "A "..heure..", le temps de trajet était de "
				end 
				itineraires = itineraires .. tps .." par ".. routeName
			end
			aff_log("-- Itinéraires : "..itineraires,debuging)
			aff_log("--------------------------",debuging)
			aff_log(" ",debuging)
			commandArray[1]={['UpdateDevice'] =idx..'|0|' .. itineraires}
		else 
			aff_log("-- Trajet : nil",debugging)
		end
	end
return commandArray


faipassa
Messages : 13
Enregistré le : 01 juil. 2016, 09:14
Localisation : Lorraine, France

Re: Durée de trajet avec Waze

Message par faipassa » 12 sept. 2017, 09:22

Neutrino a écrit :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...."')
Salut,
Un grand merci pour cette solution. Mes scripts de calcul d’itinéraires ne fonctionnaient plus depuis cet été et je n'avais pas pris le temps de regarder de plus près pourquoi. Hier soir, je jette un œil au forum, tombe sur ton post et en 5 minutes, c'était réglé. Super :)
F.
Plateforme: 5 Raspbery pi2 + PiZero en réseau -- Domoticz 3.4834 + ImperiHome -- Interfaces: Zwave (Fibaro); Philips HUE; Capteurs filiaires et relais en tout genre.

pimseb
Messages : 11
Enregistré le : 04 sept. 2017, 12:46

Re: Durée de trajet avec Waze

Message par pimseb » 12 sept. 2017, 21:36

Salut,

J'ai pas encore installé ce script mais est ce qu'on pourrait l'utiliser comme base de lancement d'autres appareils connectés ? Comme par exemple si le temps de trajet est plus élevé que d'habitude, lancer un réveil plus tôt. Ou bien allumer une lumière en rouge... Pour éviter d'avoir à regarder le téléphone portable

Phebus06
Messages : 176
Enregistré le : 26 janv. 2017, 09:25

Re: Durée de trajet avec Waze

Message par Phebus06 » 01 oct. 2017, 19:48

Bonjour,
Bon après avoir essayé d'installer ce script voici l'erreur que j'ai :

Code : Tout sélectionner

2017-10-01 19:45:01.009 Error: EventSystem: in /home/pi/domoticz/scripts/lua/script_time_Duree_Vespins_Travail_Isa.lua: /home/pi/domoticz/scripts/lua/JSON.lua:660: html passed to JSON:decode():


403 Forbidden

nginx


Si quelqu'un sait pourquoi ?

Phebus06
Messages : 176
Enregistré le : 26 janv. 2017, 09:25

Re: Durée de trajet avec Waze

Message par Phebus06 » 01 oct. 2017, 19:59

Bon comme souvent je suis un neuneu, la réponse était juste au dessus ... :roll:

Phebus06
Messages : 176
Enregistré le : 26 janv. 2017, 09:25

Re: Durée de trajet avec Waze

Message par Phebus06 » 01 oct. 2017, 20:05

et évidement j'ai une autre erreur :

Code : Tout sélectionner

 2017-10-01 20:03:00.344 LUA: _________ Début du script Durée Trajet Vespins Travail Isa _________
2017-10-01 20:03:01.417 LUA: 16:09 par Boulevard René Cassin, Voie Pierre Mathis, Boulevard du Général Louis Delfino Nice ou 16:18 par Boulevard René Cassin, Voie Pierre Mathis, Avenue des Diables Bleus Nice ou 18:44 par Promenade Édouard Corniglion Molinier, Voie Pierre Mathis Nice
2017-10-01 20:03:01.420 Error: SQL Query("INSERT INTO LightingLog (DeviceRowID, nValue, sValue) VALUES ('52', '0', '16:09 par Boulevard René Cassin, Voie Pierre Mathis, Boulevard du Général Louis Delfino Nice ou 16:18 par Boulevard René Cassin, Voie Pierre Mathis, Avenue des Diables Bleus Nice ou 18:44 par Promenade Édouard Corniglion Molinier, Voie Pierre Mathis Nice')") : database disk image is malformed 
Si quelqu'un a une idée ???

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