Aller au contenu

Messages recommandés

Posté(e)

tu peux tenter ca alors, et enleve tout ce qu'il y a dans ton entete dans ce cas.

    local Trigger = fibaro:getSourceTrigger()
    local maintenant = os.date("%H:%M", os.time())
    local heuremini, heuremaxi = "07:00", "07:55"
    -------
    local Humidity = tonumber(fibaro:getValue(3, "Humidity"))
    local OutsideTemperature = tonumber(fibaro:getValue(3, "Temperature"))
    local WeatherCondition = fibaro:getValue(3, "WeatherConditionConverted")
    -----------
    local presencetophe = tonumber(fibaro:getGlobalValue("Present_Tophe")) > 0
    -----------
    fibaro:debug("OutsideTemperature : " .. OutsideTemperature);
    fibaro:debug("Humidity : " .. Humidity);
    fibaro:debug("WeatherCondition : " .. WeatherCondition);
    fibaro:debug("Maintenant : " ..maintenant.. " - Heure mini : " .. heuremini .. " - Heure maxi : " ..heuremaxi)
    fibaro:debug( "Présence Tophe : " ..(fibaro:getGlobalValue("Present_Tophe")))

if (Trigger["type"] == "autostart" or Trigger["type"] == "other") then
     fibaro:debug("Scène demarrée")
    if maintenant > heuremini and maintenant < heuremaxi and presencetophe then
     
        if (OutsideTemperature <= 20) then
            fibaro:call(236, "setColor", "0", "255", "0", "0") -- vert
        else
            fibaro:debug("jaune");
            fibaro:call(236, "setColor", "255", "255", "0", "0") -- jaune
            fibaro:sleep(5*1000)
        end    
     
        if(Humidity >= 50) then
            fibaro:debug("rouge");
            fibaro:call(236, "setColor", "255", "0", "0", "0") -- rouge
            fibaro:sleep(5*1000)
        end
     
        if(Humidity >= 50 and OutsideTemperature < 20) then
            fibaro:debug("blanc");
            fibaro:call(236, "setColor", "255", "255", "255", "0") -- blanc
            fibaro:sleep(5*1000)
        end
     
        if (WeatherCondition == "rain") then
            fibaro:debug("bleu");
            fibaro:call(236, "setColor", "0", "0", "255", "0") -- bleu
            fibaro:sleep(5*1000)
        end
    else
        fibaro:debug("Pas d'allumage de RGB, en dehors des heures 7:00 - 7:55")
    end
end

 

Posté(e)

merci pepite pour le temps que tu me consacre le rgbw ne s'allume pas voici le debug

[DEBUG] 15:16:37: OutsideTemperature : 12
[DEBUG] 15:16:37: Humidity : 67
[DEBUG] 15:16:37: WeatherCondition : clear
[DEBUG] 15:16:37: Maintenant : 15:16 - Heure mini : 15:16 - Heure maxi : 15:20
[DEBUG] 15:16:37: Présence Tophe : 1
[DEBUG] 15:16:37: Scène demarrée
[DEBUG] 15:16:37: Pas d'allumage de RGB, en dehors des heures 15:00 - 15:55
Posté(e) (modifié)

d'apres le debug : maintenant et heuremini sont identiques, ca doit etre strictement superieur

 

Reessaie pour voir si ca vient de ca stp. ou ca vient des conditions ou du sourcetrigger ?

 

Sinon on peut le faire avec un VD pour tester...

Modifié par pepite
Posté(e)
[DEBUG] 15:35:08: OutsideTemperature : 12
[DEBUG] 15:35:08: Humidity : 67
[DEBUG] 15:35:08: WeatherCondition : clear
[DEBUG] 15:35:08: Maintenant : 15:35 - Heure mini : 15:35 - Heure maxi : 15:38
[DEBUG] 15:35:08: Présence Tophe : 1
[DEBUG] 15:35:08: Scène demarrée
[DEBUG] 15:35:08: Pas d'allumage de RGB, en dehors des heures 15:35 - 15:55

c'est se que tu voulais que je test , toujours pas bon 

Posté(e)

