Aller au contenu

Recommended Posts

Bon finalement j'ai modifié la chaine de recherche, car elle supprimait la première et dernière ligne des commentaires LUA sur plusieurs lignes :

--[[
blah blah blah
--]]

Donc ils sont exclus avec cette regex : ^\s*\-\-(?!(\[\[)|(\]\])).*$

Partager ce message


Lien à poster
Partager sur d’autres sites

Non mon clavier n'a pas buggué :D

Partager ce message


Lien à poster
Partager sur d’autres sites

@krikroff, est il possible de supprimer du calcul les parcours avec péages ?

​dans l'appli waze oui mais depuis l'api je ne sais pas.

Partager ce message


Lien à poster
Partager sur d’autres sites

Aïe depuis cet après-midi ça bug et je n'ai que des "parsing error'.

Avez-vous la même chose? Cela vient de Waze?

Partager ce message


Lien à poster
Partager sur d’autres sites

@krikroff, est il possible de supprimer du calcul les parcours avec péages ?

​dans l'appli waze oui mais depuis l'api je ne sais pas.

 

je suppose que c'est dans la requete

.....options=AVOID_TRAILS:t,ALLOW_UTURNS

un

options=AVOID_TRAILS:t,ALLOW_UTURNS,AVOID_TOLLS

