FHEM Forum

FHEM => Automatisierung => Thema gestartet von: Cyber1000 am 24 November 2018, 23:51:25

Titel: (Gelöst) Meldung, falls ein Device ausfällt
Beitrag von: Cyber1000 am 24 November 2018, 23:51:25
Hallo,

Habe einige Devices, welche spielt mal prinzipiell keine Rolle. Vor einiger Zeit ist mir ein Temperatursensor ausgefallen (Technoline), ist mir allerdings erst ein paar Tage später aufgefallen, der Batteriestatus war ja bis zur letzten Sendung ok, dann hatte der Sensor offensichtlich einen technischen Defekt und hat einfach nichts mehr gesendet.

Gibt es vielleicht die Möglichkeit ein notify zu erstellen, das die letzte Änderung aller Geräte überprüft (egal was sich ändert, es sollte sich nur irgendein reading ändern) und wenn die über einen bestimmten Zeitraum hinaus ist eine Meldung schreibt?

Etwa so (Achtung Pseudocode, den ich vom der Batteriemeldung im Wiki angepasst habe):

define notify_device_notresponding notify .*:LastChangeOfDevice { if ($EVENT > 24*3600) { \
  { FB_mail('recipient@internet.de', 'FHEM Gerätewarnung - Keine Rückmeldung', $NAME.': '.$EVENT)};; \
   Log 3, "$NAME : Keine Rückmeldung nach $EVENT s";; \
  } \
}


Oder eine andere Möglichkeit, ich hab zwar im Wiki und im Forum gesucht, aber möglicherweise geh ich auch von den falschen Ansätzen aus, hab zumindest nichts vernünftiges gefunden.
Hoffe das war verständlich.
Danke!
Titel: Antw:Meldung, falls ein Device ausfällt
Beitrag von: MadMax-FHEM am 25 November 2018, 00:04:31
Ein Notify wird schwierig:

auf welches RegEx soll es reagieren? Es müsste ein Reading geben das bei allen Geräten gleich ist o.ä.
Oder immer auf alles triggert: Systemlast...

Unterschiedliche Geräte haben unterschiedliche Update-Zyklen, das muss ja dann beim jeweiligen Abfragen (z.B. mittels ReadingsAge) bekannt sein: evtl. userAttr wo das dann je Gerät eingestellt und ausgelesen wird... (so ist es im HomeMatic-Umfeld: ActionDetector)

Aber es gibt ein Modul was sowas tut/tun kann: https://forum.fhem.de/index.php?topic=68765.0

Alternative: ein regelmäßiges "at" was dann eben prüft.
Aber auch dazu: es muss wissen welches Reading bei welchem Gerät eine entsprechende Aussage liefert und welchen Updatezyklus das hat.

Ich habe mir sowas für meine ZWave gebaut, da man da den Zyklus auslesen kann (wakeup) und ich einfach das battery-Reading nehme weil ich das regelmäßig "abfrage"...
...und ich nur Batterie-ZWave-Geräte habe...
Bei HomeMatic wie gesagt habe ich den ActionDetector und das zusammen reicht mir...

Gruß, Joachim
Titel: Antw:Meldung, falls ein Device ausfällt
Beitrag von: Cyber1000 am 25 November 2018, 01:31:44
Hi,
vielen Dank für die schnelle (späte :-) Antwort)
Ja auf das Problem mit dem notify bin ich jetzt selbst auch gekommen, es ist ja ein zeitliches Problem und keine Status Änderung.

Ich hab mir jetzt mal sowas zusammengebastelt mit einem at


defmod Timedcheck_DeviceError at *01:03:00 { \
    my @devices=devspec2array("(Steckdose_.*)");; \
    my $device;; \
    foreach $device (@devices) { \
          my $lastRead=time()-time_str2num(OldTimestamp($device));; \
          if ( $lastRead > 600 ) { \
              sendMessage('Gerätewarnung', 'Gerät "'.$device.'" hat sich seit '.$lastRead.' s nicht gemeldet!');; \
              Log 3, "$device : Keine Meldung seit $lastRead s";; \
          } \
    } \
}