regarde dans le debug mainentant = heure mini, donc pas d'allumage de RGB

 

je modifie le code

    local Trigger = fibaro:getSourceTrigger()
    local maintenant = os.date("%H:%M", os.time())
    local heuremini, heuremaxi = "07:00", "07:55"
    -------
    local Humidity = tonumber(fibaro:getValue(3, "Humidity"))
    local OutsideTemperature = tonumber(fibaro:getValue(3, "Temperature"))
    local WeatherCondition = fibaro:getValue(3, "WeatherConditionConverted")
    -----------
    local presencetophe = tonumber(fibaro:getGlobalValue("Present_Tophe")) > 0
    -----------
    fibaro:debug("OutsideTemperature : " .. OutsideTemperature);
    fibaro:debug("Humidity : " .. Humidity);
    fibaro:debug("WeatherCondition : " .. WeatherCondition);
    fibaro:debug("Maintenant : " ..maintenant.. " - Heure mini : " .. heuremini .. " - Heure maxi : " ..heuremaxi)
    fibaro:debug( "Présence Tophe : " ..(fibaro:getGlobalValue("Present_Tophe")))

if (Trigger["type"] == "autostart" or Trigger["type"] == "other") then
     fibaro:debug("Scène demarrée")
    if maintenant >= heuremini and maintenant <= heuremaxi and presencetophe then
     
        if (OutsideTemperature <= 20) then
            fibaro:call(236, "setColor", "0", "255", "0", "0") -- vert
        else
            fibaro:debug("jaune");
            fibaro:call(236, "setColor", "255", "255", "0", "0") -- jaune
            fibaro:sleep(5*1000)
        end    
     
        if(Humidity >= 50) then
            fibaro:debug("rouge");
            fibaro:call(236, "setColor", "255", "0", "0", "0") -- rouge
            fibaro:sleep(5*1000)
        end
     
        if(Humidity >= 50 and OutsideTemperature < 20) then
            fibaro:debug("blanc");
            fibaro:call(236, "setColor", "255", "255", "255", "0") -- blanc
            fibaro:sleep(5*1000)
        end
     
        if (WeatherCondition == "rain") then
            fibaro:debug("bleu");
            fibaro:call(236, "setColor", "0", "0", "255", "0") -- bleu
            fibaro:sleep(5*1000)
        end
    else
        fibaro:debug("Pas d'allumage de RGB, en dehors des heures 7:00 - 7:55")
    end
end


 

Posté(e)

je suis obligé de cliquer sur exécuter pour que sa fonctionne 

[DEBUG] 16:01:14: OutsideTemperature : 12
[DEBUG] 16:01:14: Humidity : 67
[DEBUG] 16:01:14: WeatherCondition : clear
[DEBUG] 16:01:14: Maintenant : 16:01 - Heure mini : 16:01 - Heure maxi : 16:03
[DEBUG] 16:01:14: Présence Tophe : 1
[DEBUG] 16:01:14: Scène demarrée
[DEBUG] 16:01:14: rouge
[DEBUG] 16:01:19: blanc
Posté(e)

oui on devrait mettre une boucle en fait, mais c'est pas tres optimise, bon on sait que ca fonctionne ;-)

 

Changement de fusil d'epaule avec un VD

Crée un VD avec 1 seul bouton

 

Code à  mettre dans le boutton :

