Auslösenden Rauchmelder finden

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

Moderator: Co-Administratoren

Goofy77
Beiträge: 39
Registriert: 07.08.2011, 14:51

Re: Auslösenden Rauchmelder finden

Beitrag von Goofy77 » 25.01.2012, 10:29

Hallo,

ich habe dieses Script seit vorgestern installiert, der erste Funktionstest war auch ok.

Jetzt hatte ich sowohl gestern als auch heute immer zur gleichen Zeit eine Fake Email mit Rauchalarm!!!Es steht aber auch kein Rauchmelder drin, ausgelöst hat auch keiner (bin zuhause... :D )....

hat einer eine Idee woran das liegen kann? Ist blöd wenn ich wieder arbeiten gehe und nicht weiss ob das jetzt n Fehler ist oder ob es wirklich brennt.
+++ Anfänger +++

bisher: 12x Funk-Jalousieaktor Unterputz Taster, 3x Rauchmelder, 1x Aussentemp,
3x Wassermelder

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

Re: Auslösenden Rauchmelder finden

Beitrag von ong » 25.01.2012, 17:59

Hallo,

hast du das hier angepasst?:

Code: Alles auswählen

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

Welche Bedingung hast du denn (noch) gesetzt die bestimmt wann das Script ausgeführt werden soll?

Olaf
* ca. 70 Geräte (alle Wireless, Stand 2019/2013) *
* Datenbankentwicklung *
* Individuell, Qualitativ, Regional *
* https://datenbank-projekt.de *

Goofy77
Beiträge: 39
Registriert: 07.08.2011, 14:51

Re: Auslösenden Rauchmelder finden

Beitrag von Goofy77 » 25.01.2012, 18:24

Hallo,

ich habe das Script von Homatic inside genommen und nicht verändert:

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 Email Programm habe ich ebenso übernommen. Gestern beim " Rauchtest" hat es ja auch funktioniert.
+++ Anfänger +++

bisher: 12x Funk-Jalousieaktor Unterputz Taster, 3x Rauchmelder, 1x Aussentemp,
3x Wassermelder

Goofy77
Beiträge: 39
Registriert: 07.08.2011, 14:51

Re: Auslösenden Rauchmelder finden

Beitrag von Goofy77 » 26.01.2012, 10:05

Guten Morgen,

heute morgen kam wieder die Mail genau um 9.50 Uhr das ein Rauchalarm vorliegt. Ich finde aber keine Fehler... Mein Programm versuche ich mal als Anhang anzufügen...
Dateianhänge
CCU.jpg
+++ Anfänger +++

bisher: 12x Funk-Jalousieaktor Unterputz Taster, 3x Rauchmelder, 1x Aussentemp,
3x Wassermelder

klassisch
Beiträge: 3974
Registriert: 24.03.2011, 04:32
System: Alternative CCU (auf Basis OCCU)
Hat sich bedankt: 110 Mal
Danksagung erhalten: 71 Mal

Re: Auslösenden Rauchmelder finden

Beitrag von klassisch » 30.04.2012, 22:28

Vielen Dank, owagner für das Script, sehr hilfreich.

madspock
Beiträge: 54
Registriert: 08.03.2012, 17:31

Re: Auslösenden Rauchmelder finden

Beitrag von madspock » 14.07.2012, 14:12

Hallo,
ich habe es schon an anderer Stelle probiert, leider habe ich keine Antwort bekommen.

Ich habe ein Ferienhaus das ich ab und zu auch Freunden gebe. Um sicherzustellen, dass alle Türen zu sind bzw. um zu sehen, welche Türe gteöffnet wurde, möchte ich die gleiche Funtkion wie bei den Rauchmeldern nutzen um mir per Mail anzeigen zu lassen, welcher Tür-Drehgriffkontakt ausgelöst hat. Ich habe das in einem Programm mit zwei solcher Kontakte testen wollen. Nun dachte ich, ich könnte das selbe Rauchmelderscript nutzen. Ich habe es nur etwas umgeschrieben. Leider funktioniert es nicht. Vielleicht kann mir einer sagen, ob ich was falsch mache oder ob es einfach mit diesem Script bei den Tür-Drehgriffkontakten nicht geht.
Mein Script sieht so aus:
var sec=dom.GetObject("Verschluss");
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-RHS")
{
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 02 '"+list+"'",&stdout,&stderr);
}
Ausserdem das Bild zu meinem dazugehörigen Programm:
Türscript.jpg
Im Mailprogramm ist das wie folgt eingestellt:
Türscript 2.jpg
Türscript 3.jpg
Türscript 3.jpg (10.96 KiB) 4402 mal betrachtet
Die TCL Variable "set a1 [lindex $argv 1]" nutze ich allerdings auch im Rauchmelderscript. Ob es damit was zu tun hat, weiss ich nicht.
Vielleicht hat ja jemand eine Idee ? Wäre toll, wenn das klappt !
358 Kanäle in 175 Geräten
4x HM-LC-Sw4-SM, 3x HM-LC-Sw1-SM, 26x HM-Sec-RHS, 20x HM-Sec-SC, 2x HM-Sec-TiS, 1x HM-LC-Sw1-Pl, 5x HM-LC-Sw1-Pl-2, 1x HM-CCU-1, 7x HM-Sec-SD, 4x HM-WDS40-TH-I, 14x HM-CC-TC, 4x HM-Sec-WDS, 5x HM-Sen-MDIR-O, 4x HM-PB-4Dis-WM, 1x HM-RC-19-B, 1x HM-RC-12, 17x HM-LC-Bl1PBU-FM, 3x HM-LC-Sw2-FM, 8x HM-LC-Sw1-Pl, 1x HM-LC-Sw1-FM, 25x HM-LC-Sw1PBU-FM, 6x HM-SwI-3-FM, 7x HM-LC-Dim1TPBU-FM, 1x HM-PBI-4-FM, 1x HM-SCI-3-FM, 2x HM-LC-Sw4-DR, 1x HM-WDS100-C6-O

