Page 1 sur 1

modification uservariable

Publié : 09 janv. 2020, 11:38
par mauk59
Bonjour,

Je voudrais automatiser le lancement de ma cafetière en fonction de l'heure de mon réveil stocké dans une variable.

Je récupère l'heure de mon réveil dans ma variable Recup_alarme sour le format HH:MM. J'aimerai pouvoir faire un calcul sur cette variable.
Par exemple si la variable est de 07:00, je voudrais pouvoir lui retirer 15mn.

Je débute sur les langages Lua, donc je veux bien un petit peu d'aide :-)

Merci pour votre aide précieuse !

Mauk
P.S. peut être que ce n'est pas en LUA qu'il faut le faire ?

Re: modification uservariable

Publié : 09 janv. 2020, 12:54
par J.M.B
Bonjour,

Voici 2 fonctions à intégrer à ton script pour calculer une somme ou une différence :

Code : Tout sélectionner

-------------------------------------------------------------------------------
--Fonction qui calcule et retourne la somme des horaires H1 et H2  (format string  'hh:mm') 
-------------------------------------------------------------------------------

function SumTime(H1,H2)
    local h1, h2, m1, m2 = string.sub(H1,1,2), string.sub(H2,1,2), string.sub(H1,4,5), string.sub(H2,4,5)
    local t = tonumber(h1)*60 + tonumber(h2)*60 + tonumber(m1) + tonumber(m2)
    local h, m = math.floor(t/60), math.fmod(t, 60)
	if h>=24 then
	    h=h-24
	end
    local H, M = tostring(h), tostring(m)
    
    if h<10 then
        H = '0'..H
    end
    
   if m < 10 then
       M = '0'..M
   end
   
    return H..':'..M

end



-------------------------------------------------------------------------------
--Fonction qui calcule et retourne la différence (H1 - H2)  des horaires H1 et H2  (format string  'hh:mm') 
-------------------------------------------------------------------------------

function DiffTime(H1,H2)
    local h1, h2, m1, m2 = string.sub(H1,1,2), string.sub(H2,1,2), string.sub(H1,4,5), string.sub(H2,4,5)
    local t = tonumber(h1)*60 - tonumber(h2)*60 + tonumber(m1) - tonumber(m2)
    local h, m = math.floor(t/60), math.fmod(t, 60)
    local H, M = tostring(h), tostring(m)
    
    if h<10 then
        H = '0'..H
    end
    
   if m < 10 then
       M = '0'..M
   end
   
    return H..':'..M

end


Bonne journée.

Re: modification uservariable

Publié : 09 janv. 2020, 14:50
par mauk59
Bonjour,

Merci pour ton retour.

alors je suis vraiment débutant, du coup ma variable recup_alarme je la mets à quel endroit? et comment je spécifie ce que je veux retrancher (15mn)?

merci :-)

Mauk

Re: modification uservariable

Publié : 11 janv. 2020, 09:40
par J.M.B
Bonjour,

Les 2 fonctions sont à intégrer au tout début du script.

Ensuite pour faire le calcul tu appelles la fonction avec les bons paramètres.
Par exemple pour enlever 15 min à ta variable recup_alarme :

Code : Tout sélectionner

recup_alarme = DiffTime(recup_alarme,"00:15")
ou si uservariable :

Code : Tout sélectionner

commandArray[#commandArray+1]={['Variable:recup_alarme']=DiffTime(uservariable['recup_alarme'],"00:15")}
Bon codage.