Witam,
Prosiłbym bardziej doświadczonych kolegów o pomoc w sprawdzeniu sceny, próbuję swoich sił w Lua.
Scena oparta jest o czujniki Fibaro, komunikaty głosowe poprzez pliki mp3 puszczone są z Synology, do tego uzbrajam i rozbrajam alarm poprzez TAGA NFC.
Problem pojawia się czasem, że ucina mi komunikat głosowy, czasem go nawet nie puści i podwójnie wysyłają mi się pushe?
--[[
%% properties
53 armed
93 armed
111 armed
%% events
%% globals
--]]
fibaro:debug('Scena Odpalona')
local typOdpalenia = fibaro:getSourceTriggerType();
fibaro:debug('Typ odpalenia: '..typOdpalenia)
local Aktywator = fibaro:getGlobalValue("Osoba");
fibaro:debug('Osoba: ' .. Aktywator)
if typOdpalenia == "other" then
local Alarmwartosc = fibaro:getGlobalValue("ALARM")
fibaro:debug('Alarm: ' .. Alarmwartosc)
local czujki = {53, 88, 93, 111};
local lvn_count = 0;
local lvn_closed = 0;
if Alarmwartosc == ("ROZBROJONY") then
fibaro:debug('Uzbrajam');
fibaro:setGlobal('Sonosgrako','//Grakostation/Music/uruchamiam_zamkniecie_firmy.mp3');
fibaro:call(179, "pressButton", "1");
fibaro:debug('uruchamiam zamknięcie')
for k,idczujki in pairs(czujki) do
fibaro:call(idczujki, "setArmed", "1");
fibaro:debug('czujki uzbrajają się')
end;
fibaro:sleep(1000);
fibaro:call(28, "setColor", "0","255","0","0");
fibaro:call(39, "setColor", "0","255","0","0");
fibaro:call(5, "setColor", "0","255","0","0");
fibaro:sleep(10000)
fibaro:call(14, "turnOff");
fibaro:call(16, "turnOff");
fibaro:call(24, "turnOff");
fibaro:call(26, "turnOff");
fibaro:call(35, "turnOff");
fibaro:call(37, "turnOff");
fibaro:call(49, "turnOff");
fibaro:call(51, "turnOff");
fibaro:call(69, "turnOff");
fibaro:call(71, "turnOff");
fibaro:call(73, "turnOff");
fibaro:call(58, "turnOff");
fibaro:sleep(1000)
fibaro:call(28, "setColor", "255","38","0","0");
fibaro:call(39, "setColor", "255","38","0","0");
fibaro:call(5, "setColor", "255","38","0","0");
fibaro:sleep(8000)
fibaro:call(28, "startProgram", "5");
fibaro:call(39, "startProgram", "5");
fibaro:call(5, "startProgram", "5");
fibaro:sleep(5000)
fibaro:call(28, "setColor", "255","0","0","0");
fibaro:call(39, "setColor", "255","0","0","0");
fibaro:call(5, "setColor", "255","0","0","0");
fibaro:sleep(3000)
fibaro:call(5, "turnOff");
fibaro:call(14, "turnOff");
fibaro:call(16, "turnOff");
fibaro:call(24, "turnOff");
fibaro:call(26, "turnOff");
fibaro:call(28, "turnOff");
fibaro:call(35, "turnOff");
fibaro:call(39, "turnOff");
fibaro:call(49, "turnOff");
fibaro:call(51, "turnOff");
fibaro:call(69, "turnOff");
fibaro:call(71, "turnOff");
fibaro:call(73, "turnOff");
fibaro:setGlobal("Osoba", "Nikt");
fibaro:debug('Zmiana osoby na Nikt')
fibaro:call(178, "pressButton", "9");
fibaro:debug('Sonos wyłączony')
elseif Alarmwartosc == ("UZBROJONY") then
fibaro:debug('rozbrajam');
for k,idczujki in pairs(czujki) do
fibaro:call(idczujki, "setArmed", "0");
fibaro:debug('czujki rozbrajają się')
end;
elseif Alarmwartosc == ("NARUSZONY") then
fibaro:debug('Naruszony')
fibaro:setGlobal('Sonosgrako','//Grakostation/Music/strefa_naruszona._prosze_rozbroic_alarm.mp3');
fibaro:call(179, "pressButton", "1");
fibaro:call(28, "setColor", "0","255","0","0");
fibaro:call(39, "setColor", "0","255","0","0");
end;
end
-----------
--tutaj warunek uzbrojonych czujek
if typOdpalenia == "property" then
fibaro:debug('Odpalam property')
--or typOdpalenia == "other" then
local a1 = tonumber(fibaro:getValue(53, "armed"));
local a2 = tonumber(fibaro:getValue(88, "armed"));
local a3 = tonumber(fibaro:getValue(93, "armed"));
local a4 = tonumber(fibaro:getValue(111, "armed"));
fibaro:debug('a1: ' .. a1);
fibaro:debug('a2: ' .. a2);
fibaro:debug('a3: ' .. a3);
fibaro:debug('a4: ' .. a4);
if ( a1 > 0 and a2 > 0 and a3 > 0 and a4 > 0 ) then
fibaro:debug('Odpalam jak uzbrojone');
fibaro:setGlobal('Sonosgrako','//Grakostation/Music/alarm_uzbrojony.mp3');
fibaro:call(179, "pressButton", "1");
fibaro:setGlobal("ALARM", "UZBROJONY");
fibaro:debug('ALARM UZBROJONY')
fibaro:sleep(1000);
fibaro:call(186, "sendDefinedPushNotification", "180");
elseif ( a1 == 0 and a2 == 0 and a3 == 0 and a4 == 0 ) then
fibaro:debug('wszystkie rozbrojone');
fibaro:sleep(3000);
fibaro:setGlobal("ALARM", "ROZBROJONY");
fibaro:call(124, "turnOff");
fibaro:call(186, "sendDefinedPushNotification", "182");
if ( Aktywator == "Konrad" ) then
fibaro:setGlobal('Sonosgrako','//Grakostation/Music/dzien_dobry_konradzie.mp3');
fibaro:call(179, "pressButton", "1");
fibaro:sleep(6000)
fibaro:debug('ALARM ROZBROJONY KONRAD');
fibaro:setGlobal("ALARM", "ROZBROJONY");
fibaro:call(146, "turnOn");
fibaro:sleep(2000);
fibaro:call(146, "turnOn");
fibaro:sleep(2000);
fibaro:call(148, "turnOn");
fibaro:sleep(2000);
fibaro:call(12, "close")
fibaro:call(18, "close")
fibaro:call(170, "close")
fibaro:call(22, "close");
fibaro:sleep(2000);
fibaro:call(154, "pressButton", "12")
fibaro:setGlobal("Osoba", "Nikt");
fibaro:debug('Zmiana osoby na Nikt')
fibaro:sleep(11000)
fibaro:debug('Włączam stację radiową')
fibaro:setGlobal('Sonosgrako','//Grakostation/Music/właczam_twoje_ulubione_radio.mp3');
fibaro:call(179, "pressButton", "3");
fibaro:sleep(15000)
fibaro:call(178, "pressButton", "23");
elseif ( Aktywator == "Radek" ) then
fibaro:setGlobal('Sonosgrako','//Grakostation/Music/dzien_dobry_radku.mp3');
fibaro:call(179, "pressButton", "1");
fibaro:sleep(6000)
fibaro:debug('ALARM ROZBROJONY RADEK');
fibaro:setGlobal("ALARM", "ROZBROJONY");
fibaro:call(146, "turnOn");
fibaro:sleep(2000);
fibaro:call(146, "turnOn");
fibaro:sleep(2000);
fibaro:call(148, "turnOn");
fibaro:sleep(2000);
fibaro:call(12, "close")
fibaro:call(18, "close")
fibaro:call(170, "close")
fibaro:call(22, "close");
fibaro:sleep(2000);
fibaro:call(154, "pressButton", "12")
fibaro:setGlobal("Osoba", "Nikt");
fibaro:debug('Zmiana osoby na Nikt')
fibaro:sleep(11000)
fibaro:debug('Włączam stację radiową')
fibaro:setGlobal('Sonosgrako','//Grakostation/Music/właczam_twoje_ulubione_radio.mp3');
fibaro:call(179, "pressButton", "3");
fibaro:sleep(15000)
fibaro:call(178, "pressButton", "23");
elseif ( Aktywator == "Gosia" ) then
fibaro:setGlobal('Sonosgrako','//Grakostation/Music/dzien_dobry_gosiu.mp3');
fibaro:call(179, "pressButton", "1");
fibaro:sleep(6000)
fibaro:debug('ALARM ROZBROJONY GOSIA');
fibaro:setGlobal("ALARM", "ROZBROJONY");
fibaro:call(146, "turnOn");
fibaro:sleep(2000);
fibaro:call(146, "turnOn");
fibaro:sleep(2000);
fibaro:call(148, "turnOn");
fibaro:sleep(2000);
fibaro:call(12, "close")
fibaro:call(18, "close")
fibaro:call(170, "close")
fibaro:call(22, "close");
fibaro:sleep(2000);
fibaro:call(154, "pressButton", "12")
fibaro:setGlobal("Osoba", "Nikt");
fibaro:debug('Zmiana osoby na Nikt')
fibaro:sleep(11000)
fibaro:debug('Włączam stację radiową')
fibaro:setGlobal('Sonosgrako','//Grakostation/Music/właczam_twoje_ulubione_radio.mp3');
fibaro:call(179, "pressButton", "5");
fibaro:sleep(15000)
fibaro:call(178, "pressButton", "23");
end
end
end