Jérôme14100 Posté(e) le 26 août 2017 Signaler Posté(e) le 26 août 2017 (modifié) Bonjour je cherche a créer une scène en Lua pour allumer et éteindre a une certaine heure de la journée ou de la nuit mon wall plug sur lequel est branché un chargeur. J'ai bien réussi a créer une scène en utilisant les blocs graphiques, mais du coup j'ai dû faire 2 scènes pour le wall-plug, un pour allumer a une certaine heure et l'autre pour éteindre a une certaine heure. Et c'est pour cela que je cherche a créer une seul scène en LUA qui remplacera les 2 scènes en blocs graphiques. Etant novice en la matière et j'aurais besoin de votre aide, et tous ce que j'ai pu trouver pour le moment c'est d'allumer et d'éteindre le wall-plug en ecrivant Fibaro:call(id, "turnOn") et fibaro:call(id, "turnOff") par contre les timers je ne trouve pas...En tous cas merci d'avance Modifié le 26 août 2017 par Jérôme14100
Berale64 Posté(e) le 26 août 2017 Signaler Posté(e) le 26 août 2017 Si tu vas dans la section des tutos pour hc2 et hcl, tu trouveras des exemples de scène en mode block qui répondent à ton problème. Une seule scène mode block suffit pour allumer et eteindre. Tu la convertis ensuite en lua et en analysant le résultat tu apprendras beaucoup. Je pense que ce te sera plus utile que de te donner la solution.
Jérôme14100 Posté(e) le 26 août 2017 Auteur Signaler Posté(e) le 26 août 2017 (modifié) Ok merci, chose que je ne savais pas est que je viens d'apprendre, c'est de convertir une scènes en bloc graphique en LUA. Il me reste plus qu'a chercher la suite de la demande. Modifié le 26 août 2017 par Jérôme14100
Jérôme14100 Posté(e) le 26 août 2017 Auteur Signaler Posté(e) le 26 août 2017 (modifié) Après la lecture de beaucoup de tuto de ce forum, j'ai enfin trouvé. j'ai créer une seul scène pour mon wall-plug au lieu de deux scènes a l'origine en utilisant les blocs graphiques. Encore merci berale24 de m'avoir mis sur la voie. Donc voici ce que donne ma scène converti en LUA : --[[%% autostart%% properties%% weather%% events%% globals--]]local sourceTrigger = fibaro:getSourceTrigger();function tempFunc()local currentDate = os.date("*t");local startSource = fibaro:getSourceTrigger();if ( ( ((currentDate.wday == 1 or currentDate.wday == 2 or currentDate.wday == 4 or currentDate.wday == 6) and string.format("%02d", currentDate.hour) .. ":" .. string.format("%02d", currentDate.min) == "03:00") ) )then fibaro:call(41, "turnOn"); setTimeout(function() fibaro:call(41, "turnOff"); end, 7200000)endsetTimeout(tempFunc, 60*1000)endif (sourceTrigger["type"] == "autostart") thentempFunc()elselocal currentDate = os.date("*t");local startSource = fibaro:getSourceTrigger();if ( startSource["type"] == "other" )then fibaro:call(41, "turnOn"); setTimeout(function() fibaro:call(41, "turnOff"); end, 7200000)endend Modifié le 26 août 2017 par Jérôme14100
pepite Posté(e) le 27 août 2017 Signaler Posté(e) le 27 août 2017 Sinon, tu peux aussi regarder GEA. Le code converti des scenes bloc n'est pas toujours très propre ;-)
Jérôme14100 Posté(e) le 28 août 2017 Auteur Signaler Posté(e) le 28 août 2017 Bonjour pepite, peu tu me dire en quelques mots ce qu'apporte le GEA par rapport a une scène en bloc graphique ou en LUA, avant de lire tous ce qui peut etre lu sur le forum sur le GEA
pepite Posté(e) le 28 août 2017 Signaler Posté(e) le 28 août 2017 (modifié) GEA te permet de tout centraliser dans une seule scène, en quelques lignes de code simplifié tu peux tout faire (presque tout) sans connaitre le LUA. J'ai commence avec GEA, je n'ai jamais trop aimé les scenes bloc, GEA me parlait plus, mais c'est propre à chacun. Modifié le 28 août 2017 par pepite
Indyana Posté(e) le 9 septembre 2017 Signaler Posté(e) le 9 septembre 2017 (modifié) Essayes ça : --[[ %% autostart --]] -- Définit les jours pour lesquels tu veux la charge du Lundi au Dimanche : 1=charge, 0=Pas de charge local jours={1,1,0,1,0,1,0}; -- Boucle infinie while true do -- Test si le jour correspond if(jours[tonumber(os.date('%u'))]==1) then --Test l'heure de début if(tonumber(os.date('%H%M'))==0300) then fibaro:call(41, "turnOn"); fibaro:debug('TurnOn'); end --Test l'heure de fin if(tonumber(os.date('%H%M'))==0500) then fibaro:call(41, "turnOff"); fibaro:debug('TurnOff'); end end -- Attend une minute avant de retester fibaro:sleep(60*1000); end Modifié le 9 septembre 2017 par Indyana
Messages recommandés