Aller au contenu

Notifications Interactive pour lancer une scéne


mprinfo

Recommended Posts

Si tu laisses tourner une scène 5400s c'est normal qu'il y risque d'avoir un problème d'instances. Surtout si tu ne gères pas bien les déclencheurs. C'est pour ce genre de choses que je n'utilise jamais le mode blocs mais toujours du code lua

Envoyé de mon SM-G901F en utilisant Tapatalk



Lien vers le commentaire
Partager sur d’autres sites

Ce que je voudrais, c'est au bout de 90 min (soit 5400s), si les spots salle à manger allumés, alors envoyer push pour interactive scène.

Cependant j'ai tout le temps des alertes pour me dire que trop d'instance pour cette scène, que dois je faire, sachant que je suis preneur de LUA également :)

 

--[[
%% properties
184 value
%% weather
%% events
%% globals
--]]

local startSource = fibaro:getSourceTrigger();
if(startSource["type"] == "other") then
	api.post('/mobile/push', {["mobileDevices"]={268}, ["message"]='Éteindre les spots de la salle à manger allumés depuis 1h30?', ["title"]='Question:', ["category"]='YES_NO', ["data"]={["sceneId"]=330}});
else
if (( tonumber(fibaro:getValue(184, "value")) > 0 )) then
setTimeout(function()
local delayedCheck0 = false;
local tempDeviceState0, deviceLastModification0 = fibaro:get(184, "value");
if (( tonumber(fibaro:getValue(184, "value")) > 0 ) and (os.time() - deviceLastModification0) >= 5400) then
	delayedCheck0 = true;
end

local startSource = fibaro:getSourceTrigger();
if (
 ( delayedCheck0 == true )
or
startSource["type"] == "other"
)
then
	api.post('/mobile/push', {["mobileDevices"]={268}, ["message"]='Éteindre les spots de la salle à manger allumés depuis 1h30?', ["title"]='Question:', ["category"]='YES_NO', ["data"]={["sceneId"]=330}});
end
end, 5400000)
end
end

 

Lien vers le commentaire
Partager sur d’autres sites

A tester si tu veux bien 

 

--[[
%% properties
184 value
%% weather
%% events
%% globals
--]]

local delai = 54000
local id_spots = 184
local smartphones = {268}
local scenes = {["sceneId"]=330}

local id_de_cette_scene = XXX   -- !!!! ATTENTION ICI !!!!

local allume = fibaro:getValue(id_spots, "value") > 0

if (not allume) then
  -- si le spot est éteint, on arrête TOUTES les scènes précédément démarrées
  fibaro:killScene(id_de_cette_scene)
  fibaro:abort()
end

setTimeout(function()
  api.post('/mobile/push', {
      ["mobileDevices"]=smartphones, 
      ["message"]='Éteindre les spots de la salle à manger allumés depuis 1h30?', 
      ["title"]='Question:', 
      ["category"]='YES_NO', 
      ["data"]=scenes
    }
  ) 
  end, delai
)

 

Lien vers le commentaire
Partager sur d’autres sites

Salut et merci :)

 

cependant ça ne fonctionne pas, dès que j'allume les spots, ca fait trigered, puis 0 instances, et voila ce qu'il y a écrit dans le debug:

attempt to compara number with string

c'est écrit pour la ligne 16 ci-dessous: 

local allume = fibaro:getValue(id_spots, "value") > 0
Lien vers le commentaire
Partager sur d’autres sites

Alors ... Oui et Non :D

 

Non, car "power" = "consommation électrique" donc si tu mets power dans l'entête, le script va se déclenché à chaque variation électrique.

 

Par contre, si tu mets "value" ... bien cela ne fonctionne pas quand tu lances un "programme" mais uniquement quand tu allumes ton RGB .. pas cooollll.

 

Je te dirais donc d'utiliser le "power" bien que cela ne soit pas optimal, mais bon, on fait avec ce qu'on nous donne.

 

Oublie pas de changer "value" par "power" dans l'entête ET à la ligne "local allume = ..."

 

 

  • Upvote 1
Lien vers le commentaire
Partager sur d’autres sites

Pas mal du tout ce nouveau Push :D

 

D'ailleurs je me demande encore ce qu'il y a de nouveau depuis que je suis passé à 4.110 (je ne vois rien de changé lol)

non non, il ne faut pas que je touche ! 

 

>>> je sort

  • Upvote 1
Lien vers le commentaire
Partager sur d’autres sites

pour le ruban, ca ne fonctionne pas, j'ai une erreur "attenpt to call killScene (a nil value)

--[[
%% properties
373 power
%% weather
%% events
%% globals
--]]

local delai = 20000
local id_ruban = 373
local smartphones = {268}
local scenes = {["sceneId"]= 336}

local id_de_cette_scene = 341   -- !!!! ATTENTION ICI !!!!

local allume = tonumber(fibaro:getValue(id_ruban, "power")) > 0

if (not allume) then
  -- si le spot est éteint, on arrête TOUTES les scènes précédément démarrées
  fibaro:killScene(id_de_cette_scene)
  fibaro:abort()
end

setTimeout(function()
  api.post('/mobile/push', {
      ["mobileDevices"]=smartphones, 
      ["message"]='Éteindre ruban led de la salle cinéma?', 
      ["title"]='Question:', 
      ["category"]='YES_NO', 
      ["data"]=scenes
    }
  ) 
  end, delai
)

 

Lien vers le commentaire
Partager sur d’autres sites

alors, cette fois ci, tjs le même message sauf que j'ai le message quand je réponds à "yes" à la scène interactive sachant que cette scène me lance 2 instances directement, donc j'ai 2 fois la question pour éteindre.

Lien vers le commentaire
Partager sur d’autres sites


pour le ruban et les spots de la 1ere scene, ca ne fonctionne pas, j'ai une erreur "attenpt to call killScene (a nil value).

je n'avais pas remarqué de suite.

 

Sacahnt que mon probleme de plusieurs instances persiste pour les 2 scenes, ruban et spots :(

 
Lien vers le commentaire
Partager sur d’autres sites

×
×
  • Créer...