Benutzeravatar
JPS
Beiträge: 1093
Registriert: 07.08.2010, 22:51
System: Alternative CCU (auf Basis OCCU)
Hat sich bedankt: 8 Mal
Danksagung erhalten: 20 Mal
Kontaktdaten:

Re: Auslösenden Rauchmelder finden

Beitrag von JPS » 23.08.2012, 20:02

Ich habe das Script nun seit der Veröffentlichung in Nutzung. Gestern wurde erstmalig ein Rauchmelder ausgelöst und zwar durch meine Frau beim Staubsaugen. Meine Begeisterung für den Fehlalarm wurde von ihr zwar nicht wirklich geteilt, als ich sie unmittelbar nach der Auslösung fürsorglich anrief und ihr sagen konnte, wo genau der Alarm ausgelöst wurde aber immerhin, das Script funktioniert bestens.
Vielen Dank. :D
Verwendung meiner Hinweise und Skripte auf eigenes Risiko | Ich übernehme hierfür keinerlei Gewährleistung bzw. Haftung

klassisch
Beiträge: 3974
Registriert: 24.03.2011, 04:32
System: Alternative CCU (auf Basis OCCU)
Hat sich bedankt: 110 Mal
Danksagung erhalten: 71 Mal

Re: Auslösenden Rauchmelder finden

Beitrag von klassisch » 07.10.2012, 18:59

Hat zufällig schon jemand die Funktionalität in Richtung MP3 Funkgong erweitert? Wäre ja ganz praktisch, wenn man gleich im Klartext gesagt bekäme, welcher Rauchmelder bzw. welcher Raum zu inspizieren ist.

PS. Vielleicht in der Art: Wenn der auslösende RM gefunden ist, wird der zugehörige Raum zwischengespeichert.
Anschließend wird dem Raumspeicher per Listenvergleich die zugehörige Zahl des MP3-Files zugewiesen. Das wird dann dem MP3 Funkgong übergeben. Die Übergabe wird so lange wiederholt, bis der RM seine Auslösung zurücknimmt (oder nach 10 längstens min beendet).

Benutzeravatar
anli
Beiträge: 4326
Registriert: 10.06.2009, 14:01
Wohnort: 20 Min. nördlich von Hannover und bei Bremen
Hat sich bedankt: 1 Mal
Danksagung erhalten: 23 Mal
Kontaktdaten:

Re: Auslösenden Rauchmelder finden

Beitrag von anli » 25.11.2012, 00:12

ong hat geschrieben:Ich lasse stattdessen den Namen des Melders auf meine beiden Fernbedienungen ausgeben:
Meiner Meinung nach ist da ein Fehler an zwei Stellen im Skript: Statt + für die String-Concatenation verwendet HMScript die #. Es müsste m. E. so aussehen:

Code: Alles auswählen

var rauchmeldername;
integer length;

var text;
var sec=dom.GetObject("Rauchmelder");

text = "-HM-";

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(12,length-12); ! Kleine Anmerkung: Meine Rauchmelder heißen "rauchmelder_"

  text = rauchmeldername;
}

var backlight = 1;

!Auf welcher FB soll angezeigt werden?
var value;

value = "GEQ0033526";
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";
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);
Herzliche Grüße, anli

Alle Angaben ohne Gewähr und Haftung meinerseits. Verwendung der von mir zur Verfügung gestellten Downloads auf eigene Gefahr. Ich bitte um Verständnis, dass ich aus zeitlichen Gründen keine unaufgeforderte Hilfestellung per PN/Mail geben kann. Bitte allgemeine Fragen ins Forum stellen, hier können viele fähige User viel schneller helfen.

Homematic-Manager v2: einfaches Tool zum Erstellen von Direktverknüpfungen und Bearbeiten von Gerätenamen, -parametern etc. für Homematic und HomematicIP (Alternative diesbzgl. zur WebUI)

Einsteiger-Hilfeerweiterter Skript-Parser

mboh
Beiträge: 84
Registriert: 08.06.2007, 21:29
Hat sich bedankt: 1 Mal

Re: Auslösenden Rauchmelder finden und per MP3 Alarmmeldung

Beitrag von mboh » 14.04.2013, 21:00

Guten Abend,

um meine Brandmeldeanlage zu vervollständigen wollte ich auf Rauch erkannt auch noch das auf der 1.Seite stehende Skript mit einfügen.

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);
    }
in einem Beitrag habe ich noch was von einer Eintellung der Länge der Melderbezeichnung gelesen.
Muss ich da am Skript was Ändern? Melder heißen "Rauchmelder Zimmer Geschoß"

Kann mir als Laie auch jemand sagen wie ich das Skript am besten dahingehend aufmotze dass neben der Mail welcher Melder Alarmiert auch über den MP3 Gong auf dem für jeden Raum eine MP3 File Liegt für das Treppenhaus auch das entprechende File in 10 Fach- oder Endlosschleife bis Alarm Erloschen ist abspielt?!

Danke für Die Info wie ich das Skript abändern kann oder was zu Ergänzen ist.
Vielen Dank Für die Hilfe,

Grüße MBoh

Antworten

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