Aller au contenu

Messages recommandés

Posté(e)

Bizare,

Juste pour tester, essaye de reprendre mon code d'origine. Moins beau et moins optimisé mais au moins celui le je sais qu'il fonctionne !

Dis moi si ça fonctionne.

Posté(e)

Ta variable globale Jour_Nuit, elle existe bien ? Et si oui, elle est bien sur Jour ?

Est ce que tu pourrais mettre des log eventuellement pour qu on voit ce qui se passe !

Posté(e)

Re,

 

Alors voici le code que tu devrais avoir : 

--[[
%% properties
10 value
14 value
28 value
30 value
%% globals
Jour_Nuit
--]]
 
local startSource = fibaro:getSourceTrigger();


fibaro:debug("Valeur variable Jour_Nuit :" .. fibaro:getGlobal("Jour_Nuit"))
if (fibaro:getGlobal("Jour_Nuit") == "Jour") 
  then
 
 
	if 	(fibaro:getValue(10, "value") > "0") or
 	 	(fibaro:getValue(14, "value") > "0") or
                (fibaro:getValue(28, "value") > "0") or
 	 	(fibaro:getValue(30, "value") > "0") then
 
		
  		fibaro:sleep(20*1000)
 		fibaro:call(10, "turnOff")
 		fibaro:call(14, "turnOff")
 		fibaro:call(28, "turnOff")
                fibaro:call(28, "turnOff")
	end
 
end  

Copie colle ça et dis mois deja si ça marche !

Posté(e)

Salut,

 

En fait y'en a pas :)

 

J' ai juste rajouter un debug :)

 

Moi y' a na pas comprendre non plus :)

 

Essaye de l' optimiser avec le code de Gregory qui est nettement plus propre que le mien et tiens nous au courant !

Posté(e)

Ah ben j'ai trouvé : ne supporte pas dans l'entête de la scène LUA de mettre des commentaires. Ainsi chez moi, c'était l'entête qui faisait que la scène ne démarrait pas automatiquement.

 

--[[
%% properties
10 value
14 value
28 value
30 value
%% globals 
Jour_Nuit
--]]
Posté(e)

Ah ouai ... pas mal, j' avais pas fait gaffe !

 

Effectivement, pas de commentaires dans l' entête ! 

 

Bon ba voila, comme ça, ça marche et on sait pourquoi ça ne marchait pas :)

Posté(e)

@Razowski: en plus ton dernier debug n'est pas bon tu as écrit

fibaro:debug(i);

 Là  tu ne vas avoir qu'un chiffre entre 1 et 4 ;)

 

En tout cas moi j'aime pas trop votre code car si vous allumez une seule lampe, Vous les faites tous travaillé pour rien.

Bon c'est de l'optimisation mais c'est mon avis :D

Posté(e)

@Shad : pour le debug, c'était pour faire un check de ma boucle donc volontaire. Pour le code, clair, 100% d'accord, reste àaméliorer ce point car si dans chaque scène on tape tous les devices ben ça va pas le faire sur le plus long terme...

Posté(e)

Mais y'a pas de problème Shad :)

 

Je ne l' ai pas posté pour que tout le monde le venere et l' adopte sans concession :) 

 

Le but était simplement d' alimenter le forum en donnant des idées. 

 

De plus Gregory l' a deja amélioré, il ne reste plus qu' a utiliser son optimisation et tout roule ! 

 

Mais la c'est vrai qu'une seule lampe allumé balance un turnOff a tous les modules. Bon après c'est pas si ils étaient alimentés a pile :P

Posté(e)

@ Romain80: non ce n'est pas une question de consommation, mais plus matériel, autant éviter de fatiguer les switchs à  l'intérieur pour rien ;).

 

Pour optimiser c'est assez rapide, il y a deux solution une plus facile mais légèrement moins optimiser que l'autre.

-[[
%% properties
10 value
14 value
28 value
30 value
%% globals
Jour_Nuit
--]]
 
local startSource = fibaro:getSourceTrigger();
lights = {10, 14, 28, 30}; -- id des lampes
local lightOn = 0;
 
if (fibaro:getGlobal("Jour_Nuit") == "Jour") then
    for i = 1, #lights do
        if (tonumber(fibaro:getValue(lights[i], "value")) > 0) then
            fibaro:sleep(2*1000)
            fibaro:call(lights[i], "turnOff");
        end
    end
end

 

Tout simplement.

 

Si maintenant vous voulez vraiment apprendre quelque chose qui pourrait vraiment vous resservir dans le futur et réduire le temps pour éteindre les lumière, regardez pour créer un array dans votre première boucle avec les id des modules.

Ensuite dans la deuxième boucle, vous éteignez les lumière par rapport a cet array.

Posté(e)

Grande question que je me pose sur une scène de ce type là: est-il avantageux de la faire en LUA par rapport àla saisir en mode blocs? Hormis le fait qu'on apprend àscripter du LUA?

razowski

Posté(e)

perso je te dirais que oui pour deux raisons:

