Lösungen Sicherheit Tutorial

Fibaro Rauchmelder im Praxistest... So programmierst du deinen Rauchalarm

Geschrieben von boomx

Ein Praxistest? Wie jetzt? Was ich genau damit meine, erfahrt Ihr in diesem Artikel...

Kommen wir also gleich zur Sache ;) Ich sitze abends mit meinem Nachwuchs auf dem Sofa. Kurz vorm Abendessen. "Was möchtest du denn essen?" fragte ich zielgerichtet meinen Nachwuchs. "Ein Brötchen, so wie gestern abend" war die kurze, aber prägnante Antwort. Gut, was ich gestern geschafft habe, sollte ich wohl heute auch wieder hinbekommen. Dachte ich zumindest. Mitnichten. Also ab in die Küche, Mikrowelle mit Heißluft-Funktion ausgeräumt, Brötchen reingelegt, auf 6 min gestellt und angeschaltet. Dann wieder zurück ins Wohnzimmer zum Nachwuchs... Die Mikrowelle meldet sich ja, wenn das Brötchen fertig ist.

Der Praxistest des Rauchmelder - Auf jeden Fall Bestanden!

Tja, diesmal meldete sich leider nicht nur die Mikrowelle, als der Timer abgelaufen war. Zeitgleich sprang auch der Rauchmelder im Flur an. Zuerst hab ich mir ja nichts dabei gedacht; möglicherweise mein erster Fehlalarm? Doch als ich die Wohnzimmertür öffnete und den Gestank wahrnahm, wusste ich, dass es sich in diesem Fall zu 100% um keinen Fehlalarm handelt.

deruebeltaeter

Der Übeltäter hat es augenscheinlich nicht überlebt...

Der ganze Flur war bereits mit Rauch gefüllt, mein Vollsprint in die Küche endete fast am Türrahmen, da man keine Armlänge weit durch den Rauch sehen konnte. Allerdings konnte ich mich bis zur Mikrowelle durchschlagen und hab festgestellt, dass sich in der Mikrowelle zum Glück kein Brand gebildet hat. In der Zwischenzeit hat sich der Alarmton des Rauchmelders mit dem Weinen meines Nachwuchses schön die Waage gehalten. Es war also dauerhaft ein leicht nerviger, 90 dB-lauter Ton wahrzunehmen. Eher weniger angenehm. Dazu kam, dass meine Nachbarn auch schon hellhörig geworden sind. Ob es durch den etwas unangenehmen Geruch oder die ungewöhnliche Geräuschkulisse passiert ist, wird wahrscheinlich für immer ein Rätsel bleiben. Jedenfalls wurde alsbald meine Klingel betätigt. Die Frage, ob alles ok ist, sollte sich spätestens dann erübrigt haben, wenn jemand die Haustür aufreißt und sich aus dem Wohnungsflur eine Rauchschwade im gemeinschaftlichen Hausflur verflüchtigt. ;)

Um den Rauch wieder aus der Wohnung zu entfernen, riss ich erstmal alle Fenster auf. Der negative Aspekt an dem Plan waren allerdings die Rauchmelder in den anderen Zimmer. Durch den Zug wurde der Rauch gleichmäßig in den Räumen verteilt. Und zack, Rauchmelder im Schlafzimmer an, Rauchmelder im Kinderzimmer an. Eine Auslösung im Wohnzimmer und Esszimmer blieben mir zum Glück erspart.

sm_last_breach

Rauchmelder zuletzt vor 5 Tagen ausgelöst

Das LUA-Skript

