Manuelle Alarm-Szenen aufgrund der Beta 4.071

Hallo zusammen!

Aufgrund erheblicher Probleme mit der Firmware, war ich gezwungen auf die aktuelle Beta zu wechseln und manuelle Alarmszenen zu verwenden, da der RFID Reader von der Beta nicht unterstützt wird. Soweit funktionieren die Szenen auch. Aber scheinbar gehen die in eine Endlosschleife wenn ich scharf oder unscharf schalte (mache ich derzeit über die Fibaro-App). Ich habe dann immer das gelbe Dreieck mit: to many scene…usw.

Wie kann ich die Szenen optimieren, damit sie “schlanker” laufen?

Hier - scharf:

--[[
%% autostart
%% properties
737 value
731 value
1002 value
739 value
735 value
672 value
755 value
757 value
749 value
787 value
675 value
751 value
743 value
745 value
753 value
759 value
737 armed
731 armed
733 armed
739 armed
735 armed
672 armed
755 armed
757 armed
749 armed
787 armed
675 armed
751 armed
743 armed
745 armed
753 armed
759 armed
%% events
%% globals
--]]

local startSource = fibaro:getSourceTrigger();
if (
 ( (tonumber(fibaro:getValue(737, "value")) > 0 and tonumber(fibaro:getValue(737, "armed")) > 0) )
or
 ( (tonumber(fibaro:getValue(731, "value")) > 0 and tonumber(fibaro:getValue(731, "armed")) > 0) )
or
 ( (tonumber(fibaro:getValue(1002, "value")) > 0 and tonumber(fibaro:getValue(1002, "armed")) > 0)  or  (tonumber(fibaro:getValue(739, "value")) > 0 and tonumber(fibaro:getValue(739, "armed")) > 0)  or  (tonumber(fibaro:getValue(735, "value")) > 0 and tonumber(fibaro:getValue(735, "armed")) > 0)  or  (tonumber(fibaro:getValue(672, "value")) > 0 and tonumber(fibaro:getValue(672, "armed")) > 0)  or  (tonumber(fibaro:getValue(755, "value")) > 0 and tonumber(fibaro:getValue(755, "armed")) > 0)  or  (tonumber(fibaro:getValue(757, "value")) > 0 and tonumber(fibaro:getValue(757, "armed")) > 0)  or  (tonumber(fibaro:getValue(749, "value")) > 0 and tonumber(fibaro:getValue(749, "armed")) > 0)  or  (tonumber(fibaro:getValue(787, "value")) > 0 and tonumber(fibaro:getValue(787, "armed")) > 0)  or  (tonumber(fibaro:getValue(675, "value")) > 0 and tonumber(fibaro:getValue(675, "armed")) > 0)  or  (tonumber(fibaro:getValue(751, "value")) > 0 and tonumber(fibaro:getValue(751, "armed")) > 0)  or  (tonumber(fibaro:getValue(743, "value")) > 0 and tonumber(fibaro:getValue(743, "armed")) > 0)  or  (tonumber(fibaro:getValue(745, "value")) > 0 and tonumber(fibaro:getValue(745, "armed")) > 0)  or  (tonumber(fibaro:getValue(753, "value")) > 0 and tonumber(fibaro:getValue(753, "armed")) > 0)  or  (tonumber(fibaro:getValue(759, "value")) > 0 and tonumber(fibaro:getValue(759, "armed")) > 0) )
or
startSource["type"] == "other"
)
then
	fibaro:call(611, "startProgram", "5");
  	fibaro:call(809, "turnOn");
	setTimeout(function()
		fibaro:call(809, "turnOn");
	end, 300000)
end


und hier - unscharf:

-[[
%% autostart
%% properties
755 armed
757 armed
749 armed
787 armed
761 armed
743 armed
745 armed
753 armed
759 armed
737 armed
731 armed
1002 armed
672 armed
675 armed
751 armed
735 armed
739 armed
%% events
%% globals
--]]

local startSource = fibaro:getSourceTrigger();
if (
 ( tonumber(fibaro:getValue(755, "armed")) == 0  and  tonumber(fibaro:getValue(757, "armed")) == 0  and  tonumber(fibaro:getValue(749, "armed")) == 0  and  tonumber(fibaro:getValue(787, "armed")) == 0  and  tonumber(fibaro:getValue(761, "armed")) == 0  and  tonumber(fibaro:getValue(743, "armed")) == 0  and  tonumber(fibaro:getValue(745, "armed")) == 0  and  tonumber(fibaro:getValue(753, "armed")) == 0  and  tonumber(fibaro:getValue(759, "armed")) == 0  and  tonumber(fibaro:getValue(737, "armed")) == 0  and  tonumber(fibaro:getValue(731, "armed")) == 0  and  tonumber(fibaro:getValue(1002, "armed")) == 0  and  tonumber(fibaro:getValue(672, "armed")) == 0  and  tonumber(fibaro:getValue(675, "armed")) == 0  and  tonumber(fibaro:getValue(751, "armed")) == 0  and  tonumber(fibaro:getValue(735, "armed")) == 0  and  tonumber(fibaro:getValue(739, "armed")) == 0 )
or
startSource["type"] == "other"
)
then
	fibaro:call(809, "turnOff");
	fibaro:call(611, "turnOff");
