Domodial Posté(e) le 11 mars 2014 Signaler Posté(e) le 11 mars 2014 bon, c'est quoi ce scheduler ? c'est un soft a part ? il se trouve ou
BenjyNet Posté(e) le 11 mars 2014 Signaler Posté(e) le 11 mars 2014 Et revoilà Domodial qui fait son boulet.... recherche mon ami.. recherche ...... http://www.domotique-fibaro.fr/index.php/topic/204-lua-scheduler-for-hc2/?hl=scheduler
Domodial Posté(e) le 11 mars 2014 Signaler Posté(e) le 11 mars 2014 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.
Shad Posté(e) le 11 mars 2014 Signaler Posté(e) le 11 mars 2014 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 1
Did Posté(e) le 11 mars 2014 Auteur Signaler Posté(e) le 11 mars 2014 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?
Shad Posté(e) le 12 mars 2014 Signaler Posté(e) le 12 mars 2014 Je regarderais pour éditez le post du scheduler pour expliquer l installation
jimbo007be Posté(e) le 12 mars 2014 Signaler Posté(e) le 12 mars 2014 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
Did Posté(e) le 12 mars 2014 Auteur Signaler Posté(e) le 12 mars 2014 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"?
jimbo007be Posté(e) le 12 mars 2014 Signaler Posté(e) le 12 mars 2014 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
Shad Posté(e) le 12 mars 2014 Signaler Posté(e) le 12 mars 2014 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
Did Posté(e) le 12 mars 2014 Auteur Signaler Posté(e) le 12 mars 2014 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.
Shad Posté(e) le 13 mars 2014 Signaler Posté(e) le 13 mars 2014 Tiens moi au courant si tu as un soucis
Steven Posté(e) le 25 avril 2014 Signaler Posté(e) le 25 avril 2014 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
Messages recommandés