Aller au contenu
Rem's

Soft Remote (Doublon Scène)

Recommended Posts

Bonjour à  tous,

 

Suite à  mes problèmes de notification "out of memories, running instance", je me suis aperçu que la scène de cette télécommande était en doublon, lors de chaque appui.

--[[
%% properties
378 sceneActivation
%% globals
--]]
--fibaro:debug("start");

local val = tonumber(fibaro:getValue(378, "sceneActivation"))
local valeurDimmer = tonumber(fibaro:getValue(380, "value"))
fibaro:debug(val);
fibaro:debug(valeurDimmer)

 if fibaro:countScenes() > 1 then -- si la scène est lancée plus d'une fois alors
fibaro:abort() -- arrêt de cette lecture du script
end -- fin de la condition

-- BOUTON 1 -- 
if (val == 10) -- APPUI SIMPLE
   then
  fibaro:call(70, "turnOn")
  fibaro:sleep(45*60*1000)
  fibaro:call(70, "turnOff")
print("appui simple B1")
end

if (val == 13) -- DOUBLE CLIC
   then
  fibaro:call(50, "turnOn")
  fibaro:sleep(45*60*1000)
  fibaro:call(50, "turnOff")
print("double clic B1")
end

-- BOUTON 3 -- 
if (val == 30) -- APPUI SIMPLE
   then
  fibaro:call(70, "turnOff")
  print("appui simple B3")
end 

if (val == 33) -- APPUI DOUBLE
   then
  fibaro:call(70, "turnOff")
  fibaro:call(50, "turnOff")
  print("appui simple B3")
end

if (val == 20) then
-- ici tu mets le code pour augmenter
  valeurDimmer = math.min(100, valeurDimmer +10)
-- lecture de la valeur actuelle
  fibaro:debug("Simple clic bouton +");
  fibaro:debug(valeurDimmer)
-- envoi de la valeur au dimmer
  fibaro:call(380, "setValue", valeurDimmer)
  fibaro:sleep(30*60*1000)
  fibaro:call(380, "turnOff")
 
elseif (val == 40) then
  -- ici tu mets le code pour diminuer
  valeurDimmer = math.max(0, valeurDimmer -10)
  -- lecture de la valeur actuelle
  fibaro:debug("Simple clic bouton -");
  fibaro:debug(valeurDimmer)
  -- pour éviter de dépasser 0%
  -- envoi de la valeur au dimmer
   fibaro:call(380, "setValue", valeurDimmer)
  fibaro:sleep(30*60*1000)
  fibaro:call(380, "turnOff")

elseif (val == 23) then
   fibaro:call(380, "setValue", "100")
   fibaro:debug("Double clic bouton +");
  -- ici tu peux passer direct à  100%

elseif (val == 43) then
  fibaro:call(380, "turnOff")
  fibaro:call(9, "turnOff")
  fibaro:debug("Double clic bouton -");
  -- ici tu éteinds tout
end

ma fenêtre débug est la suivante, lors d'un appui sur le bouton , puis le 3

 

D'avance merci pour votre aide, d'autant que je pense que c'est le cas avec toute les télécommande de la maison (je continue mes investigations).

 

PS : Le support de FIBARO est vraiment formidable, il m'ont envoyé une notice pour faire des scènes en block ...!!!!

Partager ce message


Lien à poster
Partager sur d’autres sites

Tu as du oublier la copie du debug... sinon tu utilises des sleep grande taille ?

 

Je n'arrive pas à  comprendre ce que tu veux faire entre tes commandes avec des mises en pause aussi longues ?

Partager ce message


Lien à poster
Partager sur d’autres sites

C'est la chambre de ma fille, les lampes s'éteignent plus tard

Partager ce message


Lien à poster
Partager sur d’autres sites

Toujours pas de copie du debug ?

Sinon, au lieu d'utiliser ce type de code

fibaro:call(70, "turnOn")
fibaro:sleep(45*60*1000)
fibaro:call(70, "turnOff")

Tu peux essayer ceci

fibaro:call(70, "turnOn");
setTimeout(function()
fibaro:call(70, "turnOff");
end, 45*60*1000)
 

 

 

Partager ce message


Lien à poster
Partager sur d’autres sites

As-tu également remarqué que pour la gestion de tes boutons, tu débutes une série de "if-then-end", puis pour le bouton 2 (j'imagine car il n'y a plus de commentaire) tu pars sur un "if" suivi de "elseif"

 

Pour la gestion des boutons, je te conseille de débuter le 1er par un "if - then" puis les suivants par "elseif - then" en terminant l'ensemble de ton code par end

Partager ce message


Lien à poster
Partager sur d’autres sites

J'avais joint le debug (mais j'ai du buggé)

 

C'est ouf car, il y a 1 ou 2 mise à  jour précédentes, jusqu'alors, je n'ai jamais eu ce type de notif (je me demandais même à  quoi servait cet onglet ...)

Partager ce message


Lien à poster
Partager sur d’autres sites

J'ai beaucoup de mal à  voir sur ta copie trop petite... mais ce que tu appelles fenêtre debug est en fait le centre de notification 

 

Concernant la scène de ta télécommande, je ne peux que renouveler mes conseils : supprimer les "sleep" aussi importants en les remplaçant par le code proposé

Partager ce message


Lien à poster
Partager sur d’autres sites

Merci pour tes réponses i-magin.

Je vais essayer de nettoyer ma scene et voir ce que cela donne.

Je ferai pareil sur les autres ensuite.

Désolé pour cette fenêtre de debug tardIve, je ne suis pas très doué pour joindre un fichier sur le fofo (pb de taille du fichier, alors qu'il est casi illisible)

Je te tiens au jus ....

Partager ce message


Lien à poster
Partager sur d’autres sites

×