FHEM Forum

FHEM => Anfängerfragen => Thema gestartet von: thunder1902 am 02 August 2016, 15:23:59

Titel: ActionDetector für Nicht-Homematic-Sensoren
Beitrag von: thunder1902 am 02 August 2016, 15:23:59
Hallo!

Gibt es in Fhem so was ähnliches wie den ActionDetector für Nicht-Homematic-Geräte? Möchte wissen, wenn meine batteriebetriebenen MySensors Sensoren ausfallen..

Danke schonmal!
Titel: Antw:ActionDetector für Nicht-Homematic-Sensoren
Beitrag von: justme1968 am 02 August 2016, 15:27:38
DeviceMonitor in contrib.

gruss
  andre
Titel: Antw:ActionDetector für Nicht-Homematic-Sensoren
Beitrag von: thunder1902 am 02 August 2016, 15:33:53
@Andre: SUPER DANKE!! Genau das was ich gesucht hab!
Titel: Antw:ActionDetector für Nicht-Homematic-Sensoren
Beitrag von: ioT4db am 20 Februar 2017, 14:11:54
Zitat von: justme1968 am 02 August 2016, 15:27:38
DeviceMonitor in contrib.

gruss
  andre
Hallo Andre,
hast Du Erfahrung mit dem 98_DeviceMonitor.pm?

Das Modul scheint Events zu generieren, wenn es "alive" setzt. Nur bekommt das weder ein DOIF oder NOTIFY mit!?

Hier habe ich das Problem auch schon detailierter geschildert https://forum.fhem.de/index.php/topic,34452.msg587119.html#msg587119 leider ohne Erfolg.

Vielleicht hast Du noch eine Idee dazu?

Ich finds mysteriös, da ein Ereignis im EventMonitor doch reichen sollte oder muß ein Modul noch anderen Trigger, vlt. im Hintergrund, erzeugen?

VG
Daniel
Titel: Antw:ActionDetector für Nicht-Homematic-Sensoren
Beitrag von: Thorsten Pferdekaemper am 20 Februar 2017, 15:46:58
Zitat von: friesenjung am 20 Februar 2017, 14:11:54Das Modul scheint Events zu generieren, wenn es "alive" setzt. Nur bekommt das weder ein DOIF oder NOTIFY mit!?
Also wenn der Event Monitor was mitbekommt, dann muss es auch in notify gehen.
Gib uns doch mal einen Event-Monitor-Auszug und Deine notify-Definition.
Gruß,
   Thorsten
Titel: Antw:ActionDetector für Nicht-Homematic-Sensoren
Beitrag von: ioT4db am 20 Februar 2017, 20:32:59
Hi Thorsten,

schön von Dir zu hören, ich glaub nämlich langsam ich bin bekloppt  ???

hier der Auszug aus dem Event-Monitor:

und die Notify's:

2017-02-20 20:22:59 dummy TestPush6 health_state: dead
2017-02-20 20:23:12 dummy TestPush6 on
2017-02-20 20:23:12 dummy TestPush6 health_state: alive


der geht:
define NF_AlarmDeviceDead notify .*health_state:.*dead.* setreading TestPush6 ActivityNF TestAlive

der nicht:
define NF_AlarmDeviceDead notify .*health_state:.*alive.* setreading TestPush6 ActivityNF TestAlive

Ist "alive" irgendwie Systemseitig reserviert? Ich verstehs nich...

VG
Daniel
Titel: Antw:ActionDetector für Nicht-Homematic-Sensoren
Beitrag von: Thorsten Pferdekaemper am 20 Februar 2017, 22:46:21
Hi,
ich glaube nicht, dass da irgendwas reserviert ist.
Du versuchst da aber nicht wirklich zwei unterschiedliche notifies gleichzeitig mit demselben Namen zu haben, oder?
Gruß,
   Thorsten
Titel: Antw:ActionDetector für Nicht-Homematic-Sensoren
Beitrag von: ioT4db am 20 Februar 2017, 22:54:02
Hi. Nein, ist nur beispielhaft! Habe nur 1 Notify. Da tausche ich zum Test alive gegen dead bzw. umgekehrt.

VG


Gesendet von iPhone mit Tapatalk
Titel: Antw:ActionDetector für Nicht-Homematic-Sensoren
Beitrag von: Thorsten Pferdekaemper am 21 Februar 2017, 07:57:43
Sehr, sehr seltsam. Könntest Du mal ein notify ganz ohne den Teil machen und schauen, ob das triggert?
Also in etwa so:

define NF_AlarmDeviceDead notify .*health_state:.* setreading TestPush6 ActivityNF $EVENT

oder auch

define NF_AlarmDeviceDead notify TestPush6:health_state:.* setreading TestPush6 ActivityNF $EVENT

Dann kann man vielleicht sehen, ob as überhaupt nicht kommt oder ob es irgendwie an der RegEx liegt.
Gruß,
   Thorsten
