gargamel01000 Posté(e) le 16 février 2017 Signaler Posté(e) le 16 février 2017 Bonsoir à tous, je viens vers vous car j'ai un soucis avec un petit code en Lua. L'objectif est d'ouvrir automatiquement un volet une seule fois entre 12h00 et 13h00 lorsqu'un détecteur de mouvement (fibaro) s'active voici mon code --[[ %% autostart %% properties 195 value --]] if(fibaro:countScenes() >1) then fibaro:abort() fibaro:debug('Abort') end -- date du jour local currentDate = os.date("*t") -- heure actuel au format HH:mm local heure = string.format("%02d", currentDate.hour) .. ":" .. string.format("%02d", currentDate.min) -- jour de travail local jourdetravail = fibaro:getGlobalValue("JourChome") == "NON" local ouverture = fibaro:getGlobalValue("ouverture_midi") =="NON" if ((heure > "12:00") and (heure < "13h00") and jourdetravail and ouverture) then -- ouverture automatique des volets du rdc fibaro:call(103, "open") fibaro:setGlobal("ouverture_midi", "OUI") end -- on attend 1 minute fibaro:sleep(60*1000) 195 value correspond a mon motion sensor Mon code a l'air de fonctionner par contre comment puis je remettre ma variable ouverture a NON après 13H00 merci pour votre aide
pepite Posté(e) le 17 février 2017 Signaler Posté(e) le 17 février 2017 Bonjour @gargamel01000, Désolé pour le retard/ Tu déclenches ta scène sur le motion sensor 195, dans ce cas, il faut tester la valeur de ce dernier, sinon la scène se lancera à la detection et aussi quand il n'y aura plus de détection Passage du value de 0 à 1 puis de 1 à 0 Sinon comme ceci mais tester --[[ %% autostart %% properties 195 value --]] if(fibaro:countScenes() >1) then fibaro:abort() fibaro:debug('Abort') end -- heure du jour local heure = os.date("%H:%M") -- Motion Sensor à 1 local value = fibaro:getValue(195, "value") > 0 -- jour de travail local jourdetravail = fibaro:getGlobalValue("JourChome") == "NON" local ouverture = fibaro:getGlobalValue("ouverture_midi") =="NON" if ((heure > "12:00") and (heure < "13h00") and jourdetravail and ouverture and value) then -- ouverture automatique des volets du rdc fibaro:call(103, "open") fibaro:setGlobal("ouverture_midi", "OUI") elseif heure > "13:00" then fibaro:setGlobal("ouverture_midi", "NON") else local ouverture = fibaro:getGlobalValue("ouverture_midi") fibaro:debug("Avant 12h, Après 13h - Valeur Ouverture Midi : " ..ouverture) end
gargamel01000 Posté(e) le 17 février 2017 Auteur Signaler Posté(e) le 17 février 2017 Merci, je vais tester ça Envoyé de mon iPhone en utilisant Tapatalk
gargamel01000 Posté(e) le 20 février 2017 Auteur Signaler Posté(e) le 20 février 2017 Bonsoir, Pepite je reviens vers toi, j'ai une erreur au niveau de la ligne 16 local value = fibaro:getValue(195, "value") > 0 [DEBUG] 20:39:53: line 16: attempt to compare number with string une idée ?
pepite Posté(e) le 20 février 2017 Signaler Posté(e) le 20 février 2017 Bonsoir, desole oui :-) local value = tonumber(fibaro:getValue(195, "value")) > 0 A tester bien sur :-)
gargamel01000 Posté(e) le 2 mars 2017 Auteur Signaler Posté(e) le 2 mars 2017 Tout fonctionne parfaitement, merci encore 1
gargamel01000 Posté(e) le 2 mars 2017 Auteur Signaler Posté(e) le 2 mars 2017 Merci de mettre le sujet en résolu, je n'ai pas trouvé si je pouvais le faire moi même
Messages recommandés