end


Über Eure Hilfe würde ich mich sehr freuen.

Lieben Dank und viele Grüße

Christian

Du hast verdammt viele Trigger.
Ich würde in der ersten Szene nur 731, 737 und 1002 als Trigger nehmen. (ODer ist das nur ein Darstellungsproblem bei mir?)
Weiters verhindert der Timer das die Szene rasch verlassen wird.
Jeglicher weitere Trigger lässt die Szenen steigen.
Eine Möglichkeit ist eine Variable zu setzen wenn die Alarm Bedingung erfüllt ist und in einer weiteren Szene eine Zustandsänderung der Variable nehmen um Deinen Alarm abzuhandeln.
Das Du in der Timeout Funktion den Aktor(Sirene?) nochmals einschaltest, dürfte wohl ein Fehler sein.

Gleiches gilt für unscharf Szene.
Nachdem nur 3 Devices einen Alarm triggern, solltest du nur diese Triggern lassen.

Ich habe das übrigens so gelöst:
Im ALARM Panel wird die Szene gestartet.
Wenn ein Alarm auslöst wird piept die Sirene kurz um darauf hinzuweisen das Alarmanlage scharf.
Dann hat man 1 Minute Zeit um die Anlage unscharf zu setzen (RFID Reader, kann aber auch Szene sein welche Variable ändert)
Nach 10 Minuten drehe ich den Alarm wieder ab.

local start_alarm = 60
local max_alarm = 600
local count = 1 
 
-- Infinite loop
while true do
  
  if (fibaro:getGlobalValue("rfid_alarm") ~= '1' ) then
    fibaro:debug('Alarm Stop')
      fibaro:call(43, "turnOff")
    if (count > start_alarm) then
      local subject = "ALARM Gelöscht"
	  local message = "Sirene in-aktiv"

	  fibaro:call(204, "sendEmail", subject, message);
	  fibaro:call(205, "sendEmail", subject, message);
	  fibaro:call(25,  "sendPush", message);
    end
      fibaro:abort()
  end  
  
  if (fibaro:getGlobalValue("rfid_alarm") == '1' and count == 1) then
    fibaro:debug('Alarm Start')
     fibaro:call(43, "turnOn")
     fibaro:sleep(500)
     fibaro:call(43, "turnOff")   
  end
  

  
  if (count == start_alarm) then
    fibaro:debug('Sirene Ein')
    	fibaro:call(43, "turnOn")
    local subject = "Einbruchs ALARM !!!!"
	local message = "Alarm wurde ausgelöst, Sirene aktiv"
	  fibaro:call(204, "sendEmail", subject, message);
	  fibaro:call(205, "sendEmail", subject, message);
      fibaro:call(25,  "sendPush", message);
  end
 
  if (count == max_alarm) then
    fibaro:debug('Maximale Alarmzeit, Siren Aus')
      fibaro:call(43, "turnOff")
      local subject = "max ALARM Zeit"
	  local message = "Sirene in-aktiv"
	  fibaro:call(204, "sendEmail", subject, message);
	  fibaro:call(205, "sendEmail", subject, message);
	  fibaro:call(25,  "sendPush", message);
      fibaro:abort()
  end
 
  -- Increase the value of a by 1
  count = count + 1
 
  -- Wait 1 second (1000 milliseconds)
  fibaro:sleep(1000)
 
end

Stimme dir 100% zu :slight_smile: Danke für deinen Lösungsvorschlag :slight_smile:

Guten Morgen!

Danke für Eure Hilfe bzw. Ansätze!

@mdietinger: Die Träger sind alles Fenster- oder Türkontakte die nach “außen” führen! Heißt - wenn einer von denen auslöst, geht die Sirene an. In meinem Fall, löst jeder einzelne kann einen Alarm auslösen. Deshalb auch meine Frage, ob ich das schlanker gestalten kann…

In dem Alarmpanel von Fibaro habe ich oft das Problem, dass ich nur definierte Kontakte als Träger haben möchte, das Panel mir häufig aber auch Motionsensoren usw. rein baut…! Deshalb die Szene, weil ich es dort in der Hand habe, welcher Kontakt auslösen soll…

