Aller au contenu
Pitou

Scenes Ne Se Declenchent Pas De Temps En Temp

Recommended Posts

Bonjour,

 

Je suis nouveau, et je ne comprends pas les scènes. Des fois, ça marchait, que tous les volets s'ouvrent à  7h30 et maintenant cela ne fonctionne plus. J'ai changé de blocs à  LUA, et cela ne fonctionne toujours pas.

  1. Comment marchent les Max. running instances?
  2. Pourquoi, après que tous les volets sont levés, la scène tourne, visible toujours dans le dashboard?
  3. Est-ce que le fait qu'elle tourne, fait qu'elle ne se déclenche pas le lendemain?

Mes premières questions, merci de votre aide!

 

Pitou de Brême

 

  • Upvote 1

Partager ce message


Lien à poster
Partager sur d’autres sites

Salut,

Donnes nous ton code pour voir.

Ce genre de script devrait se terminer et ne plus tourner une fois les volets ouvert.

Le max running instance est le nombre d'instance qui peuvent fonctionner en même temps.

Exemple si ton déclencheur est un capteur de porte, que que max est a 2, bien lors des deux premières ouverture de porte, ton script sera lancé pui plus après (jusqu'àce qu'un se termine)...

Sinon, regarde GEA (cherche dans ce forum) qui peut te simplifier la vie.

Partager ce message


Lien à poster
Partager sur d’autres sites

Salut,

 

merci Bobobull. GEA semble intéressant, mais plus compliqué que comprendre une scène de base ;-)

 

--[[
%% autostart
%% properties
%% 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 == 3 or currentDate.wday == 4 or currentDate.wday == 5 or currentDate.wday == 6 or currentDate.wday == 7) and string.format("%02d", currentDate.hour) .. ":" .. string.format("%02d", currentDate.min) == "07:30") )
)
then
	fibaro:call(56, "open");
	fibaro:call(54, "open");
	fibaro:call(22, "open");
	fibaro:call(52, "open");
	fibaro:call(77, "open");
	fibaro:call(66, "open");
	fibaro:call(80, "open");
	fibaro:call(64, "open");
	fibaro:call(58, "open");
	fibaro:call(62, "open");
	fibaro:call(68, "open");
	fibaro:call(70, "open");
	fibaro:call(72, "open");
	fibaro:call(76, "open");
	fibaro:call(74, "open");
	fibaro:call(99, "turnOn");
end

setTimeout(tempFunc, 60*1000)
end
if (sourceTrigger["type"] == "autostart") then
tempFunc()
else

local currentDate = os.date("*t");
local startSource = fibaro:getSourceTrigger();
if (
startSource["type"] == "other"
)
then
	fibaro:call(56, "open");
	fibaro:call(54, "open");
	fibaro:call(22, "open");
	fibaro:call(52, "open");
	fibaro:call(77, "open");
	fibaro:call(66, "open");
	fibaro:call(80, "open");
	fibaro:call(64, "open");
	fibaro:call(58, "open");
	fibaro:call(62, "open");
	fibaro:call(68, "open");
	fibaro:call(70, "open");
	fibaro:call(72, "open");
	fibaro:call(76, "open");
	fibaro:call(74, "open");
	fibaro:call(99, "turnOn");
end

end

-- Terminate scene after running
  fibaro:abort()


Avant, cela ne fonctionnait pas sans les dernières deux lignes.

 

Partager ce message


Lien à poster
Partager sur d’autres sites

Je vois pas de raison pour que ta scène ne fonctionne pas. Essayes ça (pas testé, non garantie). Il faut autoriser 2 instances pour ta scène si tu veux pouvoir ouvrir les volets manuellement en appuyant sur le bouton :

 
--[[
%% autostart
%% properties
%% events
%% globals
--]]
 
function autostart()
	while true do	
		if (tonumber(os.date('%H%M'))==0730) then
			openshutter();
		end
		fibaro:sleep(1*60*1000);
	end
end

function openshutter()
	fibaro:call(56, "open");
	fibaro:call(54, "open");
	fibaro:call(22, "open");
	fibaro:call(52, "open");
	fibaro:call(77, "open");
	fibaro:call(66, "open");
	fibaro:call(80, "open");
	fibaro:call(64, "open");
	fibaro:call(58, "open");
	fibaro:call(62, "open");
	fibaro:call(68, "open");
	fibaro:call(70, "open");
	fibaro:call(72, "open");
	fibaro:call(76, "open");
	fibaro:call(74, "open");
	fibaro:call(99, "turnOn");
end

local sourceTrigger = fibaro:getSourceTrigger();
if(sourceTrigger["type"] == "autostart") then
	autostart();
elseif(startSource["type"] == "other") then
	openshutter();
end
  • Upvote 1

Partager ce message


Lien à poster
Partager sur d’autres sites

j'ai le meme souci depuis samedi dernier.

mes scenes ne se déclenchent plus en automatique

par contre a la main, ca fonctionne

Partager ce message


Lien à poster
Partager sur d’autres sites

Pour moi ce code marche, j'ai juste remplacé startSource par sourceTrigger en bas, et hop!

 

Merci Indyana!

Partager ce message


Lien à poster
Partager sur d’autres sites

j'ai le meme souci depuis samedi dernier.

mes scenes ne se déclenchent plus en automatique

par contre a la main, ca fonctionne

Bonjour Foxchip, pour moi c'est pareil, mais sur la HCL. Pas trouvé de solution, malgré de multiples restaurations. Toutes les scènes "àun moment précis ne fonctionnent plus". Mais pas toujours :-(

Partager ce message


Lien à poster
Partager sur d’autres sites

j'ai solutionner mon probleme en cochant la case suivante sur la scene : Ne laissez pas l'alarme arrêter une scène tandis que l'alarme est en marche

  • Upvote 1

Partager ce message


Lien à poster
Partager sur d’autres sites

Pour moi, ce bou de code etait le sauveur:

function autostart()
while true do
local sourceTrigger = fibaro:getSourceTrigger();i
f(sourceTrigger["type"] == "autostart") then
autostart();
elseif(sourceTrigger["type"] == "other") then
heaton();
end
 

Dommage cela ne t'aide pas avec la HCL.

Autre disaient que tuer les instance supplemantaires aide:
 
if (fibaro:countScenes() > 1) then
  fibaro:abort()
end
 

 

Partager ce message


Lien à poster
Partager sur d’autres sites

×