[LUA] Durée de trajet avec Waze
Re: Durée de trajet avec Waze
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
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
Re: Durée de trajet avec Waze
tu n'as pas renseigné la zone de départ et d'arrivé..
renseigne les et teste de nouveau.
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"Re: Durée de trajet avec Waze
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)?
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.
Re: Durée de trajet avec Waze
remontre ton script stp
Re: Durée de trajet avec Waze
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
---------------------------------
-- 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.
Re: Durée de trajet avec Waze
je viens de voir ton import du script lua..
il n'est pas bon.
ton erreur provient de la:
deja vire les ()
ensuite, je ne pense pas que l'on puisse importer avec un chemin windows...
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]Re: Durée de trajet avec Waze
Tu as installé CURL sur ton windows ?
Re: Durée de trajet avec Waze
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.
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
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
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
/!\Les mises à jour de Domoticz sont souvent sources de difficultés, ne sautez pas dessus
modules.lua
Un ex domoticzien
Re: Durée de trajet avec Waze
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
Je vais attendre mon raspberry pi.
En tout cas merci pour vos conseils