fonctionne pas :-(

et j'ai pas trouvé la documentation Waze ...

Partager ce message


Lien à poster
Partager sur d’autres sites

le watchdog de lazer me donne une erreur ce soir sur cette scene

une idée ?

[ERROR] 21:25:57: LuaEnvironment: /home/server/bamboo-agent-home/xml-data/build-dir/HCR-LE12-JOB1/LuaEngine/vendor/avhttp/avhttp/impl/http_stream.ipp:2247: void avhttp::http_stream::handle_skip_crlf(const MutableBufferSequence&, Handler, boost::shared_array, const boost::system::error_code&, std::size_t) [with MutableBufferSequence = boost::asio::mutable_buffers_1; Handler = boost::function; std::size_t = unsigned int]: Assertion `crlf[0] == '\r' && crlf[1] == '\n'' failed.

edit : un save de la scene et ca repart

Partager ce message


Lien à poster
Partager sur d’autres sites

Tu avais mis quels paramètres dans le watchdog ?

Partager ce message


Lien à poster
Partager sur d’autres sites

du classique qui marche très bien d'hab

{type = "Scene", id = 248, match = {text="De Maison", interval=11*60},          no_match = {text=""}, count=1,      notification = {"push", "email"}}, -- Waze

mais la scene Waze à  planté qq part. ou peut être les serveurs simplement

 

Ce qui est bizarre c'est qu'avec un Save, c'est repartit.

Partager ce message


Lien à poster
Partager sur d’autres sites

ah oui mais dans ton watchdog, il manque l'option restart=true pour qu'il puisse redémarrer le VD.

(cette nouvelle option a été ajoutée avec la version 1.1 du watchdog àla demande de Jojo)

Partager ce message


Lien à poster
Partager sur d’autres sites

C est la scène Waze qui a planté pas le VD. Ca redémarre la scène aussi ?

Je vais regardé si je suis en 1.1 mais je crois bien que oui et passer le paramètre a true.

Partager ce message


Lien à poster
Partager sur d’autres sites

Hum oui c'est vrai qu'il y a une scène et un VD pour ce Waze Calculator. Mais théoriquement le watchdog peut surveiller les 2, il faut juste trouver les bons paramètres.

Partager ce message


Lien à poster
Partager sur d’autres sites

Bonsoir

Je suis en v3.6 et j'ai un message d'erreur dans la Scene

[ERROR] 18:04:57: line 108: attempt to index global 'net' (a nil value)

et la ligne concernée :

 local http = net.HTTPClient({ timeout = 2000 })

une idée ?

Partager ce message


Lien à poster
Partager sur d’autres sites

Oui la librairie net.HTTPClient() ne fonctionne qu'en v4.

  • Upvote 1

Partager ce message


Lien à poster
Partager sur d’autres sites

ensez-vous qu'il soit possible de faire une mofif pour rendre cela compatible v3.6 ?

Merci

Partager ce message


Lien à poster
Partager sur d’autres sites

Je ne pense pas, car je pense que l'API de Waze est exclusivement en https.

Et c'est justement cette nouvelle librairie qui permet d'exploiter le protocole https.

Partager ce message


Lien à poster
Partager sur d’autres sites

Et pourquoi rester en 3.6 ?

Partager ce message


Lien à poster
Partager sur d’autres sites

Au hasard, pour la stabilité ? C'est la dernière vraie stable.

Par contre ça veut dire que tu fais une croix sur tous les nouveaux modules et nouvelles fonctionnalités.

Partager ce message


Lien à poster
Partager sur d’autres sites

Oui pour la stabilité, sachant que j'ai plus de 100 VD & SCENE réuni, je me vois mal galérer sur des Beta ou supposé stable en V4 comme beaucoup de courageux parmi nous , mais heuresement que certains ont le courage de réaliser ses mises a jour pour sapercvoir des bugs

 

Nouvelle fonctionnalités, peu importante face aux bug et je gere tout mon multimédia & ma HC2 (avec retour d'état via PushNoitificatiuon) avec mon IPhone IPad et AppleWatch via iControlWeb IOS au travers de mes 2 SQ-Remote de SqaureConnect sur mesure directement en infrarouge et meme sur des TV ou autre non connecté

 

Mais il est vrai que ce "WAZE" serait pratique avant de partir de la maison ou du bureau pour optimiser le départ

Partager ce message


Lien à poster
Partager sur d’autres sites

Si ça vous intéresse j'ai osé modifier le code de Krikroff pour envoyer les infos par notifications sur le téléphone àdifférentes heures pour les différents membres de la famille.

Partager ce message


Lien à poster
Partager sur d’autres sites

Salut

 

vas-y partage, ça peut toujours interésser du monde...merci  ;)

Partager ce message


Lien à poster
Partager sur d’autres sites

Donc l'idée est d'automatiser l'envoi de l'information affichée par le VD à  travers des notifications sur smartphone.

 

La première chose est de créer une variable globale : Var_WazeTrajet avec pour valeur le nom des trajets que vous voulez envoyer (Travail, Retour_Travail...)

 

Ensuite dans la scène de Krikroff, on va déclencher le lancement de la scène avec :

--[[
%% properties
%% events
%% globals
	Var_WazeTrajet
--]]

Ensuite, afin de choisir le smartphone sur lequel on veut envoyer la notification on rajoute dans les paramétrage la ligne 

smartPhoneId = 51,

Ca donne dans l'exemple page 1

local params = {
  {
    name = "Trajet 1",
    virtualDeviceId = 1449,
    smartPhoneId = 51,
    from = {
      name = "Palais de l'Élysée",
      x = 2.3167538999999806, -- longitude
      y = 48.8704156   -- latitude 
    },
    to = {
      name = "Théâtre Guignol",
      x = 2.311747670173645, -- longitude
      y = 48.86977710077997 -- latitude 
    },
    pollingMs = 60*1000
  },
  {
    name = "Trajet 2",
    virtualDeviceId = 1452,
    smartPhoneId = 52,
    from = {
      name = "Palais de l'Élysée",
      x = 2.3167538999999806, -- longitude
      y = 48.8704156   -- latitude 
    },
    to = {
      name = "Théâtre Guignol",
      x = 2.311747670173645, -- longitude
      y = 48.86977710077997 -- latitude 
    },
    pollingMs = 5*60*1000
  }
}

Dans la méthode Start, on va remplacer le lancement qui met à  jour tous les trajets en lançant uniquement le trajet que l'on souhaite en fonction de la variable globale


function Start()
  --for i=1, #params do
  --  GetWazeData(i)
  --end
  local valueTrajet = fibaro:getGlobal('Var_WazeTrajet')

  fibaro:debug(valueTrajet)
  if (valueTrajet=='Travail')
  then
      fibaro:debug('Travail')
      GetWazeData(1)
  elseif (valueTrajet=='Retour_Travail')
  then
      fibaro:debug('Retour_Travail')
      GetWazeData(2)
  else
      fibaro:debug('Switch Error')
  end

end

Puis dans GetWazeData, on rajoute sous les lignes :

print("Heure de départ: " .. depTime)
print("Heure d'arrivée estimée: " .. arrTime)
SetUI(params[idx].virtualDeviceId, "lblDepTime", depTime)
SetUI(params[idx].virtualDeviceId, "lblArrTime", arrTime)

Le code suivant qui crée la chaine de caractère à  afficher puis qui envoie la notification push :

            -- Notification
  	    local strNotification
            strNotification= params[idx].from.name .. " > " .. params[idx].to.name
            strNotification= strNotification .. " : " .. tm .. " min\n"
            strNotification= strNotification .. "Départ: " .. depTime .. " > Arrivée: " .. arrTime
            fibaro:call(params[idx].smartPhoneId, "sendPush", strNotification)

Dernière modification pour éviter d'etre spammé, on désactive le polling en mettant en commentaire :

        -- Polling
        --setTimeout(function()
        --    GetWazeData(idx)
        --  end, params[idx].pollingMs)

Voila, la scène est prete il ne reste plus qu'à  créer des scènes en mode bloc qui change à  une heure donnée la valeur de la variable globale.

 

J'ai fait le code en 5 minutes, je n'ai pas pris le temps d'enlever la partie VD mais je pourrais publier une scène sans si besoin

  • Upvote 1

Partager ce message


Lien à poster
Partager sur d’autres sites

Salut tout le monde,

 

J'ai enfin installe ce maginfique outil pour le WAF ;-)

 

J'ai testé la methode push de DG-K, parfait, alors j'ai voulu envoyer un sms depuis l'api freemobile plutot qu'un push et la j'ai une erreur que je ne comprends pas ;-) Help les pros du LUA

Une idée ?

 

La scene 5 est bien la scene de l'APi freemobile, la ligne 28 correspondrait au print os.date de la fonction controle_status(status), je pige pas la valeur nulle ;-(

je vous remets :

-l'erreur

- le code de notif de DGK

- la partie de code de freemobile

[DEBUG] 22:29:02: [1;31m2016-06-22 22:29:02.040974 [ fatal] LUA error: /opt/fibaro/scenes/5.lua:28: attempt to concatenate field '?' (a nil value)
[DEBUG] 22:30:15: [1;31m2016-06-22 22:30:15.769580 [ fatal] LUA error: /opt/fibaro/scenes/5.lua:28: attempt to concatenate field '?' (a nil value)

 -- Notification
              local strNotification
            strNotification= params[idx].from.name .. " > " .. params[idx].to.name
            strNotification= strNotification .. " : " .. tm .. " min\n"
            strNotification= strNotification .. "Départ: " .. depTime .. " > Arrivée: " .. arrTime
            fibaro:debug(strNotification)
            fibaro:setGlobal("GEA_Trajet_Waze", strNotification)
            
            
-- Fonction contrôle du code retour HTTP Free Mobile
local function controle_status(status)
  print(os.date() .. ' - status = ' .. status .. (code_retour[tonumber(status)]))
end
 

http:request('https://smsapi.free-mobile.fr/sendmsg?'..string.format("user=%s&pass=%s&msg=%s", username, password, message), {
options = {
method = 'POST',
headers = {
["Content-Type"] = "application/x-www-form-urlencoded"
}
},
success = function(data)
--print('At ' .. os.date() .. ' - status = ' .. data.status)
controle_status(data.status)
end,
error = function(err)
print('error = ' .. err)
end
})

Partager ce message


Lien à poster
Partager sur d’autres sites

×