FHEM Forum

FHEM => Automatisierung => Thema gestartet von: fh555 am 29 September 2015, 22:23:57

Titel: brauche Hilfe um den Ausfall von Sensoren zu erkennen
Beitrag von: fh555 am 29 September 2015, 22:23:57
Hi,
ich möchte gerne einige wichtige Sensoren überwachen, wie z. Bsp. Temperatursensoren von Gefrierschränken, da ich nicht täglich in das FHEM schaue um zu sehen, ob noch alles ok ist. Der FHEM Server soll einen ja Arbeit abnehmen bzw. automatisch auf Ereignisse reagieren.

Momentan habe ich eine Temperaturkontrolle, welche mich per Mail informiert, wenn die Temperatur ein kritischen Zustand erreicht mit DOIF realisiert.

Jetzt suche ich noch eine Möglichkeit, die Sensoren selber zu überwachen, damit ich erkennen kann, dass keiner ausgefallen ist.
lt. SuFu gibt es wohl ein Modul 98_DeviceMonitor. Im FHEM Ordner habe ich ihn leider nicht gefunden. In den Google Groups sind auch nur Einträge von 2012. Ist das Modul noch aktuell und verfügbar?

Gibt es andere Möglichkeiten die Sache zu lösen?
Evtl. die Sensoren in eine Gruppe Zusammenfassen, wenn einer aus der Gruppe innerhalb einer Stunde nicht antwortet, dann sende mir eine E-Mail.

Es ist also nicht relevant, was der Sensor schickt, sondern nur das er "etwas" schickt.
Gibt es vielleicht ein anderes eingeplegtes Modul oder eine Funktion, welche für die Aufgabe geeignet ist?

Zuerst dachte ich an watchdog, aber dann las ich in der Referenz "(ein Watchdog, verantwortlich für mehrere Devices) ist derzeit nicht möglich." also auch "Essig".

Gruß Jens
Titel: Antw:brauche Hilfe um den Ausfall von Sensoren zu erkennen
Beitrag von: justme1968 am 29 September 2015, 22:26:54
DeviceMonitor liegt im contrib verzeichnis. du musst das modul von da nach FHEM kopieren.

für homematic gibt es noch den ActionDetector.

gruss
  andre
Titel: Antw:brauche Hilfe um den Ausfall von Sensoren zu erkennen
Beitrag von: fh555 am 29 September 2015, 22:32:57
Hi, justme1968

ZitatDeviceMonitor liegt im contrib verzeichnis

Bei mir leider nicht  ???

Ich überwache die Temperaturen mit den Technotrend TX29-DTH Sensoren.

Sorry, habs gefunden, hatte gleich nach den Modulen geschaut aber es gibt ja noch eine Unterverzeichnis DeviceMonitor
:-)

Gibt es eine Hilfeseite oder Beschreibung zu diesen Modul?
In der Referenz ist das Modul leider nicht aufgeführt.
Titel: Antw:brauche Hilfe um den Ausfall von Sensoren zu erkennen
Beitrag von: fh555 am 29 September 2015, 23:00:23
Habe es jetzt soweit hinbekommen, aber wie löse ich jetzt ein E-Mail verssand aus?  :o

Gruß Jens
Titel: Antw:brauche Hilfe um den Ausfall von Sensoren zu erkennen
Beitrag von: Schlimbo am 30 September 2015, 00:32:21
Hallo zusammen,

Ich habe als Vorlage die im Wiki beschrieben Methode "Geräte ohne Batteriestatus" genutzt: http://fhemwiki.de/wiki/Batterie%C3%BCberwachung (http://fhemwiki.de/wiki/Batterie%C3%BCberwachung)

Habe aber den Code etwas angepasst um nicht für jedes Gerät einen eigenen Aufruf machen zu müssen.
Es wird jetzt für jeden Gerätetyp nur ein Aufruf benötigen, das Script sucht daraufhin alle Geräte dieses Typs
und überprüft für für alle den letzten Empfang.

# Empfang überwachen MAX
define MAX_check at *09:00:00 {check_if_alive("MAX", 12)}
# Empfang überwachen LaCrosse
define LaCrosse_check at *09:01:00 {check_if_alive("LaCrosse", 12)}


"check_if_alive " in der My_99myUtils sieht so aus:
# Funk Devices überwachen
sub check_if_alive($$) {
  # Expects:
  # 1. Devicename to be checked
  # 2. Age in hours, after the expiry of which with no new state the device will be considered as dead.
  # Returns:
  # 0 -> Device dead
  # 1 -> Device alive
  # 2 -> Error
  my ($DeviceType,$hours_threshold) = @_;
  my $now = time;

  foreach my $dev (sort keys %defs) {
    if($defs{$dev}{TYPE} eq "$DeviceType") {
     Log 5, ("check_if_alive: check Device: $defs{$dev}{NAME}");
     my $Timestamp = ReadingsTimestamp($defs{$dev}{NAME},"state","0");
     if ($Timestamp ne "0") {
      my @splitdatetime = split(/ /,$Timestamp);
      my @splitdate = split(/-/, $splitdatetime[0]);
      my @splittime = split(/:/, $splitdatetime[1]);
      my $last_state_time =  timelocal($splittime[2], $splittime[1], $splittime[0], $splitdate[2], $splitdate[1]-1, $splitdate[0]);
      my $age_in_hours = ($now - $last_state_time) / 3600;

      if ($age_in_hours > $hours_threshold) {
       fhem ("msg push |FHEM Empfangsproblem| $defs{$dev}{NAME} sendet nicht! Letzter Empfang vor $age_in_hours Stunden");
       Log 1, ("check_if_alive: $defs{$dev}{NAME} dead, last state was $age_in_hours hours ago");
      }
     } else {Log 4, ("check_if_alive: $defs{$dev}{NAME} hat keinen Timestamp")};
    }
  }
}


Die push Meldung Versenden ich über das "msg" Modul :http://forum.fhem.de/index.php/topic,39983.msg322439.html#top (http://forum.fhem.de/index.php/topic,39983.msg322439.html#top)

Gruß Schlimbo
Titel: Antw:brauche Hilfe um den Ausfall von Sensoren zu erkennen
Beitrag von: fh555 am 30 September 2015, 00:47:09
Danke Schlimbo,
ich werde es auf jeden Fall mit deiner Methode auch einmal versuchen.  ;D

Meine ersten Gehversuche mit notify und der E-Mail Übertragen funktionieren jetzt nach Stunden auch  :(
zwar noch nicht so wie ich will, aber mal sehen, was ich noch zu Stande bringe.
Titel: Antw:brauche Hilfe um den Ausfall von Sensoren zu erkennen
Beitrag von: Damian am 30 September 2015, 16:00:54
Zitat von: fh555 am 30 September 2015, 00:47:09
Danke Schlimbo,
ich werde es auf jeden Fall mit deiner Methode auch einmal versuchen.  ;D

Meine ersten Gehversuche mit notify und der E-Mail Übertragen funktionieren jetzt nach Stunden auch  :(
zwar noch nicht so wie ich will, aber mal sehen, was ich noch zu Stande bringe.

Da du ja offenbar ohnehin DOIF benutzt, kannst ja auch den Dreizeiler für die Erkennung von Sensoren ausprobieren, siehe hier:

http://forum.fhem.de/index.php/topic,41177.msg337733.html#msg337733

Gruß

Damian

Titel: Antw:brauche Hilfe um den Ausfall von Sensoren zu erkennen
Beitrag von: fh555 am 01 Oktober 2015, 20:08:11
Danke Damian, werde ich mir auch mal Anschauen  ;D