Guten Morgen,
habe grade mal geschaut ob meine Alarm szene noch läuft. leider passiert nix mehr nach auslösen des Alarms.
Habt Ihr eine Ahung woran das liegen kann?
Wenn ich die Szene manuell starte kommt auch ein Fehler.
würde mich freuen wenn jemand einen Ansatz hat
`–[[
%% properties
%% globals
–]]
– Einstellungen für die Sensoren (Zwingend erforderlich)
local sensorID = {135,178,138,143,146,151,156,161,164,167,170} – ID der Sensoren(n)
– Einstellungen für die Sirene(n) (Wenn keine IDs eingetragen sind, wird die Funktion nicht genutzt)
local sireneID = {49} – ID der Sirene(n)
– Einstellungen für Push-Benachrichtigungen (Wenn keine IDs eingetragen sind, wird die Funktion nicht genutzt)
local phoneID = {43} – ID der Handys
– soll ein stiller Alarm genutzt werden? (true = ja/false = nein; silent_alarm_time: Sekunden wie lang der stille Alarm bestehen soll)
– hier werden die Sirenen/Licht erst nach einer bestimmten Zeit aktiv. Bild der Kamera, Push und Meldung des Alarmpanels wird VOR dem stillen Alarm ausgeführt
local silent_alarm = false
local silent_alarm_time = 30
– soll ein Bild der Kamera versendet werden (true = ja/false = nein)
local camera_support = true
– an welche Mail soll ein Bild der Kamera gesendet werden
local email = ‘MAIL’
– Einstellungen für RGBW-Notfallbeleuchtung (Wenn keine IDs eingetragen sind, wird die Funktion nicht genutzt)
local rgbwID = {} – ID RGBW
local mode = ‘programm’ – Auswahl: color = Farbwert setzen; programm = Programm starten
local programm = 5
local color = ‘255,255,255,255’ – welche Farbe eingestellt werden soll
– Sollen eigene Aktionen ausgeführt werden? (true = ja/false = nein; Bei true müssen die beiden nächsten Funktionen befüllt werden)
local own_action = false
function ownaction_alarm()
– eigene Aktion bei Alarm
fibaro:debug(‘Eigene Aktionen bei Alarm ausgeführt’)
end
function ownaction_afteralarm()
– eigene Aktion nach dem Alarm
fibaro:debug(‘Eigene Aktionen nach dem Alarm ausgeführt’)
end
local countID = 500
– AB HIER NICHTS MEHR ÄNDERN
Debug = function ( color, message )
fibaro:debug(string.format(’<%s style=“color:%s;”>%s</%s>’, “span”, color, message, “span”))
end
– Funktion zum Versenden der Push
function sendPush(text)
if (phoneID[1] ~= nil) then
for k=1, countID do
if phoneID[k] ~= nil then
fibaro:call(phoneID[k],‘sendPush’, text, ‘alarm’)
end
end
end
end
– Funktion zum Ein-/Ausschalten der Sirene
function onoffSirene(status)
if (sireneID[1] ~= nil) then
if (status) then
fibaro:debug(‘Sirenen einschalten’)
for a=1, countID do
if sireneID[a] ~= nil then
fibaro:call(sireneID[a],‘turnOn’)
end
end
else
if (sireneID[1] ~= nil) then
fibaro:debug(‘Sirenen ausschalten’)
for a=1, countID do
if sireneID[a] ~= nil then
fibaro:call(sireneID[a],‘turnOff’)
end
end
end
end
end
end
– Funktion zum Ein-/Ausschalten der RGBW-Notfallbeleuchtung
function emergencyRGBW(status)
if (rgbwID[1] ~= nil) then
if (status) then
if (mode == ‘color’) then
fibaro:debug(‘RGBW-Notfallbeleuchtung einschalten - Setze Farbe’)
local RGBWTable = {}
local i = 1
for value in string.gmatch(color,"(%d+)") do
RGBWTable[i] = value
i = i + 1
end
for o=1, countID do
if rgbwID[o] ~= nil then
fibaro:call(rgbwID[o], “setColor”, RGBWTable[1], RGBWTable[2], RGBWTable[3], RGBWTable[4])
end
end
elseif (mode == ‘programm’) then
fibaro:debug(‘RGBW-Notfallbeleuchtung einschalten - Starte Programm’)
for o=1, countID do
if rgbwID[o] ~= nil then
fibaro:call(rgbwID[o], ‘startProgram’, programm)
end
end
end
else
if (rgbwID[1] ~= nil) then
fibaro:debug(‘RGBW-Notfallbeleuchtung ausschalten’)
for o=1, countID do
if rgbwID[o] ~= nil then
fibaro:call(rgbwID[o], “setColor”, 255,0,0,0)
end
end
end
end
end
end
function cameracheck(roomID)
for x=1, countID do
if (fibaro:getType(x) == ‘com.fibaro.ipCamera’) then
if (roomID == fibaro:getRoomID(x)) then
fibaro:debug('Kamera ’ …x… ’ im betroffenen Raum erkannt. Sende Mail an ’ …email)
fibaro:call(x, ‘sendPhotoToEmail’, email)
else
fibaro:debug(‘Keine Kamera im betroffenden Raum gefunden.’)
end
end
end
end
function checkSensor()
for j=1, countID do
if sensorID[j] ~= nil then
if (tonumber(fibaro:getValue(sensorID[j], ‘value’)) == 1) then
return sensorID[j]
end
end
end
end
function checkSensorArmed()
local armed_counter = 0
for j=1, countID do
if sensorID[j] ~= nil then
if (tonumber(fibaro:getValue(sensorID[j], ‘armed’)) == 1) then
armed_counter = armed_counter+1
end
end
end
if (armed_counter == 0) then
return false
elseif (armed_counter > 0) then
fibaro:debug(armed_counter…’ Sensoren noch nicht entschärft …’)
return true
end
end
Debug( ‘red’, ‘___________________________’)
Debug( ‘red’, ‘Alarm-Szene 2.0 wurde ausgelöst.’)
Debug( ‘white’, ‘Aktionen werden ausgeführt.’)
Debug( ‘white’, 'Sensor im Raum ’ …fibaro:getRoomNameByDeviceID(checkSensor())… ‘ausgelöst’)
sendPush(‘ACHTUNG: Alarm ausgelöst!’)
if camera_support then
cameracheck(fibaro:getRoomID(checkSensor()))
else
Debug( ‘red’, ‘Keine Kameras im Einsatz’)
end
if silent_alarm then
fibaro:debug('Stiller Alarm wurde aktiviert. Dauer: ’ …silent_alarm_time)
counter = 0
while (counter <= silent_alarm_time and checkSensorArmed()) do
counter = counter + 1
fibaro:sleep(1*1000)
end
else
Debug( ‘white’, ‘Stiller Alarm wird nicht genutzt.’)
end
if checkSensorArmed() then
if (own_action) then
ownaction_alarm()
end
onoffSirene(true)
emergencyRGBW(true)
elseif silent_alarm then
Debug(‘green’, ‘Stiller Alarm beendet, Geräte entschärft.’)
end
while checkSensorArmed() do
Debug( ‘red’, ‘Alarm weiterhin ausgelöst.’)
fibaro:sleep(2*1000)
end
fibaro:debug(‘Alle Sensoren entschärft.’)
Debug(‘green’, ‘Alarm wurde beendet.’)
if (own_action) then
ownaction_afteralarm()
end
emergencyRGBW(false)
onoffSirene(false)