Aller au contenu

Bug déclenchement de scène


BSD

Messages recommandés

Bonjour à tous
Je pense avoir décelé un bug lors du déclenchement d'une scène par un changement de variable globale...
Dites-moi si je me trompe...

 

J'ai une scène toute bête qui crée deux variable locale :
    -> "Heure_Loc"  correspondant à l'heure actuelle de ma HC2
    -> "Minute_Loc" correspondant aux minutes actuelle de ma HC2
J'ai ensuite une boucle permanente qui met à jour deux variables globale :
    -> "Heure"  chaque fois que la variable locale "Heure_Loc" change de valeur
    -> "Minute" chaque fois que la variable locale "Minute_Loc" change de valeur

    

    --[[
    %% autostart                                                                                   
     -- Cette scène se lance automatiquement au démarrage de la HC2
    --]]
    while true do                                                                                            -- Boucle
        local Heure_Loc  = tonumber(os.date("%H"))                                -- Mise à jour de la variable locale 'Heure_Loc' avec l'heure actuelle de la HC2
        local Minute_Loc = tonumber(os.date("%M"))                                -- Mise à jour de la variable locale 'Minute_Loc' avec les minutes actuels de la HC2
        if tonumber(fibaro:getGlobalValue("Heure")) ~= Heure_Loc  then      -- Si la variables globale 'Heure' et locale 'Heure_Loc' sont différentes, alors
            fibaro:setGlobal("Heure", Heure_Loc)                                               -- Je stock dans la variable globale 'Heure' le contenu de la variable locale 'Heure_Loc'
        end                                                                                                  -- Fin de la condition de mise à jour de la variable globale 'Heure'
        if tonumber(fibaro:getGlobalValue("Minute")) ~= Minute_Loc  then    -- Si les variables globale 'Minute' et locale 'Minute_Loc' sont différentes, alors
            fibaro:setGlobal("Minute", Minute_Loc)                                             -- On stock dans la variable globale 'Minute' le contenu de la variable locale 'Minute_Loc'
        end                                                                                                   -- Fin de la condition de mise à jour de la variable globale 'Minute'
    end                                                                                                       -- Fin de boucle

 

Jusque là, rien de compliqué et ça marche très bien !

J'ai une autre scène tout aussi simple qui se déclenche lorsque la variable globale "Heure" change de valeur

 

    --[[
    %% globals
    Heure
    --]]

    print ("Test déclenchement scène : "..os.date("%H:%M"))
    

Ça fonctionne parfaitement !

Maintenant, pour vérifier le fonctionnement de ma seconde scène plus rapidement que toute les heures, j'ai ajouté un déclenchement toute les minutes

 

    --[[
    %% globals
    Heure
    Minute
    --]]

    print ("Test déclenchement scène : "..os.date("%H:%M"))

 

J'ai bien un lancement de ma seconde scène toute les minute, c'est parfait !

Je peux donc supprimer mon déclenchement toute les minutes pour retrouver un fonctionnement à l'heure.
J'enregistre ma scène correctement en supprimant le déclencheur "Minute"

 

C'est là que le Bug intervient !!!

 

Je n'ai plus le déclencheur "Minute" dans mon code mais ma scène se lance quand même toute les minutes et pas toute les heures !!!
Pour remédier au problème, je n'ai rien trouvé de mieux que de supprimer ma seconde scène et de la recréer sans le déclencheur minute et là, ça marche nickel !

 

Est-ce bien un bug ou je passe à coté de quelque chose ?

 

Merci de vos avis et tests.
A vous lire

 

Bruno

Lien vers le commentaire
Partager sur d’autres sites

×
×
  • Créer...