Auslösenden Rauchmelder finden

Problemlösungen und Hinweise von allgemeinem Interesse zur Haussteuerung mit HomeMatic

Moderator: Co-Administratoren

Benutzeravatar
owagner
(verstorben)
Beiträge: 1193
Registriert: 13.05.2008, 19:49
Danksagung erhalten: 1 Mal

Auslösenden Rauchmelder finden

Beitrag von owagner » 25.05.2010, 19:31

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
Zuletzt geändert von owagner am 25.05.2010, 21:35, insgesamt 1-mal geändert.

albae
Beiträge: 10
Registriert: 03.01.2009, 17:56

Re: Auslösenden Rauchmelder finden

Beitrag von albae » 25.05.2010, 20:32

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

Benutzeravatar
owagner
(verstorben)
Beiträge: 1193
Registriert: 13.05.2008, 19:49
Danksagung erhalten: 1 Mal

Re: Auslösenden Rauchmelder finden

Beitrag von owagner » 25.05.2010, 21:22

So z.B: (Achtung, im Bild nach unten scrollen)
email1.gif
email1.gif (10.56 KiB) 20066 mal betrachtet
email2.gif
email2.gif (11.51 KiB) 20066 mal betrachtet

jojo8897
Beiträge: 47
Registriert: 27.08.2010, 18:43

Re: Auslösenden Rauchmelder finden

Beitrag von jojo8897 » 07.09.2010, 17:36

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

Arminus
Beiträge: 33
Registriert: 27.08.2010, 16:16

Re: Auslösenden Rauchmelder finden

Beitrag von Arminus » 18.09.2010, 18:06

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

Benutzeravatar
owagner
(verstorben)
Beiträge: 1193
Registriert: 13.05.2008, 19:49
Danksagung erhalten: 1 Mal

Re: Auslösenden Rauchmelder finden

Beitrag von owagner » 20.09.2010, 13:18

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

Arminus
Beiträge: 33
Registriert: 27.08.2010, 16:16

Re: Auslösenden Rauchmelder finden

Beitrag von Arminus » 24.09.2010, 16:13

Genau da liegt das Script:
2010-09-24_161005.png
2010-09-24_161005.png (9.58 KiB) 19725 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

Benutzeravatar
owagner
(verstorben)
Beiträge: 1193
Registriert: 13.05.2008, 19:49
Danksagung erhalten: 1 Mal

Re: Auslösenden Rauchmelder finden

Beitrag von owagner » 24.09.2010, 16:53

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...

dreamscout
Beiträge: 15
Registriert: 18.12.2010, 12:01
Wohnort: nähe München

Re: Auslösenden Rauchmelder finden

Beitrag von dreamscout » 13.09.2011, 20:54

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

ong
Beiträge: 146
Registriert: 25.07.2010, 15:20
Danksagung erhalten: 1 Mal

Re: Auslösenden Rauchmelder finden

Beitrag von ong » 25.09.2011, 20:09

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
* ca. 70 Geräte (alle Wireless, Stand 2019/2013) *
* Datenbankentwicklung *
* Individuell, Qualitativ, Regional *
* https://datenbank-projekt.de *

Antworten

Zurück zu „HomeMatic Tipps & Tricks - keine Fragen!“