Aller au contenu

Messages recommandés

Posté(e)

Oui exactement.

 

Un exemple que j'ai utilisé ici http://www.domotique-fibaro.fr/index.php/topic/2226-thermostat-greenmomit-et-hc2/ afin d'attendre la vérification d'une condition sans bloquer l’exécution du script :)

--! async object
async={}
--! wait function
--@ param condition The condition
--@ param callback The callback function
function async:wait(condition, callback)
  --print('wait')
  assert(type(condition)=='function', 'wait(condition*) arg should be a function!')
  if (condition()) then
    if (callback and type(callback)=='function') then
      callback()
    end
    return
  else
    setTimeout(function()
        self:wait(condition, callback)
      end, 300)    
  end
end
 
function GreenMomit:getData()
  async:wait((function(...) return (self.isLogged==true) end), 
    function()
      self:onLogged()
      self:getUserThermostats()   
      self:update()
    end)
end
 
function GreenMomit:lunchConfig()  
  self:connectApi()
  async:wait((function(...) return (self.isConnected==true) end), 
    function()
      self:onConnected()
      self:loginApi()
      self:getData() 
    end)
end
  • Upvote 5
Posté(e)

alors la j'ai pas tout bien compris,

 

Le sleep met en pause avant de lire la suite du script et le settimeout met en pause sans empecher de lire la suite du script.

je ne comprends pas ce qui est mis en pause dans ce cas ?

Posté(e)

le function qui est en attente OK, ca permet d'attendre la verif de tes conditions et de terminer malgre tout le script

 

J'ai bon ? ;-)

Posté(e)

Merci berale24 j'avais déjàvu cette fonction mais je n'avais pas eu le temps de voir ca fonction j'ai ma réponse Merci

Envoyé de mon SM-G900F

Posté(e)

Voilà  en fait ce que je voulais faire.

 

Les Mamies c'est bien, mais ça se lève la nuit pour satisfaire un besoin bien naturel.

Seulement les Mamies ça ne veut pas déranger, alors ça n'allume pas la lumière.

Résultat, ça se casse la gueule dans les meubles et ça réveille toute la maison.

 

J'ai donc mis un détecteur FGMS001 dans le couloir. Dès que Mamie sort de sa chambre, une lampe du salon s'allume et donne assez de lumière pour rejoindre les toilettes. Tant que Mamies baguenaude entre sa chambre, les toilettes ou la salle de bain, la lumière reste allumée.

Après 2 mn ça s’éteint.

--[[
%% properties
52 value
52 armed
%% globals
--]]

-- c'est le jour alors stop

if (fibaro:getGlobalValue("Day_Night") == "DAY") then
  fibaro:abort();
end

fibaro:debug("Start");

local val = fibaro:getValue(52, "value");
local arm = fibaro:getValue(52, "armed");
local scenenum = fibaro:countScenes();

fibaro:debug("Etat "..val.."  "..arm);
fibaro:debug("scene n "..scenenum);

-- premier déclanchement du détecteur
-- on allume et stop

if (val == "1" and scenenum == 1) then
  fibaro:call(163, "turnOn");
  fibaro:abort();
end

-- déclanchements suivants on attend 120s
-- pour éteindre

setTimeout(function()
local delayedCheck0 = false;
local tempDeviceState0, deviceLastModification0 = fibaro:get(52, "value");


fibaro:debug("Temps écoulé "..os.time() - deviceLastModification0);
    
if (( (tonumber(val) == 0 and tonumber(arm) == 0) ) and (os.time() - deviceLastModification0) >= 120) then
	delayedCheck0 = true;
end

if ( delayedCheck0 == true ) then
	fibaro:call(163, "turnOff");
end
end, 120000)

fibaro:debug("End");
  • Upvote 1
Posté(e)

Tu as raison Nico, mais si j'installe GEA je n'apprends pas LUA.... CQFD !!! ;)

 

PS: Si Fibaro avait de la jujotte, ils achèteraient les droits de GEA, écriraient une interface graphique avec plein de zolis widgets, ça génèrerait les commandes GEA automatiquement et hop!!!ils auraient un outils extraordinaire.

Oui, heu !!! ils ont du boulot avec la V4....

  • Upvote 2
Posté(e)

Berale24 : Oui bien sûr pour l'apprentissage du lua, sorry :)

En fait je suis partisans de la simplification maximum, donc j'essaie d'avoir le minimum de chose qui tourne en même temps.

Posté(e)

@Nico: Moi aussi. la grande majorité de mes scènes est actionnée par des triggers. Tout ce qui dépend d'un timer est géré par le petit scheduler que j'ai publié quelque part sur le forum. Il ne reste que la filtration de la piscine et de la PaC qui méritent un traitement à  part.

 

Avec la HCL j'avais plein de scène, maintenant en LUA et en rationalisant c'est de désert ! :)

Posté(e)

Moi j'en suis à4, et encore je pourrai en supprimer une en la GEATISANT, mais pas eu le temps encore :)

Posté(e)

@Nico: Quand j'ai lu "moi j'en 4" ça m'a foutu un coup !!! :93:

Non,non, je parle de mamies de 80, alors ça fait 4 de 20 et là, je ne crois pas pouvoir suivre la cadence ..... :(

Posté(e)

4 ben il est bien plus speed que je ne le pensé mon voisin GEATISANT c'est une marque de pilules bleue?

Envoyé de mon SM-G900F

  • Upvote 2
Posté(e)

:) :) :)

De 20 ans en plus, mes nuits seraient chaudes mouarf :) Maintenant j'en ai déjà3 des femmes àla maison lol

Posté(e)

moi je veux bien les adopter si sont majeurs hein ^^

 

Toujours dis a ma femme, si elle veut un 3ieme (fille) j'adopte mais majeur direct :D

×
×
  • Créer...