[LUA] Durée de trajet avec Waze

Vous avez créé 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.
multinet
Messages : 24
Inscription : 09 févr. 2016, 13:07

Re: Durée de trajet avec Waze

Message par multinet »

Salut

Ok je l'avais précisément renommé pour éviter un lancement en auto le temps du debug en mode ligne de commande

Mais bien sûr j'avoue avoir un peu honte maintenant que tu m'explique pourquoi Ca ne peut pas mettre à jour domoticz si Ca n'est pas domoticz qui l'exécute

So sorry !

Un grand merci !
Multinet
fabd
Messages : 100
Inscription : 11 janv. 2016, 10:14

Re: Durée de trajet avec Waze

Message par fabd »

Je viens de faire un essaie avec les elements fournis dans le 1er posts et j'ai une erreur 503, erreur rencontré par une autre personne sur le forum

Code : Tout sélectionner

 2016-07-04 16:50:34.839 Error: EventSystem: in waze: [string "---------------------------------..."]:39: attempt to index field 'response' (a nil value)
2016-07-04 16:50:35.173 Error: EventSystem: in waze: [string "---------------------------------..."]:39: attempt to index field 'response' (a nil value)
2016-07-04 16:50:35.508 Error: EventSystem: in waze: [string "---------------------------------..."]:39: attempt to index field 'response' (a nil value)
2016-07-04 16:50:35.841 Error: EventSystem: in waze: [string "---------------------------------..."]:39: attempt to index field 'response' (a nil value)
2016-07-04 16:50:36.168 Error: EventSystem: in waze: /home/pi/domoticz/scripts/lua/JSON.lua:383: html passed to JSON:decode():


503 Service Temporarily Unavailable

nginx



2016-07-04 16:50:41.766 Error: EventSystem: in waze: [string "---------------------------------..."]:39: attempt to index field 'response' (a nil value) 
Je precise que j'ai bien remplacé le fichier JSON.lua que j'avais déjà par celui indiqué dans le topik (j'ai pas vu de difference)

quelqu'un a une idée?

je me répond a moi meme, j'avais aussi inversée les coordonées :D
Sopalin
Messages : 97
Inscription : 04 juil. 2016, 10:07

Re: Durée de trajet avec Waze

Message par Sopalin »

je viens de déployer ton script pour waze, cependant le résultat est assez bizarre
j'ai modifier le code pour avoir un peu de debug

Code : Tout sélectionner

routeTotalTimeSec = 0
        for response,results in pairs(route) do
            print("crosstime : "..results['crossTime'])
            print("Tempseconde : "..routeTotalTimeSec)
            routeTotalTimeSec = routeTotalTimeSec + results['crossTime']
        end
Or la variable routeTotalTimeSec ne commence pas à Zéro et la somme à l'air de déconner, voici les logs :

Code : Tout sélectionner

2016-07-08 19:18:44.742 EventSystem: reset all events...
2016-07-08 19:19:04.601 LUA: crosstime : 1
2016-07-08 19:19:04.601 LUA: Tempseconde : 2092
2016-07-08 19:19:04.602 LUA: crosstime : 1
2016-07-08 19:19:04.603 LUA: Tempseconde : 2093
2016-07-08 19:19:04.604 LUA: crosstime : 2
2016-07-08 19:19:04.605 LUA: Tempseconde : 2094
2016-07-08 19:19:04.606 LUA: crosstime : 3
2016-07-08 19:19:04.606 LUA: Tempseconde : 2096
2016-07-08 19:19:04.607 LUA: crosstime : 2
2016-07-08 19:19:04.608 LUA: Tempseconde : 2099
2016-07-08 19:19:04.609 LUA: crosstime : 8
2016-07-08 19:19:04.610 LUA: Tempseconde : 2101
2016-07-08 19:19:04.611 LUA: crosstime : 2
2016-07-08 19:19:04.612 LUA: Tempseconde : 2109
2016-07-08 19:19:04.612 LUA: crosstime : 8
2016-07-08 19:19:04.613 LUA: Tempseconde : 2111
2016-07-08 19:19:04.614 LUA: crosstime : 9
2016-07-08 19:19:04.615 LUA: Tempseconde : 2119
2016-07-08 19:19:04.616 LUA: crosstime : 5
2016-07-08 19:19:04.617 LUA: Tempseconde : 2128
Quand je fait l'appel via un navigateur je me retrouve avec 21 lignes alors que l'appel via le code LUA renvoi énormément de ligne.

Pour info le trajet est extrêmement court inférieur à 5min pour mes tests

Une idée ?
Sopalin
Messages : 97
Inscription : 04 juil. 2016, 10:07

Re: Durée de trajet avec Waze

Message par Sopalin »

Bon j'ai corrigé mon problème sans trop savoir comment lol.

Bref, je cherche à éviter les péages, vous avez trouvé l'option dans la requête http ?
Sopalin
Messages : 97
Inscription : 04 juil. 2016, 10:07

Re: Durée de trajet avec Waze

Message par Sopalin »

Je me répond tout seul, pour éviter les péages voici l'options :

options=AVOID_TOLL_ROADS

ça aidera peut être quelqu'un :)
doubleve
Messages : 29
Inscription : 03 déc. 2015, 15:29

Re: Durée de trajet avec Waze

Message par doubleve »

Bonjour,
je viens de mette en place waze ça fonctionne nickel merci.
est il possible de changer l’icône txt qui apparait dans le menu j'ai pas trouvé.
merci
lepetitnicolas
Messages : 11
Inscription : 21 mai 2016, 00:38

Re: Durée de trajet avec Waze

Message par lepetitnicolas »

bonsoir,
Merci pour le partage. cela fonctionne parfaitement chez moi.
Maintenant je dois trouver un moyen d'envoyer une notification (via pushbullet) si la durée du trajet dépasse un temps donné...
bonne soirée à tous
Raspberry PI 3 Domoticz + RFlink + Wemos
atlantis007
Messages : 65
Inscription : 11 janv. 2015, 22:31
Localisation : biarritz (64)

Re: Durée de trajet avec Waze

Message par atlantis007 »

Bonjour a tous
j utilise le code suivant est je voudrai le déclenche avec un bouton marche arrêt tant qu il est sur on

merci ci quel-qu un peut m aide

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 = '974'

--coordonnées de départ
departx="-1.497"
departy="43.491"
--coordonnées d'arrivée
arrivex="-1.569"
arrivey="43.462"

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

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

return commandArray
Neutrino
Messages : 2662
Inscription : 10 juil. 2015, 15:42
Localisation : Les Herbiers(85)

Re: Durée de trajet avec Waze

Message par Neutrino »

Bonjour,

Il suffit de rajouter une condition :

Code : Tout sélectionner

if (otherdevices[''Bonton"']=='On')then
...
end
Tu es rendu à 974 IDX ???
Ma maison à plein d'IP ! :mrgreen:
SAV Bonjour. Vous avez vidé le cache ?
thier
Messages : 807
Inscription : 26 sept. 2015, 10:32
Localisation : charente

Re: Durée de trajet avec Waze

Message par thier »

tu ajoutes:
- en début de script la condition if (otherdevices[nom de bouton] == 'On') then
- en fin de script End
Tu sauvegardes ton script en script_time. A la prochaine minute il ferra le calcul et le fera toutes les minutes tant que ton bouton ne sera == Off.
PI3+, Buster, Domoticz V2020.2, rflink, zwave, chauffage piloté par qubino, sondes oregon et Vil1d, boite aux lettres détection passage facteur, volets roulants qubino fibaro.
Répondre