Alarm Szene löst nicht aus HC2 FW 4.530

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)

Fehler-szene.jpg

Hallo madmax…tue dir und uns den Gefallen einen so langen Code richtig hier einzufügen, damit man ihn richtig lesen kann…über dem Nachrichtenfeld hast du den die Buttons:" b i link und auch code" so kann dir keiner helfen! Grüße Sven

--[[
%% properties
%% weather
%% events
%% globals
--]]
-- u s w

Dann halt so mal sehen ob sich jetzt was tut

–[[
%% 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)

Der Fehler im Debug-Fenster der beim manuellen Starten erscheint ist normal und hat keine Bedeutung. Kann es sein dass das Script im Alarmpanel
deaktiviert ist?

Danke dir Jeep
Die einfachsten Sachen sind es meistens

Danke

–[[
%% properties
%% globals
–]]

— Einstellungen für die Sensoren (Zwingend erforderlich)
local sensorID = {99,94} — ID der Sensoren(n)

— Einstellungen für die Sirene(n) (Wenn keine IDs eingetragen sind, wird die Funktion nicht genutzt)
local sireneID = {92} — ID der Sirene(n)

— Einstellungen für Push-Benachrichtigungen (Wenn keine IDs eingetragen sind, wird die Funktion nicht genutzt)
local phoneID = {9} — 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 = false

— 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)

Hallo, bei mir kommt folgender Debug:
[DEBUG] 19:49:35: 2019-02-28 19:49:35.880693 [ fatal] Unknown exception: /opt/fibaro/scenes/46.lua:1: unexpected symbol near char(226)
[DEBUG] 19:50:19: 2019-02-28 19:50:19.870171 [ fatal] Unknown exception: /opt/fibaro/scenes/46.lua:1: unexpected symbol near char(226)
[DEBUG] 19:52:53: 2019-02-28 19:52:53.891859 [ fatal] Unknown exception: /opt/fibaro/scenes/46.lua:1: unexpected symbol near char(226)

Wenn Du was aus diesem Threads kopiert hast, wird es nicht funktionieren da alle Anführungszeichen falsch sind.
Am besten suchst Du das Original Alarmscript und versuchst es damit.

Moin Jeep,

hab ich nun gemacht.

--[[
%% properties
%% globals
--]]

-- Einstellungen für die Sensoren (Zwingend erforderlich)
local sensorID = {94,5,14,19,99,28,60,65,58,52} -- ID der Sensoren(n)

-- Einstellungen für die Sirene(n) (Wenn keine IDs eingetragen sind, wird die Funktion nicht genutzt)
local sireneID = {92} -- ID der Sirene(n)

-- Einstellungen für Push-Benachrichtigungen (Wenn keine IDs eingetragen sind, wird die Funktion nicht genutzt)
local phoneID = {9} -- 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 = 1

-- soll ein Bild der Kamera versendet werden (true = ja/false = nein)
local camera_support = false

-- 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 = {124} -- ID RGBW
local mode = 'color' -- Auswahl: color = Farbwert setzen; programm = Programm starten
local programm =  
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)

Folgender Degbu erscheint:
[DEBUG] 06:35:11: 2019-03-01 06:35:11.761267 [ fatal] Unknown exception: /opt/fibaro/scenes/46.lua:30: unexpected symbol near ‘local’
Grüße
Stefan

@Stefan,
der Fehler liegt eine Zeile oberhalb der gemeldeten. Zeile 29 braucht einen Wert. Oder wenn man die Variable nur initialisieren will, dann ohne “=”
also nur local programm

@jeep

Vielen Dank jetzt funktioniert es.

Kannst du mir evtl bei einem anderen Problem auch eiterhelfen?
https://www.siio.de/board/thema/modifikation-fenster-auf-heizung-aus-fuer-2-fensterkontskte/

Gru0
Stefan