1) le backend du bloc est du lua, je te dirais donc qu'àmon avis tu allèges ton code en le faisant directement en lua

2) Je trouve le lua beaucoup plus simple àlire que du bloc et plus facile àajouter des fonctions dans le futur :D

Posté(e)

Bonjour,

 

Petite question concernant la ligne SendPush.

 

Je vois que vous avez ceci :

fibaro:call(4, "sendPush", "Lumière Ext Allumée. Procedure d extinction.");

Alors que j'ai l'habitude de voir plutôt ceci dans mes scripts (ID de la notif et ID de mon mobile) :

fibaro:call(83, "sendDefinedPushNotification", "18");

A partir de quoi choisissez-vous l'id 4 ?

J'imagine que SendPush envois directement le message "Lumière Ext Allumée. Procedure d extinction."

Et l'Id du mobile c'est 4 ?

 

Merci

Posté(e)

Salut Domodial,

 

Oui c'est tout a fait ça.

 

4 est l' id de mon smartphone. la fonction sendPush permet d'envoyer le message que l'on souhaite sans être obligé de le définir auparavant dans le panneau des messages.

 

++

Posté(e)

C'est vraiment bien, entre temps j'ai essayé et effectivement je recois la notif.

Je ne connaissais pas et c'est super Génial !

 

Comme quoi les débats/tutos servent vraiment !!

Posté(e)

Il semblerait que l'on ait la même chose pour les mails avec : fibaro:call(123, 'sendEmail', subject, message);

local subject = 'Test Subject';
local message = 'Test message';

fibaro:call(123, 'sendEmail', subject, message);

Posté(e)

@Domodial : On ne peut plus d'accord. Certaine fois sur les forums, tu n'ose meme pas poser de question car ça semble "pas au niveau" ou trop "stupide". Le niveau parfois élitiste de certains membres empêche justement les gens qui en ont besoin de s'exprimer et de questionner librement ... mais pour ma part je suis carrément d' un avis contraire. Les Forums sont en mon sens, une superbe source d'informations. La moindre petite chose peut avoir un intérêt ! Et on en a la preuve :) 

 

@Jossalf : Oui tout a fait, tu peux également gérer tes mails comme cela.

  • Upvote 2
Posté(e)

C'est quand même beaucoup plus souple que de devoir préparer des messages fixes pour les rappeler par un "SendDefinedPush...".

 

En plus ça permet d'avoir des messages dynamiques :

Grace à  un Fibaro: getSourceTrigger () on récupère le nom du déclencheur de la scène dans une variable. On l'insère dans un message que l'on envoie en push ou mail.

  • 2 semaines après...
Posté(e)

@ Romain80: non ce n'est pas une question de consommation, mais plus matériel, autant éviter de fatiguer les switchs à  l'intérieur pour rien ;).

 

Pour optimiser c'est assez rapide, il y a deux solution une plus facile mais légèrement moins optimiser que l'autre.

--[[
%% properties
10 value
14 value
28 value
30 value
%% globals
Jour_Nuit
--]]
 
local startSource = fibaro:getSourceTrigger();
lights = {10, 14, 28, 30}; -- id des lampes
local lightOn = 0;
 
if (fibaro:getGlobal("Jour_Nuit") == "Jour") then
    for i = 1, #lights do
        if (tonumber(fibaro:getValue(lights[i], "value")) > 0) then
            fibaro:sleep(2*1000)
            fibaro:call(lights[i], "turnOff");
        end
    end
end

Tout simplement.

 

Si maintenant vous voulez vraiment apprendre quelque chose qui pourrait vraiment vous resservir dans le futur et réduire le temps pour éteindre les lumière, regardez pour créer un array dans votre première boucle avec les id des modules.

Ensuite dans la deuxième boucle, vous éteignez les lumière par rapport a cet array.

Il manqué un tiré en début de première ligne  ;)

Celui là , je prends  :60: , je vais remplacer mes bloc  :P

Merci Shad, je crois bien que je dois avoir au moins 60% de code made in Shad dans ma box  :lol:

Posté(e)

humm mon message n'est plus là  alors que je l'avais posté...

 

Bonjour,

 

Le script fonctionne bien, cependant j'ai un soucis.

Avec yahoo, quand je décide malgré tout d'allumer une lumière (vers 18h30 - 19h), la lumière s'éteint.

Ok il fait jour dehors, mais lorsqu'on a besoin de lumière dans une partie sombre de la maison, impossible d'en avoir, la lumière s'éteint.

 

Avez-vous le probleme ? Comment compenser en plus ou moins 1h pour palier yahoo ?

 

Merci 

Posté(e)

c'est vrai que je n'ai pas ce problème avec mes lumières extérieur, elles sont exposés donc, si il fait jour, même un peux, les lumières ne servent àrien, mais justement, je n'ai pas associer l'ID de la lumière de mon entrée car c'est exactement le problème que j'ai.

donc, je pensé utiliser un capteur de luminosité, ça devrait le faire?

×
×
  • Créer...