Aller au contenu

Scene Lua sunset


mipa

Recommended Posts

Hello à tous, 

 

J'ai écrit ce bout de code qui fonctionne....

 

--[[
%% properties

74 value

%% globals

--]]

local DetecteurMouvement

DetecteurMouvement = fibaro:getValue(74,  'value'  )

if (DetecteurMouvement == '1') then

fibaro:call(67, 'turnOn')


end

 


J'aimerais bien y ajouter la condition active toi uniquement si c'est entre le coucher du soleil et le lever du soleil et la condition éteint toi dès qu'il y n'a plus de mouvement après 3 minutes

 

Quelqu'un pourrait me dire comment l'écrire ? J'ai essayé de pleins de manière différentes, mais je ne suis pas arriver.

 

Actuellement, ma lampe extérieur s'allume de jour également, ce qui m'est inutile...

 

Merci pour votre précieuse aide 

 

Mipa

Lien vers le commentaire
Partager sur d’autres sites

@pepite je suis tout ouïe ouverte.... :77:

 

Pourrais tu me faire suivre ton GEA (ou son lien) ?

 

Et est ce que l'un d'entre vous pourrais m'expliquer la différence que vous faites entre une scène LUA et un GEA ??

Lien vers le commentaire
Partager sur d’autres sites

GEA est une scène, en LUA, mais qui permet de faire des scénarios hyper complets en prenant plein de paramètres en compte, tout cela sans coder en LUA.

Je pense que tu n'auras pas beaucoup d'aide sur la réalisation de scénarios en LUA, il ne doit plus y avoir grand monde qui procède ainsi.

Le LUA on l'utilise encore pour les modules virtuels où les scènes qui réalisent des choses bien précises (communication avec les objets connectés, etc...).

 

Topic officiel de GEA pour le télécharger, avec la documentation :

 

 

Topic du support pour poser ses questions :

 

 

 

Lien vers le commentaire
Partager sur d’autres sites

  • 3 weeks later...

J'utilise ca pour le coucher / lever du soleil.

 

Tu peux adapter ton Motion avec si tu veux ;)

 

 --[[
%% autostart
%% properties
%% weather
%% events
%% globals
--]]

local source = fibaro:getSourceTrigger()

function Run()
    -- Hour of the day
    local Hour = os.date("%H:%M")
    fibaro:debug("Hour : " ..Hour)

    -- Time Sunset / Sunrise
    local sunset = fibaro:getValue(1, "sunsetHour")
    local sunrise = fibaro:getValue(1, "sunriseHour")
    fibaro:debug("Sunrise : "..sunrise.. " - Sunset : " ..sunset)

    if Hour > sunset then
        fibaro:call(719, "turnOn")
    	fibaro:call(704, "turnOn")
    	fibaro:call(732, "turnOn")
    elseif Hour > sunrise then
        fibaro:call(719, "turnOff")
    	fibaro:call(704, "turnOff")
    	fibaro:call(732, "turnOff")
    else
        fibaro:debug("Not Sunrise - Not Sunset")
    end
end

-- Main Loop
if source["type"] == "autostart" or source["type"] == "other" then
    Run()
end

 

  • Like 1
Lien vers le commentaire
Partager sur d’autres sites

  • 3 weeks later...

J'ai essayé @yoim Mais j'y arrive pas... :15:

--[[
%% autostart
%% properties
%% weather
%% events
%% globals
--]]

local source = fibaro:getSourceTrigger()

function Run()
    -- Hour of the day
    local Hour = os.date("%H:%M")
    fibaro:debug("Hour : " ..Hour)

    -- Time Sunset / Sunrise
    local sunset = fibaro:getValue(74, "sunsetHour")
    local sunrise = fibaro:getValue(74, "sunriseHour")
    fibaro:debug("Sunrise : "..sunrise.. " - Sunset : " ..sunset)

    if Hour > sunset then
        fibaro:call(67, "turnOn")
    
    elseif Hour > sunrise then
        fibaro:call(67, "turnOff")
    
    else
        fibaro:debug("Not Sunrise - Not Sunset")
    end
end

-- Main Loop
if source["type"] == "autostart" or source["type"] == "other" then
    Run()
end

 

J'obtiens ça

 

image.png.5d56d21b32478a0de76c975e07b4dfca.png

 

Une idée de pourquoi cela ne fonctionne pas ? 

 

Lien vers le commentaire
Partager sur d’autres sites

Remplace le 74 par 1

 

local sunset = fibaro:getValue(1, "sunsetHour")
    local sunrise = fibaro:getValue(1, "sunriseHour")

 

Le 1 est la valeur lever du soleil / coucher du soleil dans la hc2. C est quoi 74 ?

 

 

  • Thanks 1
Lien vers le commentaire
Partager sur d’autres sites

Déjà là tu peux déclencher des lumières au lever ou au coucher du soleil. It s working :)

 

Maintenant rappel moi pour ton détecteur de mouvement. Désolé je suis sur mon phone ...

 

tu veux quoi exactement. 

Modifié par yoim
Lien vers le commentaire
Partager sur d’autres sites

Je souhaiterais que cette lumière extérieur (ID 67) s'allume uniquement de nuit et uniquement après avoir reçu la detection de l'ID 74 (détecteur de mouvement ) 

