Aller au contenu

Allumage & Extinction Différents Suivant Heures D'hiver Ou D'été


Messages recommandés

Posté(e)

En fait je n'avais rien trouvé, mais je viens de me rendre compte de l'erreur.

J'ai fait une recherche en étant sur ce sujet.

Et le moteur de recherche ne recherche que dans le sujet...

 

Bref, merci pour le lien, ça a vraiment l'air génial avec possibilité de régler des écarts en temps, plus ou moins, ce qui me gonfle justement avec les horaires été/hiver et les différences jamais prise en compte par (je le remarque depuis une semaine) la HC2.

Posté(e)

Perso pour gérer ma maison je n'ai que deux scènes:

- Le scheduler: qui s'occupe de lancer des scénario à  des heures fixes ou par rapport au soleil.

- Une scène qui regroupe toute mes associations pour lancer par exemple si tu ouvres la baie vitré le volet remonte, quand tu refermes il retourne à  la position ou il était.

 

Ce qui veut dire que je n'ai que deux scènes maître pour lancer des opérations journalières et ce qui facilité grandement mes scènes car je n'ai qu'à  mettre au début de ma scène:

local startSource = fibaro:getSourceTrigger();
if ( startSource["type"] == "other" ) then

Donc déjà  beaucoup plus simple pour la créer et faire des test.

 

Donc pour en revenir au sujet avant de me faire tapper par Did car je pollue son post, voilà  comment je ferais:

Première scène pour la variable.

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

local startSource = fibaro:getSourceTrigger();
if ( startSource["type"] == "other" ) then
    -- récupération table Date
    local dt = os.date("*t");
    -- création de la chaîne pour affichage
    local display = dt.hour..":"..dt.min..":"..dt.sec.." Heure d'été -> "..tostring(dt.isdst);
    -- Sortie de la variable vers la fenêtre debug du HC2
    -- false pour hiver, true pour été
    fibaro:debug(display);
    -- mise à  jour de la variable
    if (dt.isdst) then
        fibaro:setGlobal("Saison", "Eté");
    else
        fibaro:setGlobal("Saison","Hiver");
    end
end

Et pour les lumières une seconde scène

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

local startSource = fibaro:getSourceTrigger();
local saison = "Saison";

if ( startSource["type"] == "other" ) then
    if (fibaro:getGlobalValue(Saison) == "Ete") then
        if (tonumber(fibaro:getValue(8, "value")) == 0) then
            fibaro:call(8, "turnOn");
        else
            fibaro:call(8, "turnOff");
        end
    elseif (fibaro:getGlobalValue(Saison) == "Hiver") then
        if(tonumber(fibaro:getValue(8, "value")) == 0) then
            fibaro:call(8, "turnOn");
        else
            fibaro:call(8, "turnOff");
        end
    end
end

Et dans le scheduler

luaDaySchedule:add("Sunrise","Scene ID", "" , "startScene", {"All"}, false , 0);
luaDaySchedule:add("Sunset","Scene ID", "" , "startScene", {"All"}, false , 0);
luaDaySchedule:add("00:00","Scene ID", "" , "startScene", {"All"}, false);
luaDaySchedule:add("07:00","Scene ID", "" , "startScene", {"All"}, false);
luaDaySchedule:add("09:00","Scene ID", "" , "startScene", {"All"}, false);
luaDaySchedule:add("22:00","Scene ID", "" , "startScene", {"All"}, false);

Essaye avec ça et le scheduler et dis moi, par contre faut l'optimiser pour mettre des vérifications avec des tranches horaires, car si par exemple tu l'allumes toi même le cycle va être inverser.

Mais c'est la base de ce que tu veux qui te permettra une évolution globale de ton installation ;)

  • Upvote 1
Posté(e)

 Non non Shad, pas de problèmes pour le post. Je viens de me lancer dans l'installation des scènes id1 & id2, puis des modules virtuels Alarm Clock & Sheduler Control mais pour que ça fonctionne, il faut certainement adapter les numéros d'Id à  ma config, mais à  quoi correspondent-ils?

Posté(e)

did : il faut éditer ceci

 

dans la scene scheduler :

restartScene = l'id de la scene "restart"