Aber vielleicht schaue ich es mir nochmals genauer an. Danke erst einmal für Deinen Vorschlag…

Viele Grüße

Christian

Chriss1873,

Schlage vor dass Du nicht über das Alarmpanel scharf stellst sondern über eine Szene.
Eine Szene zum schärfen der gewünschten Aktoren (plus setzen der rfid_alarm variable falls du mein Skript verwenden möchtest) und eine zum entschärfen (mit Variablen Änderung falls Du mein Skript nimmst).
Danach kannst das Alarmpannel zum auslösen Deiner Scharf Szene verwenden(oder alternativ meines), aber Achtung keine Trigger und nur der Sirenen und RGB Teil.
Habe mal mein Skript angepasst um Deine ID’s zu verwenden und es voll konfigurierbar zu machen.
Einfach die ID’s am Anfang kontrollieren und anpassen.

local start_alarm = 60 -- Zeit in Sekunden für stillen Alarm (Zeit zum entschärfen)
local max_alarm = 600 -- Maximale Zeit in welcher die Sirene an ist
local count = 1 
local myPhone = 25 -- Bitte auf Deine Telefon ID ändern
local myEmail = 204 -- Bitte auf Deine Email ID ändern
local mySirene = 809 -- Sirenen ID
local myRGB = 611 -- RGB ID (nehme an das ist eine RGB Aktor)
 
-- Infinite loop
while true do
  
  if (fibaro:getGlobalValue("rfid_alarm") ~= '1' ) then --Analge entschärft
    fibaro:debug('Alarm Stop')
      fibaro:call(mySirene, "turnOff")
	  fibaro:call(myRGB, "turnOff");
    if (count > start_alarm) then
      local subject = "ALARM Gelöscht"
	  local message = "Sirene in-aktiv"
 
	  fibaro:call(myEmail, "sendEmail", subject, message);
	  fibaro:call(myPhone,  "sendPush", message);
    end
      fibaro:abort()
  end  
  
  if (fibaro:getGlobalValue("rfid_alarm") == '1' and count == 1) then -- Alarm ausgelöst, stiller Alarm bis Timer abgelaufen
    fibaro:debug('Alarm Start')
     fibaro:call(mySirene, "turnOn")
     fibaro:sleep(500)
     fibaro:call(mySirene, "turnOff")   
	 fibaro:call(myRGB, "startProgram", "5"); -- RGB Program startet sofort bei Alarm
  end
  
 
  
  if (count == start_alarm) then -- Sirene geht los
    fibaro:debug('Sirene Ein')
    	fibaro:call(mySirene, "turnOn")
    local subject = "Einbruchs ALARM !!!!"
	local message = "Alarm wurde ausgelöst, Sirene aktiv"
		  fibaro:call(myEmail, "sendEmail", subject, message);
      fibaro:call(myPhone,  "sendPush", message);
  end
 
  if (count == max_alarm) then -- Maximale Alarmzeit
    fibaro:debug('Maximale Alarmzeit, Siren Aus')
      fibaro:call(mySirene, "turnOff")
	  fibaro:call(myRGB, "turnOff");
      local subject = "max ALARM Zeit"
	  local message = "Sirene in-aktiv"
	  fibaro:call(myEmail, "sendEmail", subject, message);
	  fibaro:call(myPhone,  "sendPush", message);
      fibaro:abort()
  end
 
  -- Increase the value of a by 1
  count = count + 1
 
  -- Wait 1 second (1000 milliseconds)
  fibaro:sleep(1000)
 
end
 

Hi,

du solltest mal die erweiterten Einstellungen von deinen MS kontrollieren. Du musst die dort vom Alarm ausschließen, dann werden diese vom Alarmpanel nicht mehr berücksichtigt.

Gruß

Hallo Ihr zwei!:slight_smile:

Vielen Dank für Eure Tips.

Ich habe im System schon alle MS und Tür- oder Fensterkontakte, die nicht zur Alarmanlage gehören per “Haken” deaktiviert, aber vielleicht habe ich auch nur ein Verständnisproblem. Wenn ich im Alarmpanel bin, werden mir auch DIE MS links in: mein Haus als angehakt angezeigt, die eigentlich explodiert vom Alarmsystem sind…wobei…wenn ich in der App den Alarm scharf schalte,passier das dann ja quasi auch über das Panel richtig?

Ich teste die Szene mal am WE. Bin im Moment nur am Arbeiten. Seist und ständig…! :wink:

VG

Christian