Lien vers le commentaire
Partager sur d’autres sites

Test ca :

 

 --[[
%% autostart
%% properties
74 value
%% weather
%% events
%% globals
--]]

local source = fibaro:getSourceTrigger()

function Run()
    -- Hour of the day
    local Hour = os.date("%H:%M")
    fibaro:debug("Hour : " ..Hour)

    -- Time Sunset / Sunrise
    local detection  = fibaro:getValue(74, "value")
    local sunset = fibaro:getValue(1, "sunsetHour")
    local sunrise = fibaro:getValue(1, "sunriseHour")
    fibaro:debug("Sunrise : "..sunrise.. " - Sunset : " ..sunset)

    if ( tonumber(detection) == 1 and Hour > sunset ) then
        fibaro:call(67, "turnOn")
    elseif Hour > sunrise then
        fibaro:call(67, "turnOff")
    else
        fibaro:debug("Not Sunrise - Not Sunset")
    end
end

-- Main Loop
if source["type"] == "autostart" or source["type"] == "other" then
    Run()
end

 

  • Thanks 1
Lien vers le commentaire
Partager sur d’autres sites

:3: Génial, merci @yoim

Le code est chargé, j'attends 20:24 pour l'essayé..... 

 

J'essaie de comprendre tes lignes, mais cela ne me parle absolument pas !

 

J'ai pas réussi à voir où est ce que  le temps d'allumage était indiqué ?

 

Te fais un retour ce soir, sans faute :13: 

Lien vers le commentaire
Partager sur d’autres sites

Cela n'a pas fonctionné malheureusement... Pas d'éclairage fonctionnel. La détection ce fait, mais la lampe ne reçoit pas l'ordre..

 

Mince

Une idée du pourquoi ? 

Lien vers le commentaire
Partager sur d’autres sites

Il y a 14 heures, mipa a dit :

Cela n'a pas fonctionné malheureusement... Pas d'éclairage fonctionnel. La détection ce fait, mais la lampe ne reçoit pas l'ordre..

 

Mince

Une idée du pourquoi ? 

Je pense savoir d'où vient le probleme. En fait tu as 2 solutions. Soit tu mets un timeset, un loop qui repete le code toute les secondes. Le probleme c'est que je crois que ca bouffe de la memoire.

 

--[[
%% autostart
%% properties
74 value
%% weather
%% events
%% globals
--]]

local source = fibaro:getSourceTrigger()

function Run()
    -- Hour of the day
    local Hour = os.date("%H:%M")
    fibaro:debug("Hour : " ..Hour)

    -- Time Sunset / Sunrise
    local detection  = fibaro:getValue(74, "value")
    local sunset = fibaro:getValue(1, "sunsetHour")
    local sunrise = fibaro:getValue(1, "sunriseHour")
    fibaro:debug("Sunrise : "..sunrise.. " - Sunset : " ..sunset)

    if ( tonumber(detection) == 1 and Hour > sunset ) then
        fibaro:call(67, "turnOn")
    elseif Hour > sunrise then
        fibaro:call(67, "turnOff")
    else
        fibaro:debug("Not Sunrise - Not Sunset")
    end
    setTimeout(Run, delay*1) -- Loop all s
end

-- Main Loop
if source["type"] == "autostart" or source["type"] == "other" then
    Run()
end

là le code est lancé toutes les secondes donc des que ton capteur sera a 1, il allumera les lumières après le coucher du soleil.

 

La deuxieme methode qui je pense est mieux c'est de creer une deuxieme scene avec le detecteur qui va activer la scene coucher de soleil.

 

Tu crées une scene comme cela :

 

--[[
%% properties
74 value
%% globals
--]]
 
local detection  = fibaro:getValue(74, "value")
 fibaro:debug("état du capteur : ".. detection)
 
if ( tonumber(detection) == 1 ) then
    fibaro:startScene(10)
end

Dans mon code le numero de la scene est 10, pense a mettre l'id de ta scene coucher de soleil propre à ta HC2. Tu cliques sur la petite clef en haut a droite de ta scene et tu vas voir s'afficher l'id de ta scene.

 

Voila le code pour ta scene Coucher de soleil :

 

--[[
%% autostart
%% properties
%% weather
%% events
%% globals
--]]

local source = fibaro:getSourceTrigger()

function Run()
    -- Hour of the day
    local Hour = os.date("%H:%M")
    fibaro:debug("Hour : " ..Hour)

    -- Time Sunset / Sunrise
    local sunset = fibaro:getValue(1, "sunsetHour")
    local sunrise = fibaro:getValue(1, "sunriseHour")
    fibaro:debug("Sunrise : "..sunrise.. " - Sunset : " ..sunset)

    if Hour > sunset ) then
        fibaro:call(67, "turnOn")
    elseif Hour > sunrise then
        fibaro:call(67, "turnOff")
    else
        fibaro:debug("Not Sunrise - Not Sunset")
    end
end

-- Main Loop
if source["type"] == "autostart" or source["type"] == "other" then
    Run()
end

Voila là ca devrait fonctionner. Si c'est bon il faudra faire un sleep pour eteindre la lumiere apres un certain temps. ;)

 

Modifié par yoim
Lien vers le commentaire
Partager sur d’autres sites

×
×
  • Créer...