Aller au contenu

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


Did

Messages recommandés

 Bonjour,

  Je reviens avec mon script sur le renseignement d'une variable "saison" pour déterminer (une fois par jour à  3h30) si nous sommes en heures d'été ou d'hiver que m'avait concocté Krikroff et je souhaiterai y ajouter la commande d'un module FGS-211 pour l'éclairage d'une plaque de rue d'interphone qui s'allumerait, en fin d'après-midi grâce à  une variable Jour/Nuit (déjà  installée dans le panneau) et qui s'éteindrait vers minuit avec les heures d'été et plutôt 22h avec les heures d'hiver (pour ne pas le laisser allumé toute la nuit). Le matin, il se rallumerait avec ma variable Jour/Nuit et s'éteindrait vers 7h l'été et 9h l'hiver. Le cycle recommencerait en fin d'après-midi et ainsi de suite.
 

--[[
%% autostart
%% properties
%% globals
--]]
 
function check()
-- 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
 
local sourceTrigger = fibaro:getSourceTrigger();
if (sourceTrigger["type"] == "autostart") then
while true do
local currentDate = os.date("*t");
local startSource = fibaro:getSourceTrigger();
if ( ( ((currentDate.wday == 1 or currentDate.wday == 2 or currentDate.wday == 3 or currentDate.wday == 4 or currentDate.wday == 5 or currentDate.wday == 6 or currentDate.wday == 7) and string.format("%02d", currentDate.hour) .. ":" .. string.format("%02d", currentDate.min) == "03:30") )) then
check()
end
fibaro:sleep(60*1000);
end
else
local currentDate = os.date("*t");
local startSource = fibaro:getSourceTrigger();
if (startSource["type"] == "other") then
check()
end
end
 

 Je pense qu'il faudrait une autre scène indépendante car celle ci-dessus ne tourne qu'une fois à  3h30.

 

 Merci de m'éclairer (sans jeux de mots).

Lien vers le commentaire
Partager sur d’autres sites

  Pour la variable Jour / Nuit, j'ai la même chose que moicphil mais avec15 min. après le coucher du soleil. Donc je reviens sur mon projet où j'ai fait une erreur

 

pour  l'extinction du matin:

 

                                                    Variable saison sur été                                                             Variable saison sur hiver

 

                                                                                                                                                                   Allumage à  7h

Matin:                                                                 

                                                     Pas d'allumage le matin  

                                                                                                                                                Extinction par variable Jour/Nuit sur jour

 

Après-midi:                        Allumage par variable Jour/Nuit sur nuit                                        Allumage par variable Jour/Nuit sur nuit

 

                                                          Extinction à  22h                                                                         Extinction à  minuit

 

 

Lien vers le commentaire
Partager sur d’autres sites

Bonjour,

 

@shad, qu'est-ce que tu entends par "revalider les alarmes" ?

 

@Did, pourquoi passer par une variable pour connaitre la saison, tu peux très bien utiliser os.date() pour connaitre le mois et tu stockes dans une table les mois correspondant aux saisons, tu n'as plus qu'à  vérifier dans quelle table se trouve le mois courant, ainsi tu as tout dans ta scène (d'ailleurs je cherche a trouver un moyen de partager des tables LUA entre scène, mais par les variable globale ça n'a pas l'air possible, si quelqu'un a une idée ...). Autre option, toujours avec os.dat, tu peux vérifier la valeur de "isdst" pour savoir si on est en heure d'hiver ou d'été (http://www.lua.org/pil/22.1.html)

Lien vers le commentaire
Partager sur d’autres sites

Si cela encombre moins le HC2, pourquoi pas. Ma scène tourne une fois à  3h30 quotidiennement et elle vérifie la valeur de "isdst" mais j'aimerais qu'elle allume un

 

module à  différentes heures suivant l'été ou l'hiver.

Lien vers le commentaire
Partager sur d’autres sites

Je t'ai déjà  répondu et tu te compliques la tâche.

 

1°) Fais toit une scène pour ta saison (par ailleurs évite les accents)

2°) Fais toit une scène pour éteindre ta lampe.

3°) Tu fais gérer et démarrer tout sa par le scheduler.

 

Et tu verras que sa te prendras encore moins de temps et ce sera extrêmement plus simple à  mettre en place et à  gérer et surtout à  débugger.

Lien vers le commentaire
Partager sur d’autres sites

×
×
  • Créer...