Wieso hab ich euch das jetzt alles erzählt? Schon ein kleiner Fehler in der Bedieung von Geräten kann einen Brand verursachen. In meinem Fall war es das Nicht-Aktivieren der Heißluft-Funktion. So schmorte das Brötchen bei 1000 Watt so vor sich hin. Kommen wir nun aber von dem eher lustig beschriebenen Vorfall zu dem ernsten Thema Rauch-/ Feueralarm. Ich hab mir nach diesem Vorfall vorgenommen, endlich das Rauchmelder-Skript umzusetzen, mit dem ich eine zentrale Sirene in der Wohnung einschalten und mir eine Push-Mitteilung mit der Raumangabe, wo der Rauch gemeldet wurde, auf mein Handy schicken kann. Und dies würde ich gern mit euch teilen und euch erklären, wie das Skript genau funktioniert. Dazu legt Ihr euch eine neue LUA-Szene an und kopiert folgenden Code in die Szene:

Das Skript wird durch eine Statusänderung eines Rauchmelders getriggert. Das bedeutet, dass das Skript ausgeführt wird, wenn zum Beispiel der Rauchmelder mit der ID 102 Rauch erkennt und der Inhalt von getValue von 0 auf 1 springt. Damit Ihr alle Rauchmelder mit diesem Skript abdecken könnt, müsst Ihr in den ersten Zeilen (Zeile 1-9) alle IDs euer Rauchmelder eintragen:

Als nächstes werden die IDs von eurem Handy und eurer Sirene festgelegt. Dies geschieht in den Zeilen 10 & 11:

Mehr müsst Ihr an dem Skript eigentlich nicht ändern. Ich möchte euch aber trotzdem den Rest des Skriptes erklären, damit Ihr wisst, was dieses Skript überhaupt macht.

Sollte ein Rauchmelder die Szene triggern, wird das Skript von oben nach unten durchgegangen. Die erste Aktion, welche er automatisch ausführt ist

. Damit wird der ausführende Trigger, also der Rauchmelder, welcher die Szene ausgelöst hat, ausgelesen. Mit der nächsten Zeile

wird die ID des triggernden devices in die lokale Variable "smokeID" geschrieben. Mit der smokeID kann nun zum Sicherheitscheck die getValue des Smokesensors ausgelesen werden. Dies wird mit der Zeile

ausgeführt. In der lokalen Variablen "smoke" steht nun ein Wert. Dies kann entweder 0 oder 1 sein. 0 bedeutet in diesem Fall, dass der Rauchmelder keinen Rauch erkannt hat. Bei dem Wert 1 wurde Rauch erkannt. Dies wird jetzt in Zeile 17 mit

noch einmal mit einer if-Abfrage geprüft. Sollte die Szene getriggert worden sein, ohne das der Rauchmelder wirklich Rauch erkannt hat, dann wird das Skript abgebrochen und endet mit:

Sollte Rauch erkannt sein, dann wird über getRoomNameByDeviceID(smokeID) der Raum des auslösenden device ermittelt, die Sirene eingeschaltet und die Push-Mitteilung an das Handy gesendet.

Aus Sicherheitsgründen wird die Sirene über das Skript nicht wieder ausgeschaltet. Meiner Meinung nach, sollte man bei einem Rauchalarm auf jeden Fall von Hand tätig werden und dazu gehört dann auch, die Sirene manuell zu deaktivieren.

Icon

Icon

WICHTIG: Skript testen

Es ist WICHTIG, dass Ihr das Skript vor der Inbetriebnahme mal testet. Dafür müsst Ihr nicht euren Rauchmelder verwenden (Geht natürlich auch). Das Skript funktioniert zum Beispiel auch mit einem normalen Fensterkontakt. Dazu müsst Ihr einfach nur die ID eures Fensterkontakt eintragen. Wenn der Fensterkontakt geöffnet wird, dann löst das Skript aus.

Solltet Ihr noch weitere, sinnvolle Ideen zum Thema Rauchalarm haben, dann würden wir uns über Kommentare von euch freuen.

Diesen Blogpost hat geschrieben ...

boomx

