Bonjour,
J'ai parcouru différents sujet mais je reste un peu perplexe sur certaines parties de la programmation en lua.
Je cherche simplement à démarrer une pompe (vide cave) en fonction de la pluie à l'extérieur sans passer par un pluviomètre mais directement avec l'info du type de temps de la HC2.
En gros, je pense avoir codé quelques choses du genre : Chaque heure, vérification de l'état de pluie ou non (déjà fait dans une variable Exterieur_Pluie (cette partie fonctionne bien), si il pleut alors allumage de la pompe pendant 30 minutes et parce que cela ne sert à rien de la laisser allumer, elle doit se couper au bout donc des 30 mn. Et elle devrait redémarrer au bout de 30 minutes encore si il pleut toujours. Mais c'est ici que j'ai un souci, elle ne redémarre pas. (sauf si je relance la scène).
Avez-vous une idée ?
--[[
%% autostart
%% properties
%% globals
Exterieur_Pluie
--]]
local sourceTrigger = fibaro:getSourceTrigger();
if (sourceTrigger["type"] == "autostart") then while true do
local currentDate = os.date("*t");
local startSource = fibaro:getSourceTrigger();
-- Condition toutes les heures vérifier si la HC2 indique qu'il pleut et allume la pompe
if ( ( tonumber(fibaro:getGlobalValue("Exterieur_Pluie")) == tonumber("1") )
and ( (tonumber(os.date("%H%M")) >= tonumber(string.format("%02d%02d", "00", "01"))
or tonumber(os.date("%H%M")) <= tonumber(string.format("%02d%02d", "00", "00")))
and (math.floor(os.time()/60)-math.floor(1390258860/60))%60 == 0 ))
then
-- démarrage de la pompe
fibaro:call(231, "turnOn");
else
-- extinction de la pompe
fibaro:call(231, "turnOff");
end
-- Attends 30mn comme cela
fibaro:sleep(30*60*1000);
end
else
-- Pour infos je ne comprends pas pourquoi le système de bloc me rajoute toujours ce genre de ligne
local currentDate = os.date("*t");local startSource = fibaro:getSourceTrigger();
if ( ( tonumber(fibaro:getGlobalValue("Exterieur_Pluie")) == tonumber("1") )
and ( (tonumber(os.date("%H%M")) >= tonumber(string.format("%02d%02d", "00", "01"))
or tonumber(os.date("%H%M")) <= tonumber(string.format("%02d%02d", "00", "00"))) ) or startSource["type"] == "other")
then
fibaro:call(231, "turnOn");
else
fibaro:call(231, "turnOff");
end
end Merci d'avance pour vos remarques ou suggestions.
Arnaud