controlDevide = id du virtual device "Scheduler_Control"

les deviceID pour alarmTime1, alarmTime2, alarmTime3, alarmTime4 qui correspondent aux ID des 4 devices "Alarm_Clock" que tu as créé

 

dans la scene Restart Schedule : 

scheduleScene = l'id de la scene scheduler

Posté(e)

  Merci jimbo007be et shad.

 

  Tout est mis en place: mes 4 alarm clock, le sheduler control, les 2 scènes sheduler et restart schedule et les 6 variables globales.

 

Pour les alarm clock, ne faut-il pas changer pour le bouton save, la ligne 2 et remplacer "alarmTime1" pour chaque alarm clock?

 

  J'ai aussi remplacé mes numéros d'Id mais après, ça se complique pour la "mise en place du scénario"

Quelles lignes doit on insérer et ou est la section "add your lines here"?

Ou est la balise "time"?

Posté(e)

je t'avoue que je n'ai pas (encore?) utilisé les alarm clocks ... mais effectivement il faut ajuster la ligne 2 et 3 dans les devices 2, 3 & 4 :)

pour la suite, ça se passe pratiquement tout en dessous (moi c'est ligne 1250) ... tout est expliqué dans les commentaires 

tu dois ajouter tes lignes luaDaySchedule:add... dans le bon "groupe" (summer, winter, summerholiday ou winterholiday) en fonction de ce que tu veux faire :)

Posté(e)

Oui exact j'ai oublier de le préciser.

 

Mais tu verras le gain de temps et la facilité de mettre en place d'autre scène maintenant ;)

Posté(e)

 Bon, je regarderais ça demain mais encore merci pour votre patience. je ne doute pas de l'efficacité et aussi du délestage du proc par rapport à  de multiples scènes mais je n'ai pas encore tout compris sur la programmation de mon éclairage de plaque de rue. Je vous fais confiance! et vous solliciterais encore pour l'utilisation de ce sheduler.

  • 1 mois après...
Posté(e)

Je suis retombé sur cette article et comme j'avais 5 minutes, je me suis dis qu'à  des fins pédagogiques, cela serait sympa de réaliser ce script. Attention, l'utilisation du Scheduler devrait être plus performant.

 

Alors le voici

--[[
%% autostart
%% properties
%% globals
   LEVERCOUCHER
--]]
-- ------------------------------------------------------
-- Ce script va réagir au démarrage de la HC2 (autostart) et au changement
-- de la variable globale LEVERCOUCHER
-- ------------------------------------------------------

local id_sonnette = 10  -- identifiant de la sonnette

local sourceTrigger = fibaro:getSourceTrigger(); -- le déclencheur de ce scénario

-- au démarrage de la HC2
if (sourceTrigger["type"] == "autostart") then
    -- On vérifie toute les minutes
   while true do

      local dt = os.date("*t");  -- date et heure courante
      local heure = string.format("%02d", dt.hour) .. ": ".. string.format("%02d", dt.min) -- juste l'heure au format HH:mm
      local ete = dt.isdst;        -- vrai si on est l'été

      -- 7h du matin un jour d'hiver 
      if (heure == "07:00" and not ete) then
         -- allumage de la sonnette
         fibaro:call(id_sonnette, "turnOn")
      end

      -- 22h un jour d'été
      if (heure == "22:00" and ete) then
         -- éteindre la sonnette
         fibaro:call(id_sonnette, "turnOff")
      end
      
      -- minuit un jour d'hiver
      if (heure == "00:00" and not ete) then
         -- éteindre la sonnette
         fibaro:call(id_sonnette, "turnOff")
      end

      fibaro:sleep(60*1000);  -- on attend 1 minute
   end
end


-- au changement de la variable LEVERCOUCHER
if (sourceTrigger["type"] == "global" and sourceTrigger["varName"] == "LEVERCOUCHER") then
   -- lever du soleil
   if (fibaro:getGlobalValue("LEVERCOUCHER") == 0) then
      -- on éteint la sonnette
      fibaro:call(id_sonnette, "turnOff")
   else
      -- on allume la sonnette lorsque la variable passe sur Nuit
      fibaro:call(id_sonnette, "turnOn")   
   end
end

×
×
  • Créer...