rahany Posté(e) le 26 juin 2015 Signaler Posté(e) le 26 juin 2015 Bonsoir, Je souhaite déclencher plusieurs scènes selon la saison. ( Été - Hiver ) J'ai créé une variable Saison avec 2 arguments Été et Hiver. Créer la scène en script, avec le code ci-dessous, pour connaitre la saison. Mais cela ne fonctionne pas Attention, ce n'est pas mon code je l'ai trouvé sur le forum, et je crois que c'est krikoff qui l'a écrit. 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","Ete"); else fibaro:setGlobal("Saison","Hiver"); end end Par contre, quand je crée les scènes en mode bloc comme ci-dessous, tout fonctionne correctement. un petite aide m'siou 1
Berale64 Posté(e) le 27 juin 2015 Signaler Posté(e) le 27 juin 2015 ça veut dire quoi "ça ne marche pas" ? Le fait que tu commences par : if ( startSource["type"] == "other" ) then fait que ta scène ne démarre que si tu cliques sur "RUN" alors que la scène bloc contient une boucle infinie pour tester la date.
rahany Posté(e) le 27 juin 2015 Auteur Signaler Posté(e) le 27 juin 2015 ok merci de l'info, qu'elle est la ligne de code pour que la scène ce déclenche tt les jours pour connaitre la saison alors ? Ou comment dois-je modifier le code pour que cela fonctionne
mprinfo Posté(e) le 27 juin 2015 Signaler Posté(e) le 27 juin 2015 Tu peux faire un do while true mais c'est pas top pour un déclenchement par jour Envoyé de mon SM-G900F
rahany Posté(e) le 28 juin 2015 Auteur Signaler Posté(e) le 28 juin 2015 Ok, je viens de prendre le code de KriKoff, mais comme je ne comprends pas trop ( voir rien du tout au code) Pouvez-vous me dire SVP, si ce code est bon, avec la variable : Saison - Été / Hiver ? Par avance merci de votre retour. --[[ %% 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) == "04:15") )) 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
Berale64 Posté(e) le 28 juin 2015 Signaler Posté(e) le 28 juin 2015 Si c'est du Krikoff ça ne peut que fonctionner !!! Par contre, je ne sais pas pourquoi il teste à 4h15, mais pourquoi pas ... De même le changement d'heure ayant lieu le dimanche matin, on peut simplifier le test 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) == "04:15") )) then en if ( currentDate.wday == 1 and string.format("%02d", currentDate.hour) .. ":" .. string.format("%02d", currentDate.min) == "04:15") then
rahany Posté(e) le 28 juin 2015 Auteur Signaler Posté(e) le 28 juin 2015 ok, je crois que l'heure c'est parce que le changement d'heure à lieu à 3h00 du matin donc, par précaution il le lance à 4H15. Je remplace les lignes si dessus et le script ce lancera tous les jours à 4h15 et ma variable "Saison" sera à jour, et donc mes scènes avec la variable "Été ou Hiver" ce déclencheront normalement. Je vais tester çà . j'espère que je tiens le bon bout. .
rahany Posté(e) le 30 juin 2015 Auteur Signaler Posté(e) le 30 juin 2015 Bon j'ai testé et ça àfonctionné 2 jrs, mais today no. bon je vais attendre la fin de la semaine pour faire un bilan.
rahany Posté(e) le 6 juillet 2015 Auteur Signaler Posté(e) le 6 juillet 2015 Bin après une semaine de test, très concluant....ts fonctionne correctement Scéne LUA avec mes variables ainsi que les scènes en mode bloc utilisant les variables. Donc sujet clos. Merci encore pour vos aides. Et bonnes vacances pour ceux qui partent en juillet.
fredokl Posté(e) le 22 octobre 2016 Signaler Posté(e) le 22 octobre 2016 Salut. Je relance ce post. Voilà, j'ai créé une scène avec les deux variables comme précisé plus haut mais lorsque que la scène se déclenche il me dit que je suis en été et non en hiver. J'ai du louper quelques chose, mais quoi? Le code est identique àla source donc pas de modification de ma part, mise àpart la correction apporté par Berale24.
Berale64 Posté(e) le 23 octobre 2016 Signaler Posté(e) le 23 octobre 2016 Si je ne me trompe, le changement d'heure aura lieu le 29 octobre, donc nous sommes encore en été.
mprinfo Posté(e) le 23 octobre 2016 Signaler Posté(e) le 23 octobre 2016 Ce code n'est pas vraiment top faire tourner une instance en permanence pour 2 actions dans l'année ......
fredokl Posté(e) le 23 octobre 2016 Signaler Posté(e) le 23 octobre 2016 @Berale24.Ok. Je n'avais pas pris en compte la date de changement d'heure. @mprinfo. Je suis du même avis que toi. Pas pratique àutiliser surtout en cette période. J'ai voulu mettre mon chauffage dessus et utiliser la fonction Eté/Hiver afin d'éviter une utilisation àla mauvaise période. Et comme on est encore en "Eté", le chauffage ne se déclenche pas... surtout qu'il commence àfaire froid en ce moment. Envoyé de mon iPhone en utilisant Tapatalk
Messages recommandés