Aller au contenu

Messages recommandés

Posté(e)

Salut,

 

J'ai des leds sur un module rgbw qui sont allumées par une première scène si :

* il fait nuit

* la télé est allumée

 

Je viens de faire une deuxième scène pour allumer les leds sur un programme défini en cas de détection de mouvement. Je souhaite que cette scène coupe la 1ère (car programme de led différent) et rallume après un délais. Visiblement, j'arrive à  couper la scène avec fibaro:killScenes mais je n'arrive pas à  la réactiver avec fibaro:startScene. Pour que ma 1ère scène refonctionne, je dois aller sur celle-ci et cliquer sur "enregistrer" pour qu'elle fonctionne de nouveau.

 

Une idée ? Voilà  la scène qui coupe la 1ère :

--[[
%% autostart
%% properties
94 value
94 armed
%% globals
--]]

local detecteur = tonumber(fibaro:getValue(94,'value'));

if (fibaro:countScenes()>1) then
  fibaro:abort();
end

if (detecteur > 0) then
    fibaro:killScenes(4);
    fibaro:call(14, "turnOn");
    fibaro:call(14, "startProgram", "1");
    fibaro:call(14, "setValue", "100");
    fibaro:sleep(10000);
    fibaro:startScene(4);
end

Merci d'avance,

A+ ;)

Posté(e)

Peux tu ajouter un fibaro:debug dans ta scène ID#4 afin de voir si réellement elle démarre ou pas ...

Posté(e)

Salut,

 

Merci pour ta réponse.

Alors je viens de rajouter un debug  : la scène 4 ne redémarre pas. J'ai rajouté également un debug dans mon if de la scène présentée ici, je ne passe pas x fois dans le if. Donc c'est vraiment que la scène 4 ne redémarre pas. Quand je réenregistre la scène 4, sans y faire de modifs, hop ca refonctionne !

 

Bizarre...

Posté(e)

Peux tu poster la scène 1 ? Étrange... C'est quoi la version de ton HC2 ? stable ou bêta ?

Posté(e)

Salut,

 

Yep je suis en version stable : 3.580.

Voilà  l'autre scène :

--[[
%% autostart
%% properties
Etat_TV
Jour_Nuit
%% globals 
--]] 

local sourceTrigger = fibaro:getSourceTrigger();

if (fibaro:countScenes()>1) then
  fibaro:debug('Kill second scene!');
  fibaro:abort();
end

if (sourceTrigger["type"] == "autostart") then
    while true do
        local currentProgramID = tonumber(fibaro:getValue(14, "currentProgramID"));
        if ( ( fibaro:getGlobalValue("Etat_TV") == "ON" ) and ( fibaro:getGlobalValue("Jour_Nuit") == "Nuit" ) and (currentProgramID ~= 3) )
            then 
            fibaro:call(14, "turnOn");
            fibaro:call(14, "startProgram", "3");
            fibaro:call(14, "setValue", "100");
        end

        if ( fibaro:getGlobalValue("Etat_TV") == "OFF" )
            then
            fibaro:call(14, "turnOff");
        end
        
        if ( fibaro:getGlobalValue("Jour_Nuit") == "Jour" )
            then
            fibaro:call(14, "turnOff");
        end
        fibaro:sleep(60*1000);
    end
end

Merci pour le coup de main,

A+

Posté(e)

Je pense que ta scène ne redémarre pas a cause du

if (sourceTrigger["type"] == "autostart") then

La condition autostart est il me semble vérifiée uniquement si la scène est mise àjour ou lorsque le service du HC2 redémarré.

Tu peux essayer en enlevant cette condition ?

Posté(e)

Toutt à  fais d'accord avec krikroff.

Essaye avec ça:

 

local startSource = fibaro:getSourceTrigger();

if ( startSource["type"] == "other" ) then
×
×
  • Créer...