Seite 1 von 17
Auslösenden Rauchmelder finden
Verfasst: 25.05.2010, 19:31
von owagner
Hallo,
obwohl die einzelnen Kanäle der Rauchmelder bei Gruppenzugehörigkeit nicht mehr im WebUI ansprechbar sind, sind die Geräte trotzdem noch einzeln vorhanden und können per HM-Script angesprochen werden. Mit folgendem Scriptfragment kann man z.B. den- oder diejenigen finden, die einen Alarm ausgelöst haben und eine entsprechende E-Mail verschicken (Mail-Addon mit etwas TCL-Wrapper für Parameterübergabe)
Code: Alles auswählen
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);
}
Viele Grüße,
Olli
Re: Auslösenden Rauchmelder finden
Verfasst: 25.05.2010, 20:32
von albae
Hallo Olli,
derzeit sehe ich meine Rauchmelder nur als "Gruppe" und nicht die einzelnen Kanäle. Aber wenn ich das Script richtig verstehe, spielt das eher eine untergeordnete Rolle.
Allerdings weiß ich nicht, welche Parameter ich per Tcl definieren bzw. übergeben muss.
Hast Du vielleicht ein Beispiel?
Viele Grüße,
Albae
Re: Auslösenden Rauchmelder finden
Verfasst: 25.05.2010, 21:22
von owagner
So z.B: (Achtung, im Bild nach unten scrollen)
- email1.gif (10.56 KiB) 20086 mal betrachtet
- email2.gif (11.51 KiB) 20086 mal betrachtet
Re: Auslösenden Rauchmelder finden
Verfasst: 07.09.2010, 17:36
von jojo8897
Habe alles so gemacht wie beschrieben, bekomme aber nur die Mail mit der Betreffzeile, kein Inhalt im Textfenster
Jemand ne Ahnung woran es liegen kann?
Tcl ist angehakt und die Texte habe ich so übernommen wie in den Grafiken.
Tcl muss ich ja nicht nachinstallieren bei der CCU oder?
HAT SICH ERLEDIGT!!! LEERZEICHEN zwischen agrv1 vergessen
Re: Auslösenden Rauchmelder finden
Verfasst: 18.09.2010, 18:06
von Arminus
Hmmm, das Problem mit diesem Script scheint mir zu sein, dass die Melder den Alarm ja weiter melden - jedenfalls bekam ich nach einem Testspray Test eine Auslösung von zwei Meldern - und nicht nur vom auslösenden.
Mir fällt im Übrigen auf, dass bei einem Alarm die Einzel-Rauchmelder in der Geräte Ger#te-Ansicht im WebUI gar nichts sagen ?! Sprich auch im WebUI sehe ich nicht wer eigentlich ausgelöst hat ? (nur die Gruppe meldet Alarm).
Grüße,
Armin
Re: Auslösenden Rauchmelder finden
Verfasst: 20.09.2010, 13:18
von owagner
Das Script muss auf die Gruppe per "Rauch erkannt / Ausführung bei Änderung" gelegt werden. Dann sollte es nur einmalig ausgeführt werden, wenn die Gruppe erstmalig alamiert, egal, wieviele Melder mittröten.
Viele Grüße,
Olli
Re: Auslösenden Rauchmelder finden
Verfasst: 24.09.2010, 16:13
von Arminus
Genau da liegt das Script:
- 2010-09-24_161005.png (9.58 KiB) 19745 mal betrachtet
Könnte das ein Timing-Problem sein ? Der erste Melder löst aus -> sein State ist gesetzt, ein paar sekunden später löst der zweite - gekoppelte - aus, sein state ist auch gesetzt, jetzt erst ist die loop im script dran -> ergo, beide werden als ausgelöst gemeldet ?
Grüße,
Armin
Re: Auslösenden Rauchmelder finden
Verfasst: 24.09.2010, 16:53
von owagner
Eigentlich nicht. Das WebUI-Programm wird ja nur einmal gestartet, und zwar dann, wenn die ganze Gruppe das erste mal auf "Rauch erkannt" geht. Wenn dann der zweite etc. auslöst, würde zwar das Script die auch melden, aber es wird ja nicht mehr aufgerufen, weil sich der Stauts der Gruppe ja nicht geändert hat...
Re: Auslösenden Rauchmelder finden
Verfasst: 13.09.2011, 20:54
von dreamscout
Hallo.
kann ich das irgendwie umbauen damit ich auch Sabotagealarme als Email bekomme mit dem ausgelösten Türkontakt, Bewegungsmelder oder Drehgriffkontakt?
Was muss ich dann verändern?
Herlichen Dank
Grüße
Dreamscout
Re: Auslösenden Rauchmelder finden
Verfasst: 25.09.2011, 20:09
von ong
Hallo,
ich habe mir gedacht, dass ich keine Lust habe erst an den PC zu laufen (ggf. anschalten) um die Mail zu lesen - nur um zu wissen welcher Melder es war.
Ich lasse stattdessen den Namen des Melders auf meine beiden Fernbedienungen ausgeben:
Code: Alles auswählen
var rauchmeldername;
integer length;
var text;
var sec=dom.GetObject("Sicherheit");
text="-X-";
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!="")
{
length = list.Length();
rauchmeldername = list.Substr(9,length-9); ! Kleine Anmerkung: Meine Rauchmelder heißen "Rauch EG xxxxxx" - also immer noch Rauch und Geschoss davor. dies schneide ich hier ab damit nur noch (die ersten 4) Zeichen des tatsächlichen Namens angezeigt werden
text = rauchmeldername;
}
var backlight;
backlight = 1;
!Auf welcher FB soll angezeigt werden?
var value;
value = "GEQ0033526"; !- Orange
var x = dom.GetObject("BidCos-RF."+value+":18.TEXT").State(text);
var x = dom.GetObject("BidCos-RF."+value+":18.BACKLIGHT").State(backlight);
var x = dom.GetObject("BidCos-RF."+value+":18.SUBMIT").State(1);
value = "GEQ0033567"; !- Grün
var x = dom.GetObject("BidCos-RF."+value+":18.TEXT").State(text);
var x = dom.GetObject("BidCos-RF."+value+":18.BACKLIGHT").State(backlight);
var x = dom.GetObject("BidCos-RF."+value+":18.SUBMIT").State(1);
Olaf