-- Bouton --
    local Humidity = tonumber(fibaro:getValue(3, "Humidity"))
    local OutsideTemperature = tonumber(fibaro:getValue(3, "Temperature"))
    local WeatherCondition = fibaro:getValue(3, "WeatherConditionConverted")
    -----------
    local presencetophe = tonumber(fibaro:getGlobalValue("Present_Tophe")) > 0
    -----------
    fibaro:debug("OutsideTemperature : " .. OutsideTemperature);
    fibaro:debug("Humidity : " .. Humidity);
    fibaro:debug("WeatherCondition : " .. WeatherCondition);
    fibaro:debug( "Présence Tophe : " ..(fibaro:getGlobalValue("Present_Tophe")))

   
    if presencetophe then  
        if (OutsideTemperature <= 20) then
            fibaro:call(236, "setColor", "0", "255", "0", "0") -- vert
        else
            fibaro:debug("jaune");
            fibaro:call(236, "setColor", "255", "255", "0", "0") -- jaune
            fibaro:sleep(5*1000)
        end    
     
        if(Humidity >= 50) then
            fibaro:debug("rouge");
            fibaro:call(236, "setColor", "255", "0", "0", "0") -- rouge
            fibaro:sleep(5*1000)
        end
     
        if(Humidity >= 50 and OutsideTemperature < 20) then
            fibaro:debug("blanc");
            fibaro:call(236, "setColor", "255", "255", "255", "0") -- blanc
            fibaro:sleep(5*1000)
        end
     
        if (WeatherCondition == "rain") then
            fibaro:debug("bleu");
            fibaro:call(236, "setColor", "0", "0", "255", "0") -- bleu
            fibaro:sleep(5*1000)
        end
    end

Code a mettre dans le main loop du VD

-- Main Loop --
    local maintenant = os.date("%H:%M", os.time())
    local heuremini, heuremaxi = "07:00", "07:55"
    local selfId = fibaro:getSelfId()

fibaro:debug("Maintenant : " ..maintenant.. " - Heure mini : " .. heuremini .. " - Heure maxi : " ..heuremaxi)

-- 1ère fois que le main loop s'exécute, on crée une variable nommée "instance" car elle n'existe pas. Elle existera au 2ème passage donc ne sera pas recrée.
if (not instance) then
    -- on indique la fréquence d'execution souhaitée (en minutes)
    instance = { lastrun = 0, every = 1 }
    fibaro:debug("first run")
end

-- on vérifie la différence entre cette exéction et la dernière (stocké dans instance.lastrun)
diff = os.date("*t", os.difftime(os.time(), instance.lastrun))
 

if maintenant >= heuremini and maintenant <= heuremaxi then
    -- si la différence en minutes et supérieure ou égale à  la fréquence souhaitée (instance.every)
        if (diff.min >= instance.every) then
            fibaro:call(selfId, "pressButton", 1)
            -- on stock l'heure de la nouvelle exécution
            instance.lastrun = os.time()
            fibaro:debug("executed")
        end
end
Posté(e)

oui si tu as laisse instance.every à  1, cela signifie qu'il va appuyer sur le bouton toutes les mins.

 

alors une question : tu veux en fait que cela fonctionne qu'1 fois ?

Posté(e)

dans ce cas, pas besoin d'heure mini ni maxi, juste une heure  à  déterminer pour le faire :

 

nouveau code du main loop alors :

-- Main Loop --
    local maintenant = os.date("%H:%M", os.time())
    local heure = "07:00"
    local selfId = fibaro:getSelfId()

fibaro:debug("Maintenant : " ..maintenant.. " - Heure prévue : " .. heure)

-- 1ère fois que le main loop s'exécute, on crée une variable nommée "instance" car elle n'existe pas. Elle existera au 2ème passage donc ne sera pas recrée.
if (not instance) then
    -- on indique la fréquence d'execution souhaitée (en minutes)
    instance = { lastrun = 0, every = 1 }
    fibaro:debug("first run")
end

-- on vérifie la différence entre cette exéction et la dernière (stocké dans instance.lastrun)
diff = os.date("*t", os.difftime(os.time(), instance.lastrun))
 

if maintenant == heure then
    -- si la différence en minutes et supérieure ou égale à  la fréquence souhaitée (instance.every)
        if (diff.min >= instance.every) then
            fibaro:call(selfId, "pressButton", 1)
            -- on stock l'heure de la nouvelle exécution
            instance.lastrun = os.time()
            fibaro:debug("executed")
        end
end

 

  • 2 semaines après...
Posté(e)

Salut pepite c'est possible de modifier quelque chose je voudrais utiliser un VD àla place de Yahoo comme météo

Posté(e)

Salut domo,

 

C'est sur que Yahoo avec son changement d'API devient tout de suite moins fiable ;-) 

 

que veux tu faire ?

×
×
  • Créer...