Aller au contenu

Timer Sur Une Scène ...?


Messages recommandés

Posté(e) (modifié)

Bonsoir,

 

Je ne sais pas comment faire pour céclencher cette cette à  Minuit.

Ce bout de code est dans un VD et me sert à  remettre à  zéro (click sur toutes les scènes, si désactivé) des scènes.

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

local selfId = fibaro:getSelfId();
local icon = fibaro:get (selfId, "deviceIcon");

fibaro:setSceneEnabled(85,true); -- Réveil Sem
fibaro:setSceneEnabled(86,true); -- Réveil WE
fibaro:debug("Réveil activé"); 
fibaro:setSceneEnabled(42,true); -- Couché du soleil Maison
fibaro:debug("Couché du soleil activé");
fibaro:setSceneEnabled(83,true); -- Zapping TV
fibaro:debug("Zapping activé"); 
-- fibaro:setSceneEnabled(106,true); -- Couché du soleil Terrasse
-- fibaro:debug("Couché du soleil Terrasse activé");
fibaro:call(81, "setProperty", "ui.status.value", "Remise à  zéro");
fibaro:debug(fibaro:getValue(81, "ui.status.value"))

fibaro:sleep(3*1000);
fibaro:call(selfId, "setProperty", "currentIcon", icon);

Pouvez vous m'aider ...? :D

 

D'avance merci

Modifié par Moicphil
Sujet déplacé dans la bonne section / bistrot vers Support HC2
Posté(e)

Voilà  ce que je ferai :

 

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

local sourceTrigger = fibaro:getSourceTrigger();
local heure = os.date("%H:%M");
local selfId = fibaro:getSelfId();
local icon = fibaro:get (selfId, "deviceIcon");

local jour ="";

if( os.date("*t").wday == 2 ) then jour = "Lundi"; end
if( os.date("*t").wday == 3 ) then jour = "Mardi"; end
if( os.date("*t").wday == 4 ) then jour = "Mercredi"; end
if( os.date("*t").wday == 5 ) then jour = "Jeudi"; end
if( os.date("*t").wday == 6 ) then jour = "Vendredi"; end
if( os.date("*t").wday == 7 ) then jour = "Samedi"; end
if( os.date("*t").wday == 1 ) then jour = "Dimanche"; end

fibaro:debug("Démarrage du Script Automatisée de Remise à  Zéro");
fibaro:debug(" ("..jour.." - "..heure..")");


fibaro:debug("------------------------------------------------------------------------------------");

if (sourceTrigger["type"] == "autostart") then
    while true do
        local currentDate = os.date("*t");
        local startSource = fibaro:getSourceTrigger();

        if
        (    -- à  00H01
            string.format("%02d", currentDate.hour) .. ":" .. string.format("%02d", currentDate.min) == "00:01" and
            (-- Test de tous les jours
                currentDate.wday == 7 or
                currentDate.wday == 1 or
                currentDate.wday == 2 or
                currentDate.wday == 3 or
                currentDate.wday == 4 or
                currentDate.wday == 5 or
                currentDate.wday == 6
            )
        )
        then
            fibaro:debug("---------------------");
            fibaro:debug("--- Début de RAZ ----");
            fibaro:setSceneEnabled(85,true); -- Réveil Sem
            fibaro:setSceneEnabled(86,true); -- Réveil WE
            fibaro:debug("Réveil activé");
            fibaro:setSceneEnabled(42,true); -- Couché du soleil Maison
            fibaro:debug("Couché du soleil activé");
            fibaro:setSceneEnabled(83,true); -- Zapping TV
            fibaro:debug("Zapping activé");
            -- fibaro:setSceneEnabled(106,true); -- Couché du soleil Terrasse
            -- fibaro:debug("Couché du soleil Terrasse activé");
            fibaro:call(81, "setProperty", "ui.status.value", "Remise à  zéro");
            fibaro:debug(fibaro:getValue(81, "ui.status.value"))
            
            fibaro:sleep(3*1000);
            fibaro:call(selfId, "setProperty", "currentIcon", icon);
            
            fibaro:debug("---  Fin de RAZ  ----");
        end
        fibaro:sleep(60*1000);
    end
