[LUA] zapalanie światła i gaszenie po zadanym czasie w oparciu o czujkę ruchu PIR

Aby zrealizować takie zadanie w domoticzu będziemy potrzebować dwóch skryptów:

Pierwszy, który wyzwalany jest na zmianę stanu czujki, czyli wykorzystuje komendę „devicechanged” – typ „DEVICE” w domoticz

Drugi, który jest uruchamiany niezależnie od stanu przełączników regularnie co minutę – typ „TIME” w domoticz.

 

Skrypt pierwszy – zapalający.

Dodaj nowy skrypt w domoticz i jako typ wyzwalania wybierz „DEVICE” obok przycisku zapisu.

 

commandArray = {}

local pir = „PIR salon”

local swiatlo = „Salon góra”

if (devicechanged[pir] == 'On’ and otherdevices[swiatlo’] == 'On’ ) then
commandArray[swiatlo]=’On’
— print(„LUA script: Salon góra włączone.”)
end

return commandArray

 

Skrypt drugi – gaszący w przypadku braku wykrycia ruchu przez X minut.

Dodaj w domoticz jako „TIME”. Zmien zmienne local na własne nazwy przełączników. Czas jest w sekundach.

 

commandArray = {}

local pirsalon = 'PIR salon’

local swiatlo = „Salon góra”

local czas = 120
last_pirsalon = otherdevices_lastupdate[pirsalon]

function timedifference(timestamp)
y, m, d, H, M, S = timestamp:match(„(%d+)-(%d+)-(%d+) (%d+):(%d+):(%d+)”)
difference = os.difftime(os.time(), os.time{year=y, month=m, day=d, hour=H, min=M, sec=S})
return difference
end

if(otherdevices[swiatlo]==’On’ and timedifference(last_pirsalon) > czas) then
commandArray[swiatlo]=’Off’
end

return commandArray

Facebook - komentarze