INSIDETecBaseWebUIAuslösenden Rauchmelder erkennen

Auslösenden Rauchmelder erkennen

Hat man mehrere Rauchmelder im Einsatz, löst im Alarmfall immer die zugeordnete Teamgruppe aus, die dann das Signal an die anderen Melder weitergibt. Nach einigen Sekunden alarmieren dann alle Rauchmelder und man weiß gar nicht mehr, welcher nun den eigentlichen Rauch erkannt hat. Folgendes Skript kann dabei helfen, den zuerst ausgelösten Rauchmelder zu erkennen, um diesen dann z. Bsp. innerhalb einer EMail zu benennen.

Programm & Skript

Zunächst ist ein neues Gewerk mit dem Namen "Sicherheit" anzulegen, dem dann sämtliche Rauchmelder zuzuordnen sind. Anschließend legt man ein neues Programm an, das beim Auslösen einer Rauchmeldergruppe das Skript aufruft:

smoke_detection_03
Das Programm löst in diesem Beispiel also beim ersten Erkennen von Rauch aus, setzt eine Systemvariable mit dem Namen "Alarmzone 1" auf den Wert "ausgelöst" (optional) und führt dann folgendes Skript aus:
var sec=dom.GetObject("Sicherheit");
string i;
string list;
list="";
foreach(i,sec.EnumUsedIDs())
{
  var item=dom.GetObject(i);
  if(item.IsTypeOf(OT_CHANNEL))
  {
    var dev=dom.GetObject(item.Device());
    if(dev.HssType()=="HM-Sec-SD")
    {
       var state=item.DPByHssDP("STATE");
       if(state.Value())
       {
          list=list+dev.Name();
       }
    }
  }
}
if(list!="")
{
  string stdout;
  string stderr;
  system.Exec("/etc/config/addons/email/email 03 '"+list+"'",&stdout,&stderr);
}
Das Skript initialisiert zunächst eine neue Variable "sec" mit Zugriff auf as Objekt "Sicherheit", also dem zuvor angelegten Gewerk mit den zugeordneten Rauchmeldern. In der anschließenden Schleife werden nun alle enthaltenen Elemente (Komponenten) auf den Typ "Rauchmelder" (HM-Sec-SD) hin überprüft und im Erfolgsfall auf dessen Eigenschaft "STATE". Hat ein Rauchmelder ausgelöst, ist diese Eigenschaft gesetzt und kann entsprechend ausgewertet werden. Das Skript ergänzt in diesem Fall eine String-Variable "list" mit dem Namen des Rauchmelders. Neben dem Füllen einer lokalen Variable könnte auch eine Systemvariable genommen werden, die dann global zur Verfügung steht.

EMail-Versand (optional)

Ab Zeile 21 prüft das Skript, ob die lokale Variable "list" mindestens einen Namen eines Rauchmelders enthält und ruft dann das EMail-Addon mit dem Template 03 auf, dem als Parameter die Liste übergeben wird. Um auf diesen Parameter im EMail-Template zugreifen zu können, muss dieser zunächst im Tcl-Abschnitt des Addons einer lokalen Variable zugeordnet werden:

smoke_detection_02

Hierbei wird das erste übergebene Argument "$argv 1" der Variable "a1" zugeordnet. Diese kann dann innerhalb eines Templates einfach als "Platzhalter" verwendet werden:

smoke_detection_01

Wichtig dabei ist, dann man auch ein Häckchen bei "Tcl aktivieren" setzt, damit der Tcl-Abschnitt überhaupt ausgewertet wird. Im Alarmfall sollte dann eine entsprechende EMail abgesetzt werden, die den Namen des zuerst ausgelösten Rauchmelders enthält.

Neue Kommentare:

  • Hallo zusammen, ich versuche seit Tagen verzweifelt, für die Einbindung von FS20 Komponenten an der Homematic Zentrale (1.505), den CUL-Stick (V3.3) von BUSWARE zu konfigurieren. Ich bin streng nach Anleitung aus dem Net... Weiter lesen
  • Hallo, ich habe nun den cux Daemon installiert und die Firmware des CUL geschrieben, bei Status wird folgendes angezeigt: ======================================== USB 1-2 - {CUX} CUL868 [COMM] - /dev/ttyACM0 - V 1.44 CUL... Weiter lesen
  • Hallo, ich habe bei mir den Dimmer HM-LC-Dim1TPBU-FM in Betrieb. Soweit funktioniert alles.Wie komme ich aber an die weiteren Känäle des Dimmers. Bei mir werden in den Geräteeinstellungen die Kanäle Ch:2 und Ch:3 nicht a... Weiter lesen
Kommentare