explodiert…! ^^ Natürlich excludiert…! Verd… Autokorrektur…!:-)))

Hi,

im Alarmpanel werden die auch angezeigt, das ist richtig. Du kannst diese aber nicht mehr so schärfen, dass der Alarm ausgelöst wird und wenn du in der App über die Wischen-Nach-Oben Geste alles schärfst, dann werden diese auch nicht berücksichtigt.

Gruß

Gogy4,

sorry ich verstehe Deine Frage nicht.

lg

Hallo aus SH!

Sagt mal,…kann ich in Deine Szene (mdietinger) auch zusätzlich eine, speziell die Popp-Aussensirene, integrieren? Und wenn ja,…wie sage ich der Sirene, wenn sie nach fünf Minuten wieder ausgeht, dass die LEDs in der Sirene bis zur Entschärfung weiter blinken sollen?

Und eine Frage habe ich noch zur Szene an sich. Wenn diese scharf ist und ich den Türkontakt auslöse, dann piept sie ja einmal kurz. richtig? Wenn ich den Alarm dann unscharf schalte, geht die Sirene nicht mehr los oder?

Ich hatte gestern nämlich den Fall, dass sie trotzdem losging. Kann aber auch daran gelegen haben, dass sowohl meine Frau (die vergessen hat unscharf zu schalten) und ich gleichzeitig “unscharf” zu schalten"! Könnte man das einmalige piepen verändern? So dass sie z.B. 30 Sekunden (als Delay) alle zwei Sekunden piept, so dass man gezwungen ist “unscharf zu schalten”!

Die Szene muß, bevor ich die Außensirene anbaue so perfekt wie nur möglich laufen um Fehlalarme zu vermeiden.

http://www.popp.eu/wp-content/uploads/2015/11/Manual_Solar-Siren_POPP_De.pdf

Vielen Dank und viele Grüße

Christian

Chriss,

Klar geht dass.
Brauchst nur bei den Variablen Deklarationen eine neue Variable anlegen.
local myPopp = XXX – Sirenen ID

Beim Enschärfen fügst du:
fibaro:call(myPopp, "turnOff")
ein

Und bei Alarm Start: (Achtung nicht beim stillen Alarm)
fibaro:call(myPopp, "turnOn")

Und sicherheitshalber auch nach erreichen der max. Alarmzeit:
fibaro:call(myPopp, "turnOff")

Damit wird deine Außensirene nur nach Ablauf der Zeit zum entschärfen losgehen und entweder nach 5 Minuten(Sirenensetting) oder nach Entschärfen abgedreht.
Ich kenn mich nicht so mit der Popp Sirene aus und weiss nicht ob du das Licht extra ansteuern kannst.

Die Sirene piepst kurz auf wenn die Tür geöffnet wird.
Kann aber sein wenn der RFID Chip nicht richtig an den Leser gehalten wird dann kann es sein dass die Anlage nicht unscharf ist.
Ich habe mir zusätzlich beim RFID Script ein kurzes Piepen des Alarms eingebaut beim Schärfen und Entschärfen.
Dann hast du immer akustische Rückmeldung ob der Leser funktioniert hatte.

fibaro:call(mySirene, "turnOn") fibaro:sleep(500) fibaro:call(mySirene, "turnOff")

Eine weitere Möglichkeit wäre noch den Außenalarm eine weitere Minute verzögert auszulösen.

Hier hätte ich nochmals eine Frage zu! Ich habe Deine obigen Änderungen noch nicht umgesetzt!

Sollte es aber nicht eigentlich so sein, dass wenn ich z.B. vergesse den Alarm unscharf zu schalten und ihn versehentlich auslöse, am Piepen ja merke: Oooouuuh,…jetzt aber schnell unscharf schalten, dass die Sirene nicht ausgelöst wird?

Bisher war es so, dass sie nämlich trotz dessen ausgelöst wurde…

Viele Grüße

Christian

Ja das sollte der Fall sein.
Wichtig ist das die Variable rfid_alarm beim entschärfen auf 0 gesetzt wird!
Untenstehender Code Teil sollte die Sirene ausschalten(auch wenn sie noch nicht aktiv ist) und das Program unterbrechen.

if (fibaro:getGlobalValue("rfid_alarm") ~= '1' ) then
    fibaro:debug('Alarm Stop')
      fibaro:call(43, "turnOff")
    if (count > start_alarm) then
      local subject = "ALARM Gelöscht"
	  local message = "Sirene in-aktiv"
 
	  fibaro:call(204, "sendEmail", subject, message);
	  fibaro:call(205, "sendEmail", subject, message);
	  fibaro:call(25,  "sendPush", message);
    end
      fibaro:abort()
  end