Aller au contenu

VOLET ROULANT : OUV/FERM + LEVER/COUCHER SOLEIL


xavier49300

Messages recommandés

Bonjour, 

je viens de la part de domotique store ;-) 

j'ai un problème avec mon scénario ci-dessous, qui fonctionne qu'a moitié, je n'ai que le lever sans les 60min . j'aimerai ouvrir et fermer mes volet roulant en fonction du lever + 60min après  et du coucher + 60 min  après du soleil. Si vous avez une idée de correction je suis preneur, merci pour votre aide. commande LUA ci-dessous: (merci pour votre aide)

 

--[[
%% autostart
%% properties
%% globals
--]]

local sourceTrigger = fibaro:getSourceTrigger();
local heure = os.date("%H:%M");


local lever = string.format(fibaro:getValue(1, "sunriseHour"));
local coucher = string.format(fibaro:getValue(1, "sunsetHour"));

fibaro:debug("Démarrage du Gestion Automatisée des volets");

--Affichage de l'heure de couché de soleil au démarrage du script:
fibaro:debug(" Lancement : Heure de levé de soleil : "..lever);
fibaro:debug(" Lancement : Heure de couché de soleil : "..coucher);
fibaro:debug("----------------------------------------------------------------------------------");

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

    while true do
        local currentDate = os.date("*t");
        local startSource = fibaro:getSourceTrigger();

        -- Test OUVERTURE
        if
        (    -- à 8H55
            --string.format("%02d", currentDate.hour) .. ":" .. string.format("%02d", currentDate.min) == "08:55"
            -- ou à l'heure du lever de soleil :
            -- os.date("%H:%M", os.time()-140*60) == fibaro:getValue(1, "sunriseHour")
            -- ou à l'heure du lever de soleil + 140 minutes:
            os.date("%H:%M", os.time()+60*60) == fibaro:getValue(1, "sunriseHour")
        )
        then
            -- Ouverture des Volets
local currentHour = string.format("%02d", currentDate.hour);
fibaro:debug(" Lancement ouverture volet : "..currentHour);
fibaro:call(5, "open");
fibaro:call(5, "setValue2", "99");
fibaro:call(83, "open");
fibaro:call(83, "setValue2", "99");
fibaro:call(192, "open");
fibaro:call(192, "setValue2", "99");
fibaro:call(109, "open");
fibaro:call(109, "setValue2", "99");
fibaro:call(43, "open");
fibaro:call(43, "setValue2", "99");
fibaro:call(45, "open");
fibaro:call(45, "setValue2", "99");
        end
        -- Test FERMETURE
        if
        (
            -- Test si heure = heure de coucher de soleil + 60 minutes
            os.date("%H:%M", os.time()+60*60) == fibaro:getValue(1, "sunsetHour")
        )
        then
      
            -- Fermeture des volets
            -- tu mets tes commandes LUA pour fermer tes volets
local currentHour = string.format("%02d", currentDate.hour);
fibaro:debug(" Lancement fermeture volet : "..currentHour);
fibaro:call(5, "close");
fibaro:call(83, "close");
fibaro:call(45, "close");
fibaro:call(192, "close");
fibaro:call(109, "close");
fibaro:call(87, "close");
fibaro:call(43, "close");
        end
        
        fibaro:sleep(60*1000);
    end
else
    local currentDate = os.date("*t");
    local startSource = fibaro:getSourceTrigger();
end

Capture fibaro lever coucher soleil.png

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

mprinfo, merci pour ton aide. peux tu faire une correction de la commande LUA directement stp, je pense que je suis pas loin du mon but, je pense que ces lignes qui déconnes : 

-- Test si heure = heure de coucher de soleil + 60 minutes
            os.date("%H:%M", os.time()+60*60) == fibaro:getValue(1, "sunsetHour")

ET

 

 -- ou à l'heure du lever de soleil + 140 minutes:(((j'ai plutôt mis 60 au lieu de 140)))
            os.date("%H:%M", os.time()+60*60) == fibaro:getValue(1, "sunriseHour")
        

 

 

Capture d’écran 2016-12-29 à 20.45.34.png

Lien vers le commentaire
Partager sur d’autres sites

×
×
  • Créer...