Rauchmeldertag

Heute ist wieder Freitag der 13. und außerdem Rauchmeldertag.
Infos hierzu: Rauchmelder retten Leben* - Rauchmelder (Brandmelder) und Brandschutz - www.rauchmelder-lebensretter.de
Da kommt natürlich die Frage auf: Wie geht es meinen Rauchmeldern? Melden Sie noch „Lebenszeichen“ an IP-Symcon?
Die Antwort liefert das folgende Skript.
Es überprüft die Status-Variable der einzelnen Rauchmelder nach der dem letzen empfangenen Wert.
Liegt dieser 4000 Sekunden zurück, wird eine Sprach-Meldung (Anlage) ausgegeben.
Das Skript wir stündlich ausgeführt und läßt sich auch einsetzen um Tür- Fensterkontakte oder Temperaturfühler zu überwachen.
Im $array = Array(… stehen die ID der jeweiligen Geräte und in der IF-Anweisung die zu überwachende Zeitspanne.

// Rauchmelder: Flur, Schlafen, Wohnen, Küche
$array = Array(27627, 22083, 56704, 39615);
$id_sound = 35352 /*[Media IR\Media Player Teufel]*/;

foreach($array as $item){
    //echo $item."
";
    $data =  IPS_GetVariable($item);
    $last_up = time()-($data['VariableUpdated']);
    //echo "Delta- T: $last_up
";
    if ($last_up > 4000){
       SetValue(59338 /*[Termine Wecker\Watch Dog Rauchmelder\Rauchmelder OK]*/, False);    // Störung Rauchmelder
        // hier kommen die weiteren Befehle rein > z.B.:
        WAC_SetVolume($id_sound ,60);
        WAC_PlayFile($id_sound , IPS_GetKernelDir()."sounds\\hinweis_2.wav");
        IPS_Sleep(2000);
        WAC_SetVolume($id_sound ,80);
        WAC_PlayFile($id_sound , IPS_GetKernelDir()."sounds\\rauchmelder.wav");
        IPS_Sleep(6000);
        WAC_PlayFile($id_sound , IPS_GetKernelDir()."sounds\\aktuell_im.wav");
        IPS_Sleep(2000);
        if ($item == 27627 /*[0_OG\Schlafen\Rauchmelder\Status]*/){
            WAC_PlayFile($id_sound , IPS_GetKernelDir()."sounds\\schlafzimmer.wav");
          }
          if ($item == 56704 /*[1_EG\Wohnzimmer\Rauchmelder\Status]*/){
            WAC_PlayFile($id_sound , IPS_GetKernelDir()."sounds\\wohnzimmer.wav");
          }
        return;
    }
}
 SetValue(59338 /*[Termine Wecker\Watch Dog Rauchmelder\Rauchmelder OK]*/, True);

MST

hi,
oh schöner skript :slight_smile:

wie bekomme ich denn raus zu welcher instanz die id des auslösenden status gehört?


		echo IPS_Get????????($data[VariableID]);

getLocation gibt mir leider ein bisschen viel aus.

… ganz einfach: echo $item."
";

Und hier noch etwas zum „Spielen“ > 22083 ist hier die Status-ID des Melders
Siehe auch: http://www.ip-symcon.de/service/dokumentation/befehlsreferenz/objektverwaltung/ips-getobject/


$id = 22083;      // Status ID des RM
$event = IPS_GetObject($id);
echo "Name: ". $event['ObjectName']."
";
$parent = $event['ParentID'];
$event = IPS_GetObject($parent);
echo "Objekt: ".$event['ObjectName'].".
";
$parent = $event['ParentID'];
$event = IPS_GetObject($parent);
echo "Ort: ".$event['ObjectName']."
";      //Kategorie
// nur zur Info es geht auch direkt ohne ein Array zu verwenden:
echo "Ort: ".IPS_GetName($parent)."
";

Und als Anlage noch einige Sounds.

MST

sounds.zip (232 KB)

Hi,

das hatte ich auch schon einkommentiert.
Dann bekomme ich aber nur die IDs der Statusvariable.
Mit „zu welcher instanz die auslösende id gehört“ meinte ich, welcher Name der
des auslösenden Rauchmelders ist.

So nach dem Motto:
„Hey, der Rauchmelder im Schlafzimmer hat sich schon lang nicht mehr gemeldet!“

IPS_GetName - IP-Symcon :: Automatisierungssoftware

paresy

ah. sehe gerade du erwähnst getObject.

da sollte ich mir das ausm array rausziehen können über die ParentID!

getName geht nicht… da bekomme ich „Status“ ausgegeben.
Aber ich brauch ja den Namen des Parents.
Ich kriegs bestimmt gleich hin.
Poste dann nochmal
Danke :slight_smile:

na. so gehts…

	
$object = IPS_GetObject($data[VariableID]);
echo IPS_GetName($object[ParentID]);

und wenn ich mir auch dein codebeispiel von oben näher angesehen hätte, hätte ich gemerkt, dass du die antwort schon gegeben hast…

mmmhhh.
bin gerade erst aufgestanden. sorry

Kennt eigentlich noch jemand ein paar schöne und nicht zu teure Funkrauchmelder? Müssen noch nicht mal unbedingt in die Haussteuerung zu integrieren sein. Hauptsache laut!

Hallo Horst,

Abus hat da glaube ich was im Angebot.

Hier

Nicht Funk
Brandschutz/Rauchmelder

Hi,

funktioniert das Script bei Euch?

Ich muss die Zeile:

$last_up = time()-($data[VariableUpdated]); 

in

$last_up = time()-($data['VariableUpdated']); 

ändern, damit es bei mir klappt. Eigentlich sollten die Scripte doch überall gleich funktionieren.

Ich wünsche einene schönen Tag.

Christoph.

Hallo Christoph,

danke für den Hinweis - [‚xyz‘] - so ist es korrekt.

MST

PS: allerdings funktioniert es auch ohne ’ ’ - PHP.ini Einstellungen abhängig > darum nicht „überall gleich“

Hallo,

ich hab das Ganze noch erweitert. Bei allen Rauchmeldern habe ich die Variable LastUp (float) angelegt.
Diese fülle ich generisch mit den Werten aus $last_up.


$object = IPS_GetObject($data[VariableID]);

//.......

//LastUp Variablen der Rauchmelder füllen
    $statusVariablenIDs = IPS_GetChildrenIDs($object[ParentID]);
    foreach ($statusVariablenIDs as $statusVariableID){
       $statusVariableName = IPS_GetName($statusVariableID);
       if ($statusVariableName=="LastUp")
       {
          SetValueFloat($statusVariableID,$last_up);
       }
    }

//.......

Hallo,
Ja .schöne Heimrauchmelder gibt es von detectomat,der für viele andere Firmen wie Gira,Berker etc die Melder produziert.Es gibt diese in 5 Designvarianten
und diese können mit Funk- oder Relaismodulen bestückt werden.Bei Interesse melden
ich bekomme über meine Firma großen Rabatt den ich auch weitergebe!
Gruß

Könntest Du mal einen Link posten

Grüße Ralf

Rauchwarnmelder - Detectomat |

Danke für die Info

weist Du welche davon IPS tauglich sind ?

Nein, leider nicht.

Hallo zusammen,

ich wollte das Script noch mal hoch holen da ich eine Idden Lücke habe.
Ich möchte meine Alarmmelder( Rauch, Wasser ) prüfen. Das funktioniert auch einwandfrei. Bei Alarm möchte ich eine SMS bekommen (externes Script aufrufen). Aber dann kommt mein Problem, ich möchte aber auch eine und zwar nur eine SMS bekommen wenn der Melder der vorher im Alarmzustand war wieder im Normalzustand ist.
Mit Array würde aber für jeden Melder eine SMS kommen.
Habt ihr da eine Idee?

Gruss
Frank