rahany Posté(e) le 26 juin 2015 Signaler Partager 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 Lien vers le commentaire Partager sur d’autres sites More sharing options...
Berale64 Posté(e) le 27 juin 2015 Signaler Partager 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. Lien vers le commentaire Partager sur d’autres sites More sharing options...
rahany Posté(e) le 27 juin 2015 Auteur Signaler Partager 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 Lien vers le commentaire Partager sur d’autres sites More sharing options...
mprinfo Posté(e) le 27 juin 2015 Signaler Partager 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 Lien vers le commentaire Partager sur d’autres sites More sharing options...
rahany Posté(e) le 28 juin 2015 Auteur Signaler Partager 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 Lien vers le commentaire Partager sur d’autres sites More sharing options...
Berale64 Posté(e) le 28 juin 2015 Signaler Partager 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 Lien vers le commentaire Partager sur d’autres sites More sharing options...
rahany Posté(e) le 28 juin 2015 Auteur Signaler Partager 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. . Lien vers le commentaire Partager sur d’autres sites More sharing options...
rahany Posté(e) le 30 juin 2015 Auteur Signaler Partager 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. Lien vers le commentaire Partager sur d’autres sites More sharing options...
rahany Posté(e) le 6 juillet 2015 Auteur Signaler Partager 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. Lien vers le commentaire Partager sur d’autres sites More sharing options...
fredokl Posté(e) le 22 octobre 2016 Signaler Partager 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. Lien vers le commentaire Partager sur d’autres sites More sharing options...
Berale64 Posté(e) le 23 octobre 2016 Signaler Partager 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é. Lien vers le commentaire Partager sur d’autres sites More sharing options...
mprinfo Posté(e) le 23 octobre 2016 Signaler Partager 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 ...... Lien vers le commentaire Partager sur d’autres sites More sharing options...
fredokl Posté(e) le 23 octobre 2016 Signaler Partager 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 Lien vers le commentaire Partager sur d’autres sites More sharing options...
Messages recommandés