Titel: Antw:ActionDetector für Nicht-Homematic-Sensoren
Beitrag von: ioT4db am 21 Februar 2017, 11:02:40
Hi,
folgende Events werden durch das Notify bzw. nicht erkannt (in Variable $EVENT)

im Event-Monitor: "health_state: dead"
in $EVENT: "health_state: dead" > so soll es sein

ABER

im Event-Monitor: "health_state: alive"
in $EVENT: nix, nada, niente :(
>der Reading im Dummy wird hier nicht mal aktualisiert!

Das gilt für beide Notify's, die Du mir gegeben hast.

rätselhaft, das muss doch irdgendeinen Grund haben...

VG
Titel: Antw:ActionDetector für Nicht-Homematic-Sensoren
Beitrag von: Thorsten Pferdekaemper am 21 Februar 2017, 11:54:07
Hi,
also was auffällt: In 98_DeviceMonitor.pm werden nicht die üblichen Routinen zum Ändern eines Readings verwendet. Ich weiß jetzt aber nicht, warum das den Event Monitor nicht stört, wohl aber Dein notify.
Hast Du mal global verbose auf 5 gesetzt und ins Log geschaut? Es gibt in der DoTrigger-Routine in fhem.pl ein paar Debug-Ausgaben.
Außerdem: Du hast nicht zufällig irgendwo eine eventMap gesetzt, oder?
Gruß,
   Thorsten 
Titel: Antw:ActionDetector für Nicht-Homematic-Sensoren
Beitrag von: ioT4db am 21 Februar 2017, 12:40:12
mh. ok,

bei Verbose 5 bekommt das Log auch nichts vom "health_state" mit:

2017.02.21 12:21:54 4: WEB_192.168.41.202_60325 POST /fhem?cmd.TestPush6=set%20TestPush6%20on&fwcsrf=fhem_381517522388211&XHR=1&fw_id=1643; BUFLEN:0
2017.02.21 12:21:54 5: Cmd: >set TestPush6 on<
2017.02.21 12:21:54 4: dummy set TestPush6 on
2017.02.21 12:21:54 5: Starting notify loop for TestPush6, 1 event(s), first is on
2017.02.21 12:21:54 5: createNotifyHash
2017.02.21 12:21:54 5: Aktivitaetsstatus: not on any display, ignoring notify
2017.02.21 12:21:54 4: DbLog DBLogging -> ################################################################
2017.02.21 12:21:54 4: DbLog DBLogging -> ###              start of new Logcycle                       ###
2017.02.21 12:21:54 4: DbLog DBLogging -> ################################################################
2017.02.21 12:21:54 4: DbLog DBLogging -> amount of events received: 1 for device: TestPush6
2017.02.21 12:21:54 4: DbLog DBLogging -> check Device: TestPush6 , Event: on
2017.02.21 12:21:54 5: Triggering PCA301.ntfy
2017.02.21 12:21:54 4: PCA301.ntfy exec {if($TYPE eq 'PCA301') {PCA301_check($NAME,$EVENT)}}
2017.02.21 12:21:54 5: Cmd: >{if($TYPE eq 'PCA301') {PCA301_check($NAME,$EVENT)}}<
2017.02.21 12:21:54 5: battStatus: not on any display, ignoring notify
2017.02.21 12:21:54 5: End notify loop for TestPush6
2017.02.21 12:21:54 4: name: /fhem?cmd.TestPush6=set%20TestPush6%20on&fwcsrf=fhem_381517522388211&XHR=1&fw_id=1643 / RL:20 / text/plain; charset=UTF-8 / Content-Encoding: gzip


EventMap hab ich keins gesetzt.

Kann man die Routinen "einfach austauschen"?
Der Author des Moduls scheint auch nicht mehr aktiv zu sein. Bis dato hat er mir jedenfalls noch nicht geantwortet.

VG
Titel: Antw:ActionDetector für Nicht-Homematic-Sensoren
Beitrag von: Thorsten Pferdekaemper am 21 Februar 2017, 18:11:33
Hi,
klar, man kann alles ändern. Aber man sollte schon wissen, was...

Aktivitaetsstatus: not on any display, ignoring notify

Da gibt's nochwas mit battStatus. Was sind denn das für Devices?
Gruß,
   Thorsten
Titel: Antw:ActionDetector für Nicht-Homematic-Sensoren
Beitrag von: ioT4db am 21 Februar 2017, 21:57:53
Zitat von: Thorsten Pferdekaemper am 21 Februar 2017, 18:11:33
Hi,
klar, man kann alles ändern. Aber man sollte schon wissen, was...
da brauch ich Unterstützung. allein reicht mein Perl-Wissen leider nicht...

Ist doch eigentlich ein tolles Modul, weiß gar nicht warum das so wenige nutzen...

Zitat von: Thorsten Pferdekaemper am 21 Februar 2017, 18:11:33
Da gibt's nochwas mit battStatus. Was sind denn das für Devices?
ich hab jetzt alles durchforstet was dafür in Betracht kommen könnte, aber ehrlich gesagt hab ich keine Ahnung woher das kommt.

Ich habe Homematic-Devices und Lacross-Sensoren, die Ihren Batterie-Status melden, aber aus den Modulen scheint die Meldung nicht zu kommen  :-\

VG
Titel: Antw:ActionDetector für Nicht-Homematic-Sensoren
Beitrag von: Thorsten Pferdekaemper am 21 Februar 2017, 23:14:24
Zitat von: friesenjung am 21 Februar 2017, 21:57:53Ist doch eigentlich ein tolles Modul, weiß gar nicht warum das so wenige nutzen...
Vielleicht weil es nicht gescheit funktioniert?
Ich glaube, dass man das ganze (also das was das Modul macht) mit einem etwas komplexeren notify hinbekommen müsste: Auf alle Events triggern lassen und ein Reading zum Device auf "alive" setzen. Außerdem (innerhalb des notify) mit defmod ein "at" anlegen, das dasselbe Reading auf "dead" setzt. Fertig. Die Performance könnte ein bisschen leiden, aber das liegt in der Natur dieser Funktionalität. 

Zitat
ich hab jetzt alles durchforstet was dafür in Betracht kommen könnte, aber ehrlich gesagt hab ich keine Ahnung woher das kommt.
"list battStatus" oder "list Aktivitaets..." bringt nichts?

Gruß,
   Thorsten
Titel: Antw:ActionDetector für Nicht-Homematic-Sensoren
Beitrag von: Thorsten Pferdekaemper am 22 Februar 2017, 10:15:29
Hi,
mich hat das nicht losgelassen.
Versuch mal das:

define deadoralive notify .* IF ("$NAME" ne "deadoralive" && !("$NAME" =~ /dodtimer/)) (setreading deadoralive $NAME alive, defmod dodtimer_$NAME at +00:00:20 setreading deadoralive $NAME dead)

Das Device "deadoralive" ist Dein Monitor. Ein Device, das nach 20 Sekunden nichts sagt ist "dead", das musst Du noch anpassen.
Wenn Du irgendwas abhäbgig machst von den dead/alive Readings, dann musst Du noch aufpassen, nicht in eine Endlosschleife zu geraten. Also abhängige Devices ins IF eintragen oder gleich die RegEx so anpassen, dass nur für zu überwachende Geräte/Readings getriggert wird.
Wie sich das auf die Gesamtperformance auswirkt musst Du vielleicht prüfen.
Gruß,
   Thorsten
Titel: Antw:ActionDetector für Nicht-Homematic-Sensoren
Beitrag von: ioT4db am 23 Februar 2017, 21:48:38
Hallo Thorsten,

das mit dem Notify könnte funktionieren, hatte ich auch schon dran gedacht. Danke für Deine Unterstützung!

An und für sich funktioniert der DeviceMonitor ja. Die Meldung "dead" wird ja zuverlässig gemeldet. Nur das Problem mit dem "unsichtbaren" "alive", was ich gern für weitere Dinge verwenden wollte, geht halt nicht.

Es ist schon "charmant" direkt im Device über ein Attribut das zu überwachende Device zu "markieren". Das ist logisch und schont Ressourcen.

Und als alle sagten "das muss gehen, wenn es im Event-Monitor angezeigt wird" hat mich halt "angefixt". Wenn etwas nicht geht und eigentlich (fast) alles dafür spricht, dass es gehen sollte, dann will ich dahinter kommen  ;D

Das Notify schaut halt auf alles was im System so kreucht und fleucht, wenn ichs richtig verstehe. Ich werds bei Gelegenheit mal testen. Momentan herrscht aber leider Zeitknappheit :(

VG...

PS: sehen wir uns nicht zufällig am 26.März in Darmstadt?

Titel: Antw:ActionDetector für Nicht-Homematic-Sensoren
Beitrag von: Thorsten Pferdekaemper am 23 Februar 2017, 23:29:36
Zitat von: friesenjung am 23 Februar 2017, 21:48:38
Es ist schon "charmant" direkt im Device über ein Attribut das zu überwachende Device zu "markieren". Das ist logisch und schont Ressourcen.
Von wegen Ressourcen bin ich mir nicht so sicher. DeviceMonitor macht es auch nicht anders als mein notify. Es kommen erstmal alle Events an und dann wird das Attribut geprüft. Da ist ein notifiy, das nur auf die zu überwachenden Devices triggert wahrscheinlich schonender.

Zitat
PS: sehen wir uns nicht zufällig am 26.März in Darmstadt?
Wenn Du auch kommst, dann wohl schon.
Gruß,
   Thorsten
Titel: Antw:ActionDetector für Nicht-Homematic-Sensoren
Beitrag von: ioT4db am 02 Mai 2017, 18:13:44
Hallo Zusammen,

mittlerweile verwende ich das recht neue aber supportete Modul 98_monitoring für dieses Thema!

siehe hier: https://forum.fhem.de/index.php/topic,68765.msg629378.html#msg629378

funktioniert wunderbar...