+ Antworten
Ergebnis 1 bis 7 von 7
  1. #1
    Registriert seit
    May 2018
    Ort
    Hamburg
    Beiträge
    8

    Lightbulb TimerPool-Events als Push-Nachricht versenden

    Hallo in die Runde,
    ich bin auf der Suche nach einer Möglichkeit, von IPS geloggte TimerPool-Events (Version 4.4) per Push-Nachricht oder per Mail zu versenden. Könnt' Ihr mir einen Tipp geben, wie man dazu am besten vorgeht?

    Danke Euch!!!

    Viele Grüße
    Detlefp

  2. #2
    Registriert seit
    Feb 2005
    Ort
    Lübeck
    Beiträge
    20,786

    Du meinst die gelben Fehlermeldungen im Message Log davon?

    paresy

  3. #3
    Registriert seit
    May 2018
    Ort
    Hamburg
    Beiträge
    8

    Zitat Zitat von paresy Beitrag anzeigen
    Du meinst die gelben Fehlermeldungen im Message Log davon?

    paresy
    hallo paresy,
    ja die gelben oder bei mir auch mal gern roten meldungen im message log. :-)

    danke dir,
    detlefp


    IPS4.4 mit Eaton xComfort

  4. #4
    Registriert seit
    Feb 2005
    Ort
    Lübeck
    Beiträge
    20,786

    Ich scanne mein Logfile jeden Tag kurz vor Mitternacht und sende dann ein Protokoll der Fehlermeldungen per Mail.

    PHP-Code:
    <?php

     
    //Suche nur ERROR und WARNINGS im Logfile
     
    $search = Array(
        
    "ERROR",
        
    "WARNING"
     
    );
     
     
    //Filter bestimmt Fehler, die nicht gemeldet werden sollen
     
    $filter = Array(
        
    "Fehler beim Senden des Befehls"
     
    );
     
     
    $errors searchError(IPS_GetLogDir()."logfile.log"$search$filter);

     if(
    sizeof($errors) > 0) {
        
    IPS_LogMessage("Errors found!""Send Mail with ".sizeof($errors)." errors");
        
    SMTP_SendMail(53274"Mein SmartHome"print_r($errorstrue));
     }

     function 
    searchError($filename$keywords$filter)
     {
       
    $result = Array();
        
    $handle fopen($filename"r");
        if (
    $handle) {
            while ((
    $buffer fgets($handle4096)) !== false) {
               foreach(
    $keywords as $searchStr)
               {
                    if(!(
    strpos($buffer$searchStr) === false))
                    {
                       
    $matchFilter false;
                       foreach(
    $filter as $str) {
                           if(
    strpos($buffer$str) !== false) {
                              
    $matchFilter true;
                                break;
                            }
                        }
                        if(!
    $matchFilter) {
                            
    $result[] = $buffer;
                        }
                        break;
                    }
                }
            }
            if (!
    feof($handle)) {
                echo 
    "Error: unexpected fgets() fail\n";
                return;
            }
            
    fclose($handle);
        }
        return 
    $result;
    }
    paresy

  5. #5
    Registriert seit
    May 2006
    Ort
    Hannover
    Beiträge
    3,041

    Schöner Ansatz, aber bei mir etwas erschreckendes Ergebnis seit Mitternacht 144 Treffer .

    Liegt aber scheinbar auch an der nicht so genauen Filterung, es werden auch Einträge mit WARNING oder ERROR im Text gesammelt.

    Aber das lässt sich ja einfach reduzieren, auch nicht 100%, aber etwas genauer

    Code:
    $search = Array(
        "| ERROR",
        "| WARNING"
     );
    Geändert von ralf (21.06.19 um 10:11 Uhr)
    MfG Ralf

  6. #6
    Registriert seit
    May 2018
    Ort
    Hamburg
    Beiträge
    8

    Zitat Zitat von paresy Beitrag anzeigen
    Ich scanne mein Logfile jeden Tag kurz vor Mitternacht und sende dann ein Protokoll der Fehlermeldungen per Mail.

    PHP-Code:
    <?php

     
    //Suche nur ERROR und WARNINGS im Logfile
     
    $search = Array(
        
    "ERROR",
        
    "WARNING"
     
    );
     
     
    //Filter bestimmt Fehler, die nicht gemeldet werden sollen
     
    $filter = Array(
        
    "Fehler beim Senden des Befehls"
     
    );
     
     
    $errors searchError(IPS_GetLogDir()."logfile.log"$search$filter);

     if(
    sizeof($errors) > 0) {
        
    IPS_LogMessage("Errors found!""Send Mail with ".sizeof($errors)." errors");
        
    SMTP_SendMail(53274"Mein SmartHome"print_r($errorstrue));
     }

     function 
    searchError($filename$keywords$filter)
     {
       
    $result = Array();
        
    $handle fopen($filename"r");
        if (
    $handle) {
            while ((
    $buffer fgets($handle4096)) !== false) {
               foreach(
    $keywords as $searchStr)
               {
                    if(!(
    strpos($buffer$searchStr) === false))
                    {
                       
    $matchFilter false;
                       foreach(
    $filter as $str) {
                           if(
    strpos($buffer$str) !== false) {
                              
    $matchFilter true;
                                break;
                            }
                        }
                        if(!
    $matchFilter) {
                            
    $result[] = $buffer;
                        }
                        break;
                    }
                }
            }
            if (!
    feof($handle)) {
                echo 
    "Error: unexpected fgets() fail\n";
                return;
            }
            
    fclose($handle);
        }
        return 
    $result;
    }
    paresy
    Hallo Paresy,
    danke für Deinen Tipp und das Skript.
    Bei mir kommen ab und an Fehler in der Kommunikation mit den Eaton ECIs vor, die aus Netzwerkstörungen resultieren. Darauf müsste ich zeitnah reagieren können. Gibt es eine Möglichkeit, auf LogEvents interaktiv zu reagieren sprich diese Events irgendwie direkt abzufangen und auszuwerten ohne Logfile-Scan? Oder würde ich beispielsweise einmal alle 30 min einen Logfile-Scan analog Deines Skriptes machen?

    Danke Dir,
    Detlef


    IPS4.4 mit Eaton xComfort

  7. #7
    Registriert seit
    Feb 2005
    Ort
    Lübeck
    Beiträge
    20,786

    Welche Fehler kommen denn genau? Macht es Sinn, dass du diese direkt im Skript abfängst?

    paresy

Ähnliche Themen

  1. Antworten: 0
    Letzter Beitrag: 11.03.18, 11:20
  2. Push Nachricht an ausgewähltes Gerät
    Von soenkefischer im Forum Skripte, PHP, SQL
    Antworten: 1
    Letzter Beitrag: 24.04.17, 14:46
  3. Voice Nachricht über fritzbox versenden...
    Von Gosef im Forum Audio & Video, TK-Anlagen, ISDN
    Antworten: 0
    Letzter Beitrag: 07.02.16, 18:33
  4. Push Nachricht ohne Funktion
    Von BtheB im Forum Mobile (iOS/Android)
    Antworten: 3
    Letzter Beitrag: 03.05.15, 11:46
  5. Push-Nachricht in IPSView
    Von UH368 im Forum IPSStudio & IPSView
    Antworten: 2
    Letzter Beitrag: 22.04.14, 17:56