Der Reihe nach:

Das ganze muss sich jetzt nur noch in der Praxis bewähren: mit devspec2array kann man relativ viel machen, z.B. auch nach Type oder anderen Sachen filtern, muss ich mir noch genauer ansehen, sollte also auch möglich sein alle Fibaros oder Zwave Geräte zu filtern. Oder man sucht alle, die ein attribut "power/energy" haben. Also vermutlich werden das dann im Endeffekt mehrere At-Befehle. Da die meisten Energie-Geräte zumindest alle Stunde mal einen Energiewert senden, würde ein Wert größer als 2-3 Stunden ohne Daten reichen für eine Fehlernachricht. Für meine Steckdosen reicht mir eigentlich wenn das alle 24h Stunden geprüft wird (nicht so tragisch wenn mir einen Tag mal die Waschmaschine nicht schreibt, dass sie fertig ist), also solangs nicht was kritisches wie Kühlschrank oder dgl ist.

Muss ich wohl noch ein wenig basteln, aber danke für deine Hinweise!
Titel: Antw:Meldung, falls ein Device ausfällt
Beitrag von: Tom111 am 25 November 2018, 05:05:15
Den Code aus folgendem Thread benutze ich schon seit Jahren und bin mehr als zufrieden damit!
https://forum.fhem.de/index.php/topic,15173.msg261574.html#msg261574 (https://forum.fhem.de/index.php/topic,15173.msg261574.html#msg261574)
Titel: Antw:Meldung, falls ein Device ausfällt
Beitrag von: Cyber1000 am 25 November 2018, 08:13:56
Danke ja das klingt auch gut, werd zwar vermutlich bei OldTimestamp bleiben, weil das eben alles was geloggt wird einschließt und nicht nur den State (bei Fibaro Steckdosen steht da immer on oder off drin, also bei meinem Kühlschrank steht für ReadingsTimestamp von state ein Datum von vor 2 Monaten drin, weil ich da vielleicht mal explizit auf on geklickt hab, aber off kann ich den auch gar nicht schalten - macht auch keinen Sinn bei einem Kühlgerät - steckerseitig gesperrt)

Aber den Rest werd ich mal so verwenden und an meine Bedürfnisse adaptieren.
Danke!
Titel: Antw:Meldung, falls ein Device ausfällt
Beitrag von: binford6000 am 25 November 2018, 09:11:47
Moin,
vielleicht kannst du das Modul Monitoring hier gebrauchen:
https://forum.fhem.de/index.php/topic,68765 (https://forum.fhem.de/index.php/topic,68765)

VG Sebastian
Titel: Antw:Meldung, falls ein Device ausfällt
Beitrag von: Cyber1000 am 26 November 2018, 00:30:42
Guter Tipp hab mal mein Battery-Monitoring auf diese Modul umgestellt, dort hab ichs auch mal mit einem dummy-device schnell testen können.

Activity ist jetzt auch eingerichtet, muss aber sagen, das modul ist ziemlich greedy, gut man gibt ja auch .*:.* als DEF an, hab jetzt schon einiges geblacklistet, z.B. global und meine notifies. Wenn ich die abspeicher wird ein event warningAdd_notify_xyz und errorAdd_notify_xyz erzeugt, was nicht gerade sinnvoll ist, wenn ich erfahre, dass meine notifies 12/24 Stunden nicht geändert wurden.
Ich muss mich da vermutlich noch ein wenig spielen und schaun, was da rauskommt, eventuell mal fhem updaten, ich muss gestehn, mein Modul (und fhem) sind noch nicht auf Letztstand.

Danke für den Tipp, das Modul erfüllt meine Anforderungen!
Titel: Antw:Meldung, falls ein Device ausfällt
Beitrag von: Cyber1000 am 28 November 2018, 21:10:38
Ja das funktioniert ganz gut, verwende jetzt für folgende Punkte das Modul:

Ich markier das mal als gelöst.