Aller au contenu

Fonction Rappel Avec Push En Lua


magic_281

Messages recommandés

Bonjour,

 

sur la présentation du motion sensor il y a ca:

 

 
Fibaro-Motion-Sensor-FGMS001-Absence.jpg
 
mais comment programmer ca en LUA? (car avec les blocs c'est impossible)
De même recevoir un push sur le portable qui pose cette question serait pas mal, mais je ne pense pas qu'on ait la possibilité de répondre directement au push? du genre "dois-je armer l'alarme" "oui" "non"
 
Merci pour votre aide!
Lien vers le commentaire
Partager sur d’autres sites

Bonjour,
Je débute mais en réfléchissant il me semble que la solution doit tourner autour de quelque chose comme ça :

--[[
%% properties

%% globals
--]]
 

local detecteurMouvement = 20 -- Id du détecteur
-- Pour faciliter le calcul on dira que cela vaut 15*60
local tempsAttenteSansMvt = fibaro:getGlobalValue('delaiAttenteSansMvt')
local cumulTemps = 0 -- La variable qui va nous permettre de compter le temps attendu

-- Etre certain que la scène est bien déclenchée depuis le détecteur de présence.
local trigger = fibaro:getSourceTrigger()
if (trigger['type'] ~= 'property') then
  fibaro:abort()
end
 
-- Une seule instance de la scène
if (fibaro:countScenes() > 1) then
  fibaro:abort()
end

repeat 
    mouvement = (tonumber(fibaro:getValue(detecteurMouvement, 'value')) > 0)
    if(mouvement) then
        cumulTemps = 0
    end
    -- Laisser un peu de temps au processeur
    fibaro:sleep(10)
    cumulTemps = cumulTemps + 10
    
until cumulTemps >= tempsAttenteSansMvt 

-- Se sont déroulées 15 minutes, on démarre la scène départ d'id 16 par exemple

fibaro:startScene(16)

A tester...

Lien vers le commentaire
Partager sur d’autres sites

Plus simple, mais j'ai bien aimé ton code :

local id_detecteur = 20
local tempsAttenteSansMvt = fibaro:getGlobalValue('delaiAttenteSansMvt')

while (os.time() - tonumber(fibaro:getValue(id_detecteur, "lastBreached")) < (tempsAttenteSansMvt * 60)) do
   fibaro:sleep(1000)
end

fibaro:startScene(16)

Pour un détecteur de mouvement, on peut se basé sur la date de la dernière détection (OU sur la date du dernier changement de valeur ET la valeur) 

 

On peut aussi espacer le temps entre 2 vérification 10 à  1000 car un détecteur reste en mode "détection" entre 2 et 12 secondes.

Lien vers le commentaire
Partager sur d’autres sites

Ben, il n'y a pas que GEA dans la vie :)  Mais c'est vrai que GEA fait cela ... et en une simple ligne :)

-- Si pas de détection pendant 15 minutes, on lance le scénario 46
GEA.add(<id_detecteur>, 15*60, "Activation de l'alarme", {{"Inverse"}, {"Scene", 46}})

Mais bon, on est pas obligé de pourrir la vie des gens avec ce magnifique script  :98:

Lien vers le commentaire
Partager sur d’autres sites

Bonjour

 

C'est quoi GEA ?

 

Je profite de ce poste pour une autre question en rapport avec le motion sensor. Comment fait on pour le désactiver ? Je précise. J'entre dans une pièce, je suis detecté, la lumière s'allume mais comme je veux observer les étoiles je veux éteindre et pouvoir bouger sans que le détecteur rallume ?

 

MErci

Lien vers le commentaire
Partager sur d’autres sites

×
×
  • Créer...