971jmd Posté(e) le 19 août 2018 Signaler Partager Posté(e) le 19 août 2018 (modifié) Salut a tous, j'ai besoin de votre aide je un problème avec une variable local dans le simple code suivant qui allume une lampe a une heure précise, je cherche placé l’heure dans une variable local local heure = "15:02" ---ligne N° 6 ( string.format("%02d:%02d", currentDate.hour, currentDate.min) == "heure") ----ligne N°10 mai ça ne fonctionne pas merci pour votre aide local sourceTrigger = fibaro:getSourceTrigger(); function tempFunc() local currentDate = os.date("*t"); local startSource = fibaro:getSourceTrigger(); local heure = "15:02" -----ligne N°6 fibaro:debug("Heur >>>>"..heure) if ( ( string.format("%02d:%02d", currentDate.hour, currentDate.min) == "..heure..") ----ligne N°10 ) then fibaro:call(14, "turnOn"); end setTimeout(tempFunc, 60*1000) end if (sourceTrigger["type"] == "autostart") then tempFunc() else local currentDate = os.date("*t"); local startSource = fibaro:getSourceTrigger(); if ( sourceTrigger["type"] == "other" ) then fibaro:call(14, "turnOn"); end end Modifié le 19 août 2018 par 971jmd Lien vers le commentaire Partager sur d’autres sites More sharing options...
pepite Posté(e) le 19 août 2018 Signaler Partager Posté(e) le 19 août 2018 Bonsoir @971jmd, Regarde ca : print(os.date("%H:%M")) Lien vers le commentaire Partager sur d’autres sites More sharing options...
trainkill666 Posté(e) le 19 août 2018 Signaler Partager Posté(e) le 19 août 2018 (modifié) Bonsoir, Tu compares l'heure actuelle à un simple texte nommé ..heure.. et non à ta variable heure comme utilisé précédemment comme dans la ligne 7. Modifié le 19 août 2018 par trainkill666 Lien vers le commentaire Partager sur d’autres sites More sharing options...
Dragoniacs Posté(e) le 19 août 2018 Signaler Partager Posté(e) le 19 août 2018 Moi je le fait avec un simple :Local heure = os.dateIf heure == "19:00" then xxxxxxEnvoyé de mon SM-A520F en utilisant Tapatalk Lien vers le commentaire Partager sur d’autres sites More sharing options...
971jmd Posté(e) le 19 août 2018 Auteur Signaler Partager Posté(e) le 19 août 2018 (modifié) le but est au finale est de remplacée la variable local par une label dans une vd règle l'heur qui s'affiche dans un label5 et mon ma scène récupéré l'heur : local heure = (fibaro:getValue(389, "ui.Label5.value")) . . ( string.format("%02d:%02d", currentDate.hour, currentDate.min) == "..heure..") ----ligne N°8 le probleme est que la variable local HEURE récupère bien la valeur mai je n'arrive a l’attribuée a ma ligne 8 local sourceTrigger = fibaro:getSourceTrigger(); function tempFunc() local currentDate = os.date("*t"); local startSource = fibaro:getSourceTrigger(); local heure = (fibaro:getValue(389, "ui.Label5.value")) -----ligne N°6 if ( ( string.format("%02d:%02d", currentDate.hour, currentDate.min) == "..heure..") ----ligne N°8 ) then fibaro:call(14, "turnOn"); end setTimeout(tempFunc, 60*1000) . . . etc Modifié le 19 août 2018 par 971jmd Lien vers le commentaire Partager sur d’autres sites More sharing options...
jjacques68 Posté(e) le 20 août 2018 Signaler Partager Posté(e) le 20 août 2018 (modifié) En faisant le mix de ce que les autres ont dis, cela donne ça : local sourceTrigger = fibaro:getSourceTrigger() function tempFunc() local currentDate = os.date("%H:%M") local startSource = fibaro:getSourceTrigger() local heure = fibaro:getValue(389, "ui.Label5.value") if currentDate == heure then fibaro:call(14, "turnOn") end setTimeout(tempFunc, 60*1000) end . . etc En vérifiant que le format de l'heure dans le Label5 de ton VD 389 est bien sous la forme "00:00" Modifié le 20 août 2018 par jjacques68 Lien vers le commentaire Partager sur d’autres sites More sharing options...
Kana-chan Posté(e) le 20 août 2018 Signaler Partager Posté(e) le 20 août 2018 (modifié) Il y a 8 heures, 971jmd a dit : if ( ( string.format("%02d:%02d", currentDate.hour, currentDate.min) == "..heure..") ----ligne N°8 ) Bonjour, ceci est une chaine de caractère dont la valeur est ..heure.. et non la variable heure ! Il faut écrire ""..heure.."" si vous voulez transformer la variable heure en chaine de caractère pour comparer ... (deux fois les double-quotes avant et après). Voilà ... Modifié le 20 août 2018 par Kana-chan 1 Lien vers le commentaire Partager sur d’autres sites More sharing options...
971jmd Posté(e) le 20 août 2018 Auteur Signaler Partager Posté(e) le 20 août 2018 salut a tous et merci pour votre aide bon ça ne fonctionne toujours pas pour faire simple j'ai tester ça local heure = "08:17" if ( ( string.format("%02d:%02d", currentDate.hour, currentDate.min) == ""..heure.."") ) then . . . . mai rien Lien vers le commentaire Partager sur d’autres sites More sharing options...
jjacques68 Posté(e) le 20 août 2018 Signaler Partager Posté(e) le 20 août 2018 nan mais remplace la ligne ( string.format("%02d:%02d", currentDate.hour, currentDate.min) == ""..heure.."") par currentDate == heure Lien vers le commentaire Partager sur d’autres sites More sharing options...
jjacques68 Posté(e) le 20 août 2018 Signaler Partager Posté(e) le 20 août 2018 et pour currentDate : local currentDate = os.date("%H:%M") Je t'ai mis l'exemple complet plus haut... Lien vers le commentaire Partager sur d’autres sites More sharing options...
971jmd Posté(e) le 20 août 2018 Auteur Signaler Partager Posté(e) le 20 août 2018 oui j'ai tester mai rein, j'ai pas de message err dans le debug mai pas d'action Lien vers le commentaire Partager sur d’autres sites More sharing options...
jjacques68 Posté(e) le 20 août 2018 Signaler Partager Posté(e) le 20 août 2018 oui mais alors là il faut que tu postes le code complet... Lien vers le commentaire Partager sur d’autres sites More sharing options...
971jmd Posté(e) le 20 août 2018 Auteur Signaler Partager Posté(e) le 20 août 2018 (modifié) --[[ %% properties %% events 423 ui.lblTime.value %% globals --]] local sourceTrigger = fibaro:getSourceTrigger() function tempFunc() local currentDate = os.date("%H:%M") local startSource = fibaro:getSourceTrigger() local heure = fibaro:getValue(423, "ui.lblTime.value") if currentDate == heure then fibaro:call(14, "turnOn") end setTimeout(tempFunc, 60*1000) end Modifié le 20 août 2018 par 971jmd Lien vers le commentaire Partager sur d’autres sites More sharing options...
Steven Posté(e) le 20 août 2018 Signaler Partager Posté(e) le 20 août 2018 ajoute tempFunc() tout à la fin de ton code en dessous du "end" 1 Lien vers le commentaire Partager sur d’autres sites More sharing options...
jjacques68 Posté(e) le 20 août 2018 Signaler Partager Posté(e) le 20 août 2018 Le startSource sert à quoi dans la fonction ? je pense que tu peux l'enlever Cette fonction doit fonctionner. Est-elle bien appelée dans le main ? Le label a-t-il la bonne valeur ? Lien vers le commentaire Partager sur d’autres sites More sharing options...
jjacques68 Posté(e) le 20 août 2018 Signaler Partager Posté(e) le 20 août 2018 ha ben voilà ça rejoint ce que dis @Steven Lien vers le commentaire Partager sur d’autres sites More sharing options...
971jmd Posté(e) le 20 août 2018 Auteur Signaler Partager Posté(e) le 20 août 2018 voici mon lblTime Lien vers le commentaire Partager sur d’autres sites More sharing options...
jjacques68 Posté(e) le 20 août 2018 Signaler Partager Posté(e) le 20 août 2018 ok alors ajoute un print(heure) juste en dessous de local heure = ... dans la fonction. histoire d'être sûr... Ce serait bien d'avoir le code complet de la scène, pas que la fonction... Lien vers le commentaire Partager sur d’autres sites More sharing options...
971jmd Posté(e) le 20 août 2018 Auteur Signaler Partager Posté(e) le 20 août 2018 il reçois bien la valeur [DEBUG] 09:56:53: 08:50 Lien vers le commentaire Partager sur d’autres sites More sharing options...
jjacques68 Posté(e) le 20 août 2018 Signaler Partager Posté(e) le 20 août 2018 donc dans ta fonction, ton device 14 s'allumera à 08:50. Lien vers le commentaire Partager sur d’autres sites More sharing options...
971jmd Posté(e) le 20 août 2018 Auteur Signaler Partager Posté(e) le 20 août 2018 normalement, mai rien Lien vers le commentaire Partager sur d’autres sites More sharing options...
jjacques68 Posté(e) le 20 août 2018 Signaler Partager Posté(e) le 20 août 2018 tu as pas mis ce que @Steven a dit : --[[ %% properties %% events 423 ui.lblTime.value %% globals --]] local sourceTrigger = fibaro:getSourceTrigger() function tempFunc() local currentDate = os.date("%H:%M") local startSource = fibaro:getSourceTrigger() local heure = fibaro:getValue(423, "ui.lblTime.value") if currentDate == heure then fibaro:call(14, "turnOn") end setTimeout(tempFunc, 60*1000) end tempFunc() il faut appeler ta fonction avec tempFunc() après la fonction. Lien vers le commentaire Partager sur d’autres sites More sharing options...
971jmd Posté(e) le 20 août 2018 Auteur Signaler Partager Posté(e) le 20 août 2018 oui le tempFunc() Lien vers le commentaire Partager sur d’autres sites More sharing options...
971jmd Posté(e) le 20 août 2018 Auteur Signaler Partager Posté(e) le 20 août 2018 --[[ %% properties %% events 423 ui.lblTime.value %% globals --]] -----local sourceTrigger = fibaro:getSourceTrigger() function tempFunc() local currentDate = os.date("%H:%M") local startSource = fibaro:getSourceTrigger() local heure = fibaro:getValue(423, "ui.lblTime.value") print(heure) if currentDate == heure then fibaro:call(14, "turnOff") end setTimeout(tempFunc, 60*1000) end tempFunc() Lien vers le commentaire Partager sur d’autres sites More sharing options...
jjacques68 Posté(e) le 20 août 2018 Signaler Partager Posté(e) le 20 août 2018 (modifié) en gros en enlevant ce qui est pas util... --[[ %% properties %% events 423 ui.lblTime.value %% globals --]] function tempFunc() local currentDate = os.date("%H:%M") local heure = fibaro:getValue(423, "ui.lblTime.value") print(heure) if currentDate == heure then fibaro:call(14, "turnOn") end setTimeout(tempFunc, 60*1000) end tempFunc() Modifié le 20 août 2018 par jjacques68 Lien vers le commentaire Partager sur d’autres sites More sharing options...
Messages recommandés