else
    local currentDate = os.date("*t");
    local startSource = fibaro:getSourceTrigger();
end
 

 

 

A tester...

Posté(e)

Super, merci Zeldoi5.

Je vais m'essayer avec ca, déjàje vais tenter De décrypter ...!!

Merci pour ton retour, cela servira certainement àd'autres

Posté(e)

De rien ;)

 

ce code est un peu adapté de mes scripts.... j'espère ne pas avoir fait de boulette...

 

Le plus important à  comprendre est ce bout de code :

        if
        (    -- à  00H01
            string.format("%02d", currentDate.hour) .. ":" .. string.format("%02d", currentDate.min) == "00:01" and
            (-- Test de tous les jours
                currentDate.wday == 7 or
                currentDate.wday == 1 or
                currentDate.wday == 2 or
                currentDate.wday == 3 or
                currentDate.wday == 4 or
                currentDate.wday == 5 or
                currentDate.wday == 6
            )
        )
        then
            fibaro:debug("---------------------");
            fibaro:debug("--- Début de RAZ ----");
            fibaro:setSceneEnabled(85,true); -- Réveil Sem
            fibaro:setSceneEnabled(86,true); -- Réveil WE
            fibaro:debug("Réveil activé");
            fibaro:setSceneEnabled(42,true); -- Couché du soleil Maison
            fibaro:debug("Couché du soleil activé");
            fibaro:setSceneEnabled(83,true); -- Zapping TV
            fibaro:debug("Zapping activé");
            -- fibaro:setSceneEnabled(106,true); -- Couché du soleil Terrasse
            -- fibaro:debug("Couché du soleil Terrasse activé");
            fibaro:call(81, "setProperty", "ui.status.value", "Remise à  zéro");
            fibaro:debug(fibaro:getValue(81, "ui.status.value"))
            
            fibaro:sleep(3*1000);
            fibaro:call(selfId, "setProperty", "currentIcon", icon);
            
            fibaro:debug("---  Fin de RAZ  ----");
        end
Posté(e)

@Did :

 

je pense que Rem's avait du mal à  coder en LUA pour programmer une (des) action (s) à  telle heure...

 

Après ce que ça fait à  telle heure, je t'avoue ne pas savoir !

Posté(e)

Did,

J'ai un VD qui me sert à  activer (cocher "scène active") ou désactiver (décocher "scène active" + stop lecture en cours).

Le truc c'est que j'oublie de remettre en service pour le lendemain (donc ca ne marche pas et je m'en prend à  M. FIBARO).

 

Donc ce bout de code coche à  ma place ....

Posté(e)

Juste en complément ( ;))

 

Il est inutile de tester tous les jours si justement le script doit s’exécuter tous les jours, la partie suivante peut être supprimée

            (-- Test de tous les jours
                currentDate.wday == 7 or
                currentDate.wday == 1 or
                currentDate.wday == 2 or
                currentDate.wday == 3 or
                currentDate.wday == 4 or
                currentDate.wday == 5 or
                currentDate.wday == 6
            )

cette partie

else
    local currentDate = os.date("*t");
    local startSource = fibaro:getSourceTrigger();
end

idem.

Posté(e)

Effectivement

- j'avais vu que le else ne servait àrien (je n'avais pas correctement nettoyé le code!).

- pour le test sur les jours... idem !

Bien vu Krikroff ;)

Posté(e)

M'en sort pas, le début bloque après la lecture des dates (ca l'a fait je fois ou 2 jusqu'àu dernier debug, RAZ).

Je m'y re penche ce soir et vous tiens au jus

×
×
  • Créer...