Hallo @nevv.
Falls du hier noch mitliest, ich habe eine Frage zu deinem Skript.
Habe es etwas angepasst und ein wenig erweitert. Es funktioniert grundsätzlich sehr gut.
Leider hab ich mir irgendwo einen Fehler eingebaut und nun wird der Teil ganz am Ende
if (disarmedcheckSensorID(windowID)) then
Debug("green",(os.date("%A %d %B %Y - Alle Sensoren entschärft.")))
Notify_off()
nicht mehr angesprungen.
Ich habe schon alles mögliche probiert, komm aber nicht auf den Fehler!
Kannst du vielleicht so nett sein und mal drüberschauen, du kennst das Skript ja gut 
--[[
%% properties
228 value
%% globals
--]]
-- Variablen
local windowID = {30,113,99} -- IDs der Sensoren die ge-/entschärft werden sollen
local countID = 200 -- zähler für maximale Kontaktanzahl
local riegel = 228 -- ID Testkontakt
--local riegel = 128 -- ID Riegelkontakt
-- farbige Debug Meldungen
Debug = function ( color, message )
fibaro:debug(string.format('<%s style="color:%s;">%s', "span", color, message, "span"))
end
-- Variable für Alarm an
local message_on = (os.date("Haustüre um %H:%M Uhr zugesperrt. Die Fenster und die Haustüre sind scharf! (%d.%m.%Y)"))
local subject_on = "Haustüre zugesperrt"
-- Variable für Alarm aus
local message_off = (os.date("Haustüre um %H:%M Uhr aufgesperrt. Der Alarm wurde deaktiviert. (%d.%m.%Y)"))
local subject_off = "Haustüre aufgesperrt"
-- zugesperrt - Alarm aktiviert
function Notify_on()
--->> Hier muss der Code rein wenn der Alarm aktiviert wurde <<---
fibaro:call(2, 'sendEmail', subject_on, message_on)
fibaro:call(141, 'sendPush', message_on)
end
-- aufgesperrt - Alarm deaktiviert
function Notify_off()
--->> Hier muss der Code rein wenn der Alarm deaktiviert wurde <<---
fibaro:call(2, 'sendEmail', subject_off, message_off)
fibaro:call(141, 'sendPush', message_off)
end
--- Arm-Check ---
function armedcheckSensorID(array)
for j=1, countID do
if windowID[j] ~= nil then
if (tonumber(fibaro:getValue(windowID[j], 'armed')) == 0) then
Debug("purple",'windowID[j]' )
return false
end
end
end
return true
end
---Disarm Check ---
function disarmedcheckSensorID(array)
for j=1, countID do
if windowID[j] ~= nil then
if (tonumber(fibaro:getValue(windowID[j], 'armed')) == 1) then
return false
end
end
end
return true
end
---- Skript
--- Schärfen ---
if ( (tonumber(fibaro:getValue(riegel, "value")) == 0 ) ) then
Debug("green",(os.date("%A %d %B %Y - Türe Abgeschlossen")))
for j=1, countID do
if windowID[j] ~= nil then
if (tonumber(fibaro:getValue(windowID[j], 'value')) == 0) then
fibaro:call(windowID[j], 'setArmed', '1')
else
local sensorname = fibaro:getName(windowID[j])
local sensorroom = fibaro:getRoomNameByDeviceID(windowID[j])
local subject_unsafe = 'ACHTUNG: ' ..sensorroom.. ' offen!'
local message_unsafe = 'Im: ' .. sensorroom ..' ist '.. sensorname ..' nicht geschlossen!'
Debug("yellow",(os.date("%A %d %B %Y")))
Debug('red',message_unsafe)
fibaro:call(2, 'sendEmail', subject_unsafe, message_unsafe)
fibaro:call(141, 'sendPush', message_unsafe) -- Galaxy S7
end
end
end
if (armedcheckSensorID(windowID)) then
Debug("green",(os.date("%A %d %B %Y - Alle Sensoren scharf.")))
Notify_on()
end
else
end
--- Entschäfen ---
if ( (tonumber(fibaro:getValue(riegel, "value")) == 1 ) ) then
Debug("green",(os.date("%A %d %B %Y - Türe Aufgeschlossen.")))
for j=1, countID do
if windowID[j] ~= nil then
if (tonumber(fibaro:getValue(windowID[j], 'value')) == 0) then
fibaro:call(windowID[j], 'setArmed', '0')
else
local sensorname = fibaro:getName(windowID[j])
local sensorroom = fibaro:getRoomNameByDeviceID(windowID[j])
local subject_unsafe = 'ACHTUNG: ' ..sensorroom.. ' offen!'
local message_unsafe = 'Im Raum: ' .. sensorroom ..' ist der '.. sensorname ..' nicht geschlossen!'
Debug("yellow",(os.date("%A %d %B %Y")))
Debug('red',message_unsafe)
fibaro:call(2, 'sendEmail', subject_unsafe, message_unsafe)
fibaro:call(141, 'sendPush', message_unsafe) -- Galaxy S7
end
end
end
if (disarmedcheckSensorID(windowID)) then
Debug("green",(os.date("%A %d %B %Y - Alle Sensoren entschärft.")))
Notify_off()
end
else
end