+ Antworten
Seite 1 von 4 1 2 3 ... LetzteLetzte
Ergebnis 1 bis 10 von 34
  1. #1
    Registriert seit
    Feb 2005
    Ort
    Sarkwitz
    Beiträge
    3,676

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

    PHP-Code:
    // Rauchmelder: Flur, Schlafen, Wohnen, Küche
    $array = Array(27627220835670439615);
    $id_sound 35352 /*[Media IR\Media Player Teufel]*/;

    foreach(
    $array as $item){
        
    //echo $item."\n";
        
    $data =  IPS_GetVariable($item);
        
    $last_up time()-($data['VariableUpdated']);
        
    //echo "Delta- T: $last_up\n";
        
    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
    Geändert von RWN (13.12.10 um 15:38 Uhr)

  2. #2
    Registriert seit
    Feb 2009
    Ort
    Hannover
    Beiträge
    327

    hi,
    oh schöner skript :-)

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

    PHP-Code:
            echo IPS_Get????????($data[VariableID]); 
    getLocation gibt mir leider ein bisschen viel aus.

  3. #3
    Registriert seit
    Feb 2005
    Ort
    Sarkwitz
    Beiträge
    3,676

    ... ganz einfach: echo $item."\n";

    Und hier noch etwas zum "Spielen" > 22083 ist hier die Status-ID des Melders
    Siehe auch: http://www.ip-symcon.de/service/doku...ips-getobject/
    PHP-Code:
    $id 22083;      // Status ID des RM
    $event IPS_GetObject($id);
    echo 
    "Name: "$event['ObjectName']."\n";
    $parent $event['ParentID'];
    $event IPS_GetObject($parent);
    echo 
    "Objekt: ".$event['ObjectName'].".\n";
    $parent $event['ParentID'];
    $event IPS_GetObject($parent);
    echo 
    "Ort: ".$event['ObjectName']."\n";      //Kategorie
    // nur zur Info es geht auch direkt ohne ein Array zu verwenden:
    echo "Ort: ".IPS_GetName($parent)."\n"
    Und als Anlage noch einige Sounds.

    MST
    Geändert von steiner (15.03.09 um 14:48 Uhr)

  4. #4
    Registriert seit
    Feb 2009
    Ort
    Hannover
    Beiträge
    327

    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!"

  5. #5
    Registriert seit
    Feb 2005
    Ort
    Lübeck
    Beiträge
    22,191

  6. #6
    Registriert seit
    Feb 2009
    Ort
    Hannover
    Beiträge
    327

    ah. sehe gerade du erwähnst getObject.

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

  7. #7
    Registriert seit
    Feb 2009
    Ort
    Hannover
    Beiträge
    327

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

  8. #8
    Registriert seit
    Feb 2009
    Ort
    Hannover
    Beiträge
    327

    na. so gehts...

    PHP-Code:
    $object IPS_GetObject($data[VariableID]);
    echo 
    IPS_GetName($object[ParentID]); 

  9. #9
    Registriert seit
    Feb 2009
    Ort
    Hannover
    Beiträge
    327

    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

  10. #10
    Registriert seit
    Aug 2008
    Ort
    Sereetz
    Beiträge
    1,649

    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!
    Horst