jjacques68 Posté(e) le 21 août 2018 Signaler Posté(e) le 21 août 2018 marrant comme les messages se croisent 1
971jmd Posté(e) le 21 août 2018 Auteur Signaler Posté(e) le 21 août 2018 à l’instant, jjacques68 a dit : moi perso je ferais : if fibaro:getValue(fibaro:getSelfId(),"ui.Label5.value") == "Prog_1" then fibaro:call(fibaro:getSelfId(), "setProperty", "ui.lblTime2.value", "Bonjour") end Je ne connais pas le getProperty... EEEEE oui effectivement getProperty pas bon merci ça fonctionne 1
971jmd Posté(e) le 21 août 2018 Auteur Signaler Posté(e) le 21 août 2018 savez-vous si par défaut les bouton des VD dipose d'un main loop si non comment crée un main loop dans un bouton
971jmd Posté(e) le 22 août 2018 Auteur Signaler Posté(e) le 22 août 2018 (modifié) salut a tous j'ai un autre petit probleme si LABEL nprog = Prog_01 alors collée une valeur dans le label LABEL5 le problème est la valeur, je souhaite la récupérée dans une LABEL10 <------------------------ jusque la pas de souci -------------------------------------------------------------------------------------------------------------------><--Prob-------> if fibaro:getValue(fibaro:getSelfId(),"ui.nprog.value") == "Prog_01" then fibaro:call(fibaro:getSelfId(), "setProperty", "ui.LABEL5.value", "une valeur") end if fibaro:getValue(fibaro:getSelfId(),"ui.nprog.value") == "Prog_01" then fibaro:call(fibaro:getSelfId(), "setProperty", "ui.LABEL5.value", "une valeur") end Modifié le 22 août 2018 par 971jmd
971jmd Posté(e) le 22 août 2018 Auteur Signaler Posté(e) le 22 août 2018 j'ai trouver local p1 = fibaro:get(fibaro:getSelfId(),"ui.lblTime.value") if fibaro:getValue(fibaro:getSelfId(),"ui.nprog.value") == "Prog_01" then fibaro:call(fibaro:getSelfId(), "setProperty", "ui.LABEL5.value", p1)end 1
971jmd Posté(e) le 22 août 2018 Auteur Signaler Posté(e) le 22 août 2018 (modifié) Le 20/08/2018 à 11:21, Steven a dit : setTimeOut prend en paramètre : 1) la function a exécuté 2) la durée en millièmes de secondes Donc oui, 1 minute = 1000 millièmes de secondes * 60 @Steven salut comment je pourrais placée une tempo entre chaque exécution le problème est que si j’exécute newora1 et newora3 en même temps, j'ai un iniquement la lampe ID14 qui s'allume donc je pense qu'il faut une tempo 1s entre chaque newora if string.format("%02d:%02d", currentDate.hour, currentDate.min) == newora1 then fibaro:call(14, "turnOn") else if string.format("%02d:%02d", currentDate.hour, currentDate.min) == newora2 then fibaro:call(14, "turnOff") end if string.format("%02d:%02d", currentDate.hour, currentDate.min) == newora3 then fibaro:call(338, "turnOn") end if string.format("%02d:%02d", currentDate.hour, currentDate.min) == newora4 then fibaro:call(338, "turnOff") end end Modifié le 22 août 2018 par 971jmd
971jmd Posté(e) le 22 août 2018 Auteur Signaler Posté(e) le 22 août 2018 bin non ça fonctionne, j'ai pas vue le else qui traînée
971jmd Posté(e) le 22 août 2018 Auteur Signaler Posté(e) le 22 août 2018 (modifié) autre chose juste pour notre connaissance local currentDate = os.date("*t"); if string.format("%02d:%02d:%02d", currentDate.hour, currentDate.min, currentDate.sec+2) == newora1 then tu pense qu'il est possible d'ajouter +2sec à currentDate.sec Modifié le 22 août 2018 par 971jmd
jjacques68 Posté(e) le 22 août 2018 Signaler Posté(e) le 22 août 2018 Mais attention si ces lignes sont dans un setTimeout, il faut que le temps de bouclage soit <= à ces 2 secondes !! Sinon tu risques de ne pas les voir passer !
971jmd Posté(e) le 22 août 2018 Auteur Signaler Posté(e) le 22 août 2018 j'ai tester rien ne ce passe je test dans Dans la boucle principale d'un VD
jjacques68 Posté(e) le 22 août 2018 Signaler Posté(e) le 22 août 2018 (modifié) oui alors tu risques de ne pas le voir passer, 2 secondes est trop court, le Main d'un VD tourne toutes les 3 secondes environs. Il te faut une boule qui tourne toutes les secondes ! Faudrait passer par une scène et fixer le setTimeout de la boucle à 1s. Modifié le 22 août 2018 par jjacques68
971jmd Posté(e) le 22 août 2018 Auteur Signaler Posté(e) le 22 août 2018 (modifié) j'ai encore un ti prob toujours dans le Boucle principale d'un VD if string.format("%02d:%02d", currentDate.hour, currentDate.min) == newora1 then fibaro:setGlobal("SPPG1" , "P1") end end quand je test dans GEA ça fonctionne bien mai je reçois plusieurs fois alarme ok, alarme ok, alarme ok...... GEA.add({"Global", "SPPG1", "P1"}, -1, "alarme ok", { {"turnOn", id["LAMPE_CUISINE"]}, {"Global", "SPPG1", "0"}}) comment put on faire pour que fibaro:setGlobal("SPPG1" , "P1") s' exécute une seul fois à l'heure programmée Modifié le 22 août 2018 par 971jmd
971jmd Posté(e) le 23 août 2018 Auteur Signaler Posté(e) le 23 août 2018 j'ai changer de stratégie j'ai changer le format de l'heure 00:00:00 pk: je me suis dit que si je programme une heure comme exp: 10:00:01 que une foi que la seconde passé la Boucle ne pourra plus continuée a exécutée Avec le format 10:00 tant que le time n'arrive pas 10:01 impossible d’éteindre la lampe ID14 la boucle continu pendant 60ss.... j'ai chercher le format sur le net pour les seconde mai j'ai rein trouver, alors j'ai placée currentDate.sec mai ça ne fonctionne pas if (dayfound1) then fibaro:debug("ok"..jours) if string.format("%02d:%02d:%02d", currentDate.hour, currentDate.min, currentDate.sec) == newora1 then fibaro:debug("ok"..newora1) fibaro:call(14, "turnOff") ----fibaro:setGlobal("SPPG1" , "P1") end end
jjacques68 Posté(e) le 23 août 2018 Signaler Posté(e) le 23 août 2018 newora1 contient des secondes ?
971jmd Posté(e) le 23 août 2018 Auteur Signaler Posté(e) le 23 août 2018 salut oui newora1 contient des secondes
971jmd Posté(e) le 23 août 2018 Auteur Signaler Posté(e) le 23 août 2018 (modifié) local alarmClockDevice = fibaro:getSelfId() local newora1 = fibaro:get(alarmClockDevice,"ui.Prog01.value") fibaro:debug(">>>> "..newora1) if (os.date("%H:%M:%S", os.time()) == newora1) then ----fibaro:setGlobal("TEST", "1") fibaro:call(14, "turnOff") end local newora1 = fibaro:get(alarmClockDevice,"ui.Prog01.value") format d’Entrée 00:00:SS <----------le prob est là -----------> if (os.date("%H:%M:%S", os.time()) == newora1) then Modifié le 23 août 2018 par 971jmd
jjacques68 Posté(e) le 23 août 2018 Signaler Posté(e) le 23 août 2018 tu peux faire un debug de la variable newora1 ?
971jmd Posté(e) le 24 août 2018 Auteur Signaler Posté(e) le 24 août 2018 (modifié) j'ai abonné l'idée des secondes 00:00:00, même dans une scène normal ça fonctionne pas tres bien Fibaro n'aime pas trop et j'ai laissée tomber le Boucle principale de la VD j'ai développée le code dans une scène avec 00:00 mai j'ai toujours le même problème si je programme: fibaro:setGlobal("TEST" , "1") avec GEA qui récupère l'action . GEA.add({"Global", "TEST", "1"}, -1, "on", {{"turnOn", id["LAMPE_CUISINE"]}, {"Global", "TEST", "0"}}) je reçois toujours 2 fois la notification ON et si je programme l'allumage d'une lampe, il faut entendre +/- 30ss avant de l’éteindre manuellement si non dans ce temps la elle ce rallume. je n'ai pas d'action franche si ont pouvait, dans la code ci-dessous rajouter a l'heure programmée 2s exemple si je programme 08:55 il rajoute 2s soit 08:55:02 comme ça impossible d'aller plus loins je c'est pas ci-dessous le code de commande local alarmClockDevice = 439 -----loacl jour semain local joursFR = { dimanche="Sunday", Lundi = "Monday", Mardi="Tuesday", Mercredi="Wednesday", Jeudi="Thursday", Vendredi="Friday", Samedi="Saturday", Tout_les_jours="All", Weekend="Weekend", Jour_de_la_semaine="Weekday"} local Jour_VD_P1 = fibaro:getValue(alarmClockDevice, "ui.labjour01.value") local newora1 = fibaro:get(alarmClockDevice,"ui.Prog01.value") local dayfound1 = false local jours = (joursFR[Jour_VD_P1]) jours = string.gsub(jours, "All", "Weekday,Weekend") jours = string.gsub(jours, "Weekday", "Monday,Tuesday,Wednesday,Thursday,Friday") jours = string.gsub(jours, "Weekend", "Saturday,Sunday") if (string.find(jours, os.date("%A"))) then dayfound1 = true end function tempFunc() local currentDate = os.date("%H:%M") if (dayfound1) then fibaro:debug("JOURS_P1>> "..Jour_VD_P1) fibaro:debug("HEURE_P1>> "..newora1) if currentDate == newora1 then fibaro:setGlobal("TEST" , "1") end end setTimeout(tempFunc, 60*1000) end tempFunc() le debugue [DEBUG] 23:35:47: JOURS_P1>> Jeudi [DEBUG] 23:35:47: HEURE_P1>> 22:25 [DEBUG] 23:35:47: JOURS_P2>> Jeudi [DEBUG] 23:35:47: HEURE_P2>> 22:29 Modifié le 24 août 2018 par 971jmd
jjacques68 Posté(e) le 24 août 2018 Signaler Posté(e) le 24 août 2018 je ne connais pas GEA, jamais utilisé. Mais tu souhaites faire quoi exactement avec ce scénario ?
971jmd Posté(e) le 24 août 2018 Auteur Signaler Posté(e) le 24 août 2018 (modifié) je règle l'heure apartir de la VD et scène fait le reste la particularités de la VD est de gérée les jours :exp allume le lampe a 10h00 uniquement les lundi ou les jours de la semaine ou le Weekend ça fonctionne mai c'est au niveau de l’exécution de l'heure qui y un problème comme la scène tourne en boucle tout les 3s si je programme une heure comme par exemple 10H00 tant que 10h01 navire pas tout les 3s le code renvois un ON Modifié le 24 août 2018 par 971jmd
jjacques68 Posté(e) le 24 août 2018 Signaler Posté(e) le 24 août 2018 faudrait pas travailler à la seconde, mais à la minute. ce sera plus stable et plus facile.
Messages recommandés