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.”)
endreturn 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
endif(otherdevices[swiatlo]==’On’ and timedifference(last_pirsalon) > czas) then
commandArray[swiatlo]=’Off’
endreturn commandArray