ActionDetector für Nicht-Homematic-Sensoren

Begonnen von thunder1902, 02 August 2016, 15:23:59

Vorheriges Thema - Nächstes Thema

thunder1902

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!

justme1968

hue, tradfri, alexa-fhem, homebridge-fhem, LightScene, readingsGroup, ...

https://github.com/sponsors/justme-1968

thunder1902

@Andre: SUPER DANKE!! Genau das was ich gesucht hab!

ioT4db

#3
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
FHEM auf Synology mittels Docker,  Jeelink-Clone 1x für PCA301 und 1x für Lacrosse, THZ304SOL, Homematic: CUL_HM / M-MOD-RPI-PCB, Pushover, Xiaomi s50

Thorsten Pferdekaemper

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
FUIP

ioT4db

#5
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
FHEM auf Synology mittels Docker,  Jeelink-Clone 1x für PCA301 und 1x für Lacrosse, THZ304SOL, Homematic: CUL_HM / M-MOD-RPI-PCB, Pushover, Xiaomi s50

Thorsten Pferdekaemper

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
FUIP

ioT4db

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
FHEM auf Synology mittels Docker,  Jeelink-Clone 1x für PCA301 und 1x für Lacrosse, THZ304SOL, Homematic: CUL_HM / M-MOD-RPI-PCB, Pushover, Xiaomi s50

Thorsten Pferdekaemper

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
FUIP

ioT4db

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
FHEM auf Synology mittels Docker,  Jeelink-Clone 1x für PCA301 und 1x für Lacrosse, THZ304SOL, Homematic: CUL_HM / M-MOD-RPI-PCB, Pushover, Xiaomi s50

Thorsten Pferdekaemper

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 
FUIP

ioT4db

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
FHEM auf Synology mittels Docker,  Jeelink-Clone 1x für PCA301 und 1x für Lacrosse, THZ304SOL, Homematic: CUL_HM / M-MOD-RPI-PCB, Pushover, Xiaomi s50

Thorsten Pferdekaemper

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
FUIP

ioT4db

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
FHEM auf Synology mittels Docker,  Jeelink-Clone 1x für PCA301 und 1x für Lacrosse, THZ304SOL, Homematic: CUL_HM / M-MOD-RPI-PCB, Pushover, Xiaomi s50

Thorsten Pferdekaemper

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
FUIP