57 Kommentare

  • Hi Boomx,
    schöne Idee!
    Da ich (noch) keine Z-Wave Rauchmelder habe, kann ich nicht beurteilen, wie "aufwendig" das manuelle Ausschalten ist.
    Bei meinen konventionellen RM müsste ich mir erst eine Steighilfe besorgen.
    Daher wäre ggf ein (zusätzliches) PopUp nützlich, über das ich den RM auch (manuell) ausschalten könnte.

    VG Hoggle

    • Hi :)

      Die Rauchmelder an sich kannst du nicht per Szene ausschalten, das musst du über den Hardwarebutton machen.
      Eine zusätzlich geschaltete Sirene könntest du so natürlich ausschalten.
      Ich komm bei mir zum Glück an alle gerade so dran ;)

      Gruß

  • Moin & danke für deinen Beitrag :-)
    Kann man die Sirene der Rauchmelder denn auch ansteuern, ohne dass es (am Sensor) brennt?
    Mir wäre wichtig, dass alle Rauchmelder loslegen, wenn es irgendwo im Haus brennt..

  • Danke für den Beitrag.

    Mich würde die Konfiguration des Rauchmelders interessieren.
    Bist Du und wenn ja an welchen Parametern von der Grundkonfiguration abgewichen?
    Gruss Nogger

    • Hi,

      danke für deinen Kommentar.

      Parameter 1: medium
      Parameter 2: all notifications disabled
      Parameter 3: all notifications disabled
      Parameter 4: all notifications disabled
      Parameter 10: BASIC ON & BASIC OFF enabled
      Parameter 11: 255%
      Parameter 12: 0%
      Parameter 13: broadcast inactive
      Parameter 14: all groups (II-V) sent as secure
      Parameter 20: 10 s
      Parameter 21: 1C
      Parameter 30: 55C
      Parameter 31: 10 s
      Parameter 32: 1800 s

      Sollten eigentlich die normalen Parameter sein :)

      Gruß

  • Hi Boomx
    Erstmal toll das du da bist.
    Ich hoffe das ich hier nicht alleine bin. Ich bin schon etwas älter (48) habe aber trotzdem mir für mein Haus eine HC2 zugelegt.
    Ich finde gerade Rauchmelder wichtig und lese eure Beiträge gerne und mehrmals, ich verstehe eine menge aber eben nicht alles. ich würde gerne eure LUA Szenen benützen weiss aber nicht genau wie, da heißt es ändere das nimm die ip von dem und dann geht das, ich habe schon ein Problem mit dem Satz
    (Dazu legt Ihr euch eine neue LUA-Szene an und kopiert folgenden Code in die Szene:) wie kann ich das hinbekommen.
    LG speedy

  • Bekomme immer folgende Fehlermeldung im Debug:
    [ERROR] 09:50:29: Runtime error: /opt/fibaro/FibaroSceneAPI.lua:91: attempt to concatenate local 'deviceId' (a nil value)
    Woran kann das liegen?

  • Kann jemand mir helfen?
    1. Wie finde ich die ID meines Handys heraus. Hab Home Center 2 mit version 4.056. Ist es die Nummer des Users?
    2.Bekomme beim Starten des Scrips folgenden Fehler: ERROR] 21:58:21: Runtime error: /opt/fibaro/FibaroSceneAPI.lua:91: attempt to concatenate local 'deviceId' (a nil value)

    Danke für Hilfe

    Joe

    • Hi,

      bekommst du über die API raus: http://IP-HC2/api/devices und dort nach deinem Handynamen suchen.
      Willst du die Szene per Klick auf Start ausführen? Das geht nicht, diese Szene wird nur durch die Rauchmelder getriggert, welche oben im Header eingetragen sind. Wie im Artikel beschrieben kannst du die Szene auch mit einem Türsensor ausführen lassen.

      Gruß

  • Hi,

    wie kann ich den rausfinden welche Scenen bez Skripte laufen. Kann man ein Programm schreiben, dass alle aktiven Scenen auflistet?

    Wäre schön, wenn es da ne Möglicheit gibt.

    Vielen Dank, Grüße Joe

    • Hi,

      laufende Szenen siehst du im Dashboard oder du baust dir in die Szenen ein fibaro:debug ein, dann kannst du nachvollziehen, was in den Szenen passiert.

      Gruß

  • Hey Daniel,

    danke für das Skript. Zwei Fragen dazu:

    a) Es wird dort aber nur aufgrund Rauchalarm gepushed... Temperaturalarm ist darin aber nicht inbegriffen, oder??
    b) Wie kann ich mehrere Devices für die Push-Nachrichten hinterlegen?

  • --[[
    %% properties
    91 value
    97 value
    -- 106 value
    -- 110 value
    -- 126 value
    %% globals
    --]]
    local sireneID = 71 -- ID der Sirene
    local handyID = {5,22} -- ID des Handys

    local trigger = fibaro:getSourceTrigger()
    local smokeID = tonumber(trigger['deviceID'])
    local smoke = tonumber(fibaro:getValue(smokeID, "value"))

    if (smoke == 1) then
    local room = fibaro:getRoomNameByDeviceID(smokeID)
    fibaro:debug('Rauch im Raum: ' .. room .. ' erkannt.')
    fibaro:call(sireneID, 'turnOn')
    fibaro:call(handyID, 'sendPush', 'ACHTUNG! Rauch im Raum: ' .. room .. ' erkannt!', 'smoke')
    else
    fibaro:debug('Kein Rauch erkannt. Fehlalarm');
    end

    • Da fehlt auch mehr als die Hälfte ;) Kann so nicht funktionieren. Hatte schon einen Grund, warum ich auf den anderen Artikel verwiesen habe. Dies muss so aussehen:

      for x=1, 1000 do
      if phoneID[x] ~= nil then
      fibaro:call(phoneID[x], 'sendPush', 'Luftfeuchtigkeit im ' .. room .. ' ist zu hoch.')
      end
      end

      Gruß

      • Werde es morgen mal testen... In der intelligenten Lichtsteuerung stand auch nur, dass man bei mehreren MotionSensoren die IDs in {} setzen soll... Von anderem Code stand da nix...
        Danke schonmal!

    • Hi,

      davon halte ich gar nichts ;)

      1.) Ich denke, dass du mehrere Fehlalarme erhalten wirst, da der Status nicht nochmals überprüft wird.
      2.) Wird der Raum nicht automatisch ermittelt.
      3.) Kannst du keine anderen Aktionen (z.B. Einschalten von Sirene, schalten von Licht) ausführen.

      Kann man natürlich so machen, aber halte ich für den falschen Weg, da man das für jeden Rauchmelder einrichten muss.

      Gruß

  • Danke für das Skript. Habe es gerade bei mir installiert und es läuft einwandfrei. Eine Frage noch dazu: ist es möglich, für den Rauchalarm die Innensirene anders tönen zu lassen, als bei Einbruchalarm? Ich nutze die Aeotec Sirene ZW080-BI, die ja mehrere "Melodien" kann. Vielleicht kann man in Zeile 20 noch einen entsprechenden Parameter zusätzlich für den Alarmton übergeben? Wäre doch interessant zu wissen, ob man den Feuerlöscher oder die Keule holen muss, wenn man nachts vom Alarm geweckt wird :-) Danke und Gruß.

  • Hi,
    meine mittlerweile 16 Rauchmelder tauchen alle mehr oder weniger oft im Debug-Fenster mit "Fehlalarm" auf. Bedeutet das, dass sie alle immer am Rande eines Fehlalarmes arbeiten? Soll die Empfindlichkeit besser auf Stufe 3 reduziert werden?
    Danke und Gruß.

    • Hi,

      nein, würde es auf der Empfindlichkeit belassen. Läuft bei mir jetzt schon seit ein paar Monaten und ich hatte noch keinen Fehlalarm, obwohl in dem Debug die Meldung erscheint.

      Gruß

  • Ich habe bei einem rauchmelder immer wieder Fehlalarme:

    [DEBUG] 06:49:05: Rauch im Raum: Esszimmer erkannt.
    [DEBUG] 06:49:29: Kein Rauch erkannt. Fehlalarm
    [DEBUG] 10:52:58: Rauch im Raum: Esszimmer erkannt.
    [DEBUG] 10:53:10: Kein Rauch erkannt. Fehlalarm
    [DEBUG] 21:45:14: Rauch im Raum: Esszimmer erkannt.
    [DEBUG] 21:45:38: Kein Rauch erkannt. Fehlalarm

    Die Sirene löst auch aus!

    Woran kann es liegen?

    • Hi,

      dieses Verhalten liegt nicht am Skript. Bei mir ändert sich das Value von den Rauchmeldern auch und das skript wird getriggert. Dann erscheint aber bei mir (wie auch bei dir) Kein Rauch erkannt. Soweit iO.

      Bei dir erkennt aber der Rauchmelder Rauch und löst aus. Möglicherweise ist die Rauchkammer verschmutzt und löst deshalb aus. Nur eine Vermutung.

      Gruß

  • Vielen Dank an boomx,
    ich habe mir das Script angepasst für die Flood Sensoren.
    Das funktioniert super.

    Bitte mach weiter so :)

    LG
    Carsten :)

  • Moin,

    habe auch eben mal dein script testen wollen:

    --[[
    %% properties
    189 value
    %% globals
    --]]

    -- Quelle https://www.siio.de/sicherheitalarm/fibaro-rauchmelder-im-praxistest-inkl-lua-skript/

    local sireneID = 207 -- ID der Sirene
    local handyID = 4 -- ID des Handys

    local trigger = fibaro:getSourceTrigger()
    local smokeID = tonumber(trigger['deviceID'])
    local smoke = tonumber(fibaro:getValue(smokeID, "value"))

    if (smoke == 1) then
    local room = fibaro:getRoomNameByDeviceID(smokeID)
    fibaro:debug('Rauch im Raum: ' .. room .. ' erkannt.')
    fibaro:call(sireneID, 'turnOn')
    fibaro:call(handyID, 'sendPush', 'ACHTUNG! Rauch im Raum: ' .. room .. ' erkannt!', 'smoke')
    else
    fibaro:debug('Kein Rauch erkannt. Fehlalarm');
    end

    bekomme aber folgenden fehler:

    [DEBUG] 18:54:35: line 111: attempt to concatenate local 'deviceId' (a nil value)

    es gibt ja noch nicht mal ne line 111 ;-) woran kann dies liegen? die IDs habe ich angepasst

  • Danke, sehr interessantes Skript!

    Ich muss leider aber mal eine Anfängerfrage stellen: Bei mir haben meine Rauchmelder im HC2 jeweils 4 IDs (1 "übergreifende" ID, die als Master im Gerätediagramm angezeigt wird, aber eigentlich versteckt ist, und 3 sichtbare IDs, diese stehen für Rauchmelder/Hitzemelder/Temperatursensor, offensichtliche sind das verschiedene "Untergeräte" des Geräts. Welche dieser jeweils 4 IDs muss ich nun im Skript für jeden meiner Rauchmelder eintragen, damit das Skript stets korrekt auslöst, die übergreifende, alle 4, oder nur den eigentlichen Rauchmelder?

    Geht mir ähnlich mit den Tür-/Fenstersensoren im Alarmpanel 2.0, diese haben auch 3 IDs (1 Master/hidden, 1 Slave/hidden, 1 Slave/sichtbar), dort habe ich nur die letzte der 3 IDs genommen (für den sichtbaren Slave).

    Danke für eine Klärung.

  • Hallo, es hat sich ja nun schon etwas getan in der letzten Zeit. Aber die Verbindung der RM ist immer noch nicht möglich, oder?
    Sprich wenn es im EG brennt, dass in ET4 der Melder auch angeht?
    Bleibt diese Funktion immer noch den Popp RM vorbehalten?

Gib deinen Senf dazu!

Cookie Consent mit Real Cookie Banner