Aller au contenu
Bono2007

Script Lua Présence Maison / Travail & Rdc / Etage ( Pour Chauffage Par Ex )

Recommended Posts

Bonsoir, ma 1e contribution, soyez indulgents. Si cela peut servir à  quelqu'un.

Je veux programmer un réglage du chauffage via des têtes TH et une vanne électrique. Pour cela la HC2 a besoin de savoir si je suis là  ou au travail, et si je suis au rdc ou à  l'étage. Comme cela je peux régler le chauffage à  16 si je suis au boulot, et quand je rentre, à  19 en bas, 16 à  l'étage, et l'inverse quand je dois aller me coucher. 

Donc j'ai créé cela : 

local presMaison=true                         -- présence dans la maison ?
local presRDC=true                            -- présence au rdc ?
local hlevSem=0620;local hlevWE=0830          -- heures lever en semaine et le weekend
local hcouSem=2300;local hcouWE=2330          -- heures coucher en semaine et le weekend
local hdepW=0730;local hretW=1630             -- heures départ et retour travail

local day = string.lower(os.date("%A"))
local hour = tonumber(os.date("%H")..os.date("%M"))

local day="tuesday"     -- var pour tester le script
local hour=1100         -- idem

if (( day == "monday" or day =="friday" ) and ( hour > hdepW and hour < hretW )) then presMaison=false;end
if (( day == "tuesday" or day == "wednesday" or day == "thursday" ) and ( hour > hdepW and hour < 1230 ))  then presMaison=false; end;     -- car ces jours là  je termine à  12h30 
if ( (presMaison) and ( day == "saturday" or day == "sunday" ) and ( hour > hlevWE and hour < hcouWE ) ) then PresRDC = true; else presRDC = false;end
if ( (presMaison) and ( day == "monday" or day == "tuesday" or day == "wednesday" or day == "thursday" or day == "friday" ) and ( hour > hlevSem and hour < hcouSem )) then presRDC = true;end

-- bilan
if presMaison then fibaro:debug("presMaison=oui") else fibaro:debug("presMaison=non") end
if presRDC then fibaro:debug("presRDC=ok"); else fibaro:debug("presRDC=non"); end
 

On peut aussi procéder ainsi, mais j'ai trouvé la 1e méthode plus simple à  programmer pour ma gestion des horaires plus complexe

local weekjob = {"monday","tuesday","wednesday","thursday","friday"}
local weekend = {"saturday","sunday"}

for k,v in pairs(weekJob) do 
if ( v == day ) then presMaison=false; end 

Partager ce message


Lien à poster
Partager sur d’autres sites

×