[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.
berty42
Messages : 10
Inscription : 10 juin 2017, 18:43

Re: Durée de trajet avec Waze

Message par berty42 »

Oui j'ai modifier idx comme tu l'as marqué.
J'ai pris le script qui est sur la première pas du forum :

---------------------------------
-- 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/
---------------------------------
commandArray={}

--import des fontions pour lire le JSON
json = (loadfile "C:\Program Files\Domoticz\scripts\lua\JSON.lua")()
--variables à modifier----------------
--idx du capteur
idx = '3'
-- y = latitude et x = longitude
-- exemple pour paris :
-- departx="2.2903622"
-- departy="48.8582546"
--coordonnées de départ
departx="XX.XXXXXX"
departy="XX.XXXXXX"
--coordonnées d'arrivée
arrivex="XX.XXXXXX"
arrivey="XX.XXXXXX"

-----------------------------------------
----------------------------------------------------------------
--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 ... LOW_UTURNS"'))
local trajet = waze:read('*all')
waze:close()

local jsonTrajet = json:decode(trajet)
--Noms des principales routes empruntées
routeName = jsonTrajet['response']['routeName']
--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)

--mise en forme de la réponse
if (routeTotalTimeSec%60<10)then
routeTotalTime = routeTotalTimeMin ..':0'..routeTotalTimeSec%60
else
routeTotalTime = routeTotalTimeMin ..':'..routeTotalTimeSec%60
end

commandArray[1]={['UpdateDevice'] =idx..'|0|' .. tostring(routeTotalTime).." par "..routeName}

return commandArray
schwinny
Messages : 123
Inscription : 23 mars 2017, 21:41

Re: Durée de trajet avec Waze

Message par schwinny »

tu n'as pas renseigné la zone de départ et d'arrivé..

Code : Tout sélectionner

--coordonnées de départ
departx="XX.XXXXXX"
departy="XX.XXXXXX"
--coordonnées d'arrivée
arrivex="XX.XXXXXX"
arrivey="XX.XXXXXX"
renseigne les et teste de nouveau.
berty42
Messages : 10
Inscription : 10 juin 2017, 18:43

Re: Durée de trajet avec Waze

Message par berty42 »

Malgré les points gps renseignés ca ne fonctionne pas et tjrs le meme message d'erreur dans les log.
Dans domoticz je dois utiliser le type de matériel : Dummy (Does nothing, use for virtual switches only)?
Dernière modification par berty42 le 11 juin 2017, 22:38, modifié 1 fois.
schwinny
Messages : 123
Inscription : 23 mars 2017, 21:41

Re: Durée de trajet avec Waze

Message par schwinny »

remontre ton script stp
berty42
Messages : 10
Inscription : 10 juin 2017, 18:43

Re: Durée de trajet avec Waze

Message par berty42 »

J'ai essayé en inversant x;y pareil


---------------------------------
-- 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/
---------------------------------
commandArray={}

--import des fontions pour lire le JSON
json = (loadfile "C:\Program Files\Domoticz\scripts\lua\JSON.lua")()
--variables à modifier----------------
--idx du capteur
idx = '4'
-- y = latitude et x = longitude
-- exemple pour paris :
-- departx="3.2903622"
-- departy="48.8582546"
--coordonnées de départ
departx="3"
departy="49"
--coordonnées d'arrivée
arrivex="3"
arrivey="49"

-----------------------------------------
----------------------------------------------------------------
--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 ... LOW_UTURNS"'))
local trajet = waze:read('*all')
waze:close()

local jsonTrajet = json:decode(trajet)
--Noms des principales routes empruntées
routeName = jsonTrajet['response']['routeName']
--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)

--mise en forme de la réponse
if (routeTotalTimeSec%60<10)then
routeTotalTime = routeTotalTimeMin ..':0'..routeTotalTimeSec%60
else
routeTotalTime = routeTotalTimeMin ..':'..routeTotalTimeSec%60
end

commandArray[1]={['UpdateDevice'] =idx..'|0|' .. tostring(routeTotalTime).." par "..routeName}

return commandArray
Dernière modification par berty42 le 13 juin 2017, 23:11, modifié 3 fois.
schwinny
Messages : 123
Inscription : 23 mars 2017, 21:41

Re: Durée de trajet avec Waze

Message par schwinny »

je viens de voir ton import du script lua..
il n'est pas bon.

ton erreur provient de la:

Code : Tout sélectionner

loadfile "C:\Program Files\Domoticz\scripts\lua\JSON.lua")()

deja vire les ()

Code : Tout sélectionner

loadfile "C:\Program Files\Domoticz\scripts\lua\JSON.lua")[size=200]()[/size]
ensuite, je ne pense pas que l'on puisse importer avec un chemin windows...
Neutrino
Messages : 2662
Inscription : 10 juil. 2015, 15:42
Localisation : Les Herbiers(85)

Re: Durée de trajet avec Waze

Message par Neutrino »

Tu as installé CURL sur ton windows ?
Ma maison à plein d'IP ! :mrgreen:
SAV Bonjour. Vous avez vidé le cache ?
berty42
Messages : 10
Inscription : 10 juin 2017, 18:43

Re: Durée de trajet avec Waze

Message par berty42 »

J ai testé et c est toujours Ko.
Non je n ai pas installé Curl.
Par contre apperement il faut créer le fichier en format utf8 sans Bom ... sous windows. Ça ne me parle pas du tout.
vil1driver
Messages : 5661
Inscription : 30 janv. 2015, 11:07
Localisation : Rennes (35)

Re: Durée de trajet avec Waze

Message par vil1driver »

Le chemin vers le fichier JSON.lua doit être avec des doubles antislashs pour Windows.

As tu vérifié également que ce fichier est bien présent ?

Oui curl est impératif, il te faut l'installer et également modifier son chemin dans le script.

Pour utf8.. utilise notepad++ comme éditeur
MAJ = VIDER LE CACHE(<-Clicable)
/!\Les mises à jour de Domoticz sont souvent sources de difficultés, ne sautez pas dessus
modules.lua

Un ex domoticzien
berty42
Messages : 10
Inscription : 10 juin 2017, 18:43

Re: Durée de trajet avec Waze

Message par berty42 »

Ca va etre la galère pour juste faire un test sur windows avec tout ce qu'il faut à coté.
Je vais attendre mon raspberry pi.
En tout cas merci pour vos conseils ;)
Répondre