Aller au contenu

Messages recommandés

Posté(e)

Hello Krikri !!! De retour parmi nous :) Cool le module, mais ne suis pas parisien et évite Strasbourg aux heures de pointe :)

Posté(e)

Super module, fonctionnel rapidement 3 min  :-)

 

                         ----------------

Evolution : Avoir un bouton Aller / Retour qui permette le soir d'inverser dans un module le trajet afin de calculer en sens inverse

Ceci permettrait d'éviter de faire un VD pour l'aller et un autre pour le retour.

Posté(e)

Bonjour

Je suis toujours en V3.6 & J'ai le message suivant :

[ERROR] 11:24:44: line 108: attempt to index global 'net' (a nil value)

 

Faut-il rajouter une adresse IP et Port ?
 

Posté(e)

Super idée, merci c'est génial !!!

 

Je pensais utiliser la localisation donnée par fibaro pour actualiser les temps de trajet en temps réel.

Mais je bute sur un problème de variable...

 

fibaro:getValue(id,"Location") renvoie une variable dont le contenu est "Longitude;Latitude"

Auriez-vous une idée de comment extraire de cette variable deux variables distinctes de latitude et de longitude??

Posté(e)

Salut

 

Avec un string.sub ca devrait être bon je pense :

local userLocation = fibaro:getValue(2,'Location');
fibaro:debug("coordonnées brutes : "..userLocation)

format_x = string.sub(userLocation, 1, 13)
fibaro:debug("coordonnées x formatée : "..format_x)

format_y = string.sub(userLocation, 15, 30)
fibaro:debug("coordonnées y formatée : "..format_y)

Débug :

[DEBUG] 20:07:08: coordonnées brutes : 52.4320294933;16.8449900900
[DEBUG] 20:07:08: coordonnées x formatée : 52.4320294933
[DEBUG] 20:07:08: coordonnées y formatée : 16.8449900900
Posté(e)

Ah...sauf que la taille des nombres peuvent changer en fonction de ta localisation, donc il faut rechercher le caractere " ; " qui est le séparateur.

 

C'est pas joli, mais ça fonctionne :

--[[
%% properties

%% globals
--]]

local userLocation = fibaro:getValue(2,'Location');
fibaro:debug("coordonnées brutes : "..userLocation)

local find = string.find(userLocation, ";")
fibaro:debug(find)

---------
local find_x = string.sub(userLocation, 1, find)
fibaro:debug(find_x)
local string_x = tonumber(find - 1 )
fibaro:debug(string_x)
format_x = string.sub(userLocation, 1, string_x)
fibaro:debug("coordonnées x formatée : "..format_x)
---------
local find_y = string.sub(userLocation, find, 40)
fibaro:debug(find_y)
local string_y = tonumber(find + 1 )
fibaro:debug(string_y)
format_y = string.sub(userLocation, string_y, 40)
fibaro:debug("coordonnées y formatée : "..format_y)

[DEBUG] 20:27:16: coordonnées brutes : 52.4320294933;16.8449900900
[DEBUG] 20:27:16: 14
[DEBUG] 20:27:16: 52.4320294933;
[DEBUG] 20:27:16: 13
[DEBUG] 20:27:16: coordonnées x formatée : 52.4320294933
[DEBUG] 20:27:16: ;16.8449900900
[DEBUG] 20:27:16: 15
[DEBUG] 20:27:16: coordonnées y formatée : 16.8449900900
Posté(e)

Hello ;)

 

J'utiliserai ceci qui retourne un tableau...

function split(s)
  if (string.len(s)>0) then
    local _a, r = nil, {};
    for _a in string.gmatch(s, "([^;]+)") do
      table.insert(r, tostring(_a));
    end
    return r;
  end
  return nil;
end

Exemple:

local c = split("52.4320294933;16.8449900900");

print(c[1])
print(c[2])

PS: Attention dans un vd il faut utiliser fibaro:debug et pas print

 

Sinon pour info Il y a des choses intéressantes ici : http://lua-users.org/wiki/SplitJoin :)

Posté(e)

@krikroff,

Peux-tu SVP essayer de te mettre à  notre niveau ? Ton code est génial, mais incompréhensible. Ce n'est pas un forum de génies ici (à  part quelques exceptions :13::98:  

  • Upvote 5
Posté(e)

Punaise, moi c'est les pattern où j'y pite rien... j'ai beau essayer de comprendre mais ça veut pas rentrer !

Je me suis arraché les cheveux un soir sur les paterns, et j'avais fini par comprendre et obtenir ce que je voulais (bon depuis j'ai oublié....)

Regarde ces 2 liens que je viens de retrouver :

http://www.gammon.com.au/scripts/doc.php?lua=string.find

http://www.lua.org/pil/20.2.html

  • Upvote 1
Posté(e)

VD en place pour le fun, c'est top :-)

 

maintenant, si le temps de trajet maison/boulot est trop long, alors le VD jour chômé se modifie automatiquement et passe en jour chômé "Oui" et donc le wallplug sur lequel est branché le reveil se coupe :-)

Posté(e)

Je me suis arraché les cheveux un soir sur les paterns, et j'avais fini par comprendre et obtenir ce que je voulais (bon depuis j'ai oublié....)

Regarde ces 2 liens que je viens de retrouver :

http://www.gammon.com.au/scripts/doc.php?lua=string.find

http://www.lua.org/pil/20.2.html

Un exemple d'expression régulière utilisée à  l'instant : ^\s*\-\-.*$

 

=> permet de trouver une ligne contenant uniquement des commentaires LUA, commençant par "--", avec éventuellement des espaces ou tabulations devant.

Par conséquent, les commentaires situés en fin de ligne après du code source ne seront pas pris en compte.

 

Explication :

^  = début de ligne

\s = espace (tabulation ou espace)

*  = quelque soit le nombre de caractère précédent (donc l'espace dans le cas présent)

\- = un tiret

\- = un second tiret

.  = n'importe quel caractère

*  = quelque soit le nombre de caractère précédent (donc n'importe quel caractère dans le cas présent)

$  = fin de ligne

 

Source : http://www.domotique-fibaro.fr/index.php/topic/328-plugin-freebox-v6/?p=95853

×
×
  • Créer...