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
Inscription : 01 sept. 2015, 20:50

Re: Durée de trajet avec Waze

Messagepar 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 : 887
Inscription : 10 juil. 2015, 15:42
Localisation : Challans (85)

Re: Durée de trajet avec Waze

Messagepar 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
Inscription : 14 août 2017, 16:28

Re: Durée de trajet avec Waze

Messagepar 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 : 887
Inscription : 10 juil. 2015, 15:42
Localisation : Challans (85)

Re: Durée de trajet avec Waze

Messagepar 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 : 70
Inscription : 03 janv. 2017, 16:20

Re: Durée de trajet avec Waze

Messagepar 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
Inscription : 01 juil. 2016, 09:14
Localisation : Lorraine, France

Re: Durée de trajet avec Waze

Messagepar 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 : 10
Inscription : 04 sept. 2017, 12:46

Re: Durée de trajet avec Waze

Messagepar 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 : 154
Inscription : 26 janv. 2017, 09:25

Re: Durée de trajet avec Waze

Messagepar 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 : 154
Inscription : 26 janv. 2017, 09:25

Re: Durée de trajet avec Waze

Messagepar Phebus06 » 01 oct. 2017, 19:59

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

Phebus06
Messages : 154
Inscription : 26 janv. 2017, 09:25

Re: Durée de trajet avec Waze

Messagepar 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.



Revenir vers « La Bibliothèque Scripts et Tutos »

Qui est en ligne ?

Utilisateurs parcourant ce forum : Aucun utilisateur inscrit et 11 invités