Notify funktioniert nicht immer

Begonnen von dogas, 05 November 2019, 18:10:55

Vorheriges Thema - Nächstes Thema

dogas

Hallöle,

lange gesucht im Forum, da dieses Phänomen nicht neu ist.
Nur meins habe ich nicht entdecken können.

Klassiches Problem. Bewegungsmelder schaltet Lampe an und wieder aus.
Gelöst über ein Notify und auch schon über DOIF. Funktioniert auch soweit, nur halt nicht immer.
Nach ansicht des Eventmonitors löst der Bewegungsmelder immer ordentlich aus und erzeugt das besagte Event.
Nach Prüfung mit Logeinträgen habe ich nun herausgefunden, dass das Notify sowie auch das DOIF nicht immer auf das Event reagieren.
Die Last auf meinen FHEM ist jetzt nicht wirklich groß, da fast alle Akteure mit event-on-change readiing laufen.
Außer den OBIS Zählern die bei jeder Änderung Events schreiben, läuft sonst nicht viel. Nun ist es mir ein Rätsel warum das Notify resp. DOIF mal auslösen und mal nicht.

Der Vollständigkeit halber hier ein List des Notifys.

Internals:
   DEF        sensor_motion_Flur_EG:occupancy:.* {
if ("$EVTPART1" eq "true") {
if(ReadingsVal("bulb_licht_flur_eg", "uState", "") eq "OFF" and ReadingsVal("sensor_motion_Flur_EG", "lux", "") < 43)
{fhem('set bulb_licht_flur_eg on');
Log 3, "Flur EG Licht an - Signal gesendet";
}
}
if ("$EVTPART1" eq "false") {
fhem('set bulb_licht_flur_eg off';
Log 3, "Flur EG Licht aus - Signal gesendet";
}

}

}
   FUUID      5dab4cad-f33f-de9d-da61-4cd0cd1a29150d8d
   NAME       notify_sensor_motion_Flur_EG
   NOTIFYDEV  sensor_motion_Flur_EG
   NR         184
   NTFY_ORDER 50-notify_sensor_motion_Flur_EG
   REGEXP     sensor_motion_Flur_EG:occupancy:.*
   STATE      2019-11-05 18:04:35
   TRIGGERTIME 1572973475.23522
   TYPE       notify
   READINGS:
     2019-11-05 17:49:04   state           active
Attributes:
   DbLogExclude .*
   alias      Licht bei Bewegung Flur EG (Notify)
   group      Licht
   room       X_Logik


PS: Gibt es eine Möglichkeit ein Reading nur max alle 30 Sek. ein Event zu erzeugen. Mit event-on-change reading oder event-on-update bei einem OBIS Stromzähler kommt leider sonst immernoch recht häufig ein Eintrag.

VG
Chris

amenomade

Zitat von: dogas am 05 November 2019, 18:10:55
PS: Gibt es eine Möglichkeit ein Reading nur max alle 30 Sek. ein Event zu erzeugen. Mit event-on-change reading oder event-on-update bei einem OBIS Stromzähler kommt leider sonst immernoch recht häufig ein Eintrag.

VG
Chris
event-min-interval
Pi 3B, Alexa, CUL868+Selbstbau 1/2λ-Dipol-Antenne, USB Optolink / Vitotronic, Debmatic und HM / HmIP Komponenten, Rademacher Duofern Jalousien, Fritz!Dect Thermostaten, Proteus

MadMax-FHEM

Bau doch mal eine Logausgabe in das Notiy ein und zwar OHNE eine if-Bedingung...

Vielleicht stimmen nur die Bedingungen nicht...
...glaube nicht, dass das Notify an sich nicht triggert...

Und ein Auszug aus dem Eventmonitor zum Gerät wäre noch hilfreich damit man sieht was da so "gefeuert" wird...

Gruß, Joachim
FHEM PI3B+ Bullseye: HM-CFG-USB, 40x HM, ZWave-USB, 13x ZWave, EnOcean-PI, 15x EnOcean, HUE/deCONZ, CO2, ESP-Multisensor, Shelly, alexa-fhem, ...
FHEM PI2 Buster: HM-CFG-USB, 25x HM, ZWave-USB, 4x ZWave, EnOcean-PI, 3x EnOcean, Shelly, ha-bridge, ...
FHEM PI3 Buster (Test)

dogas

Zitat von: MadMax-FHEM am 05 November 2019, 19:10:53
Bau doch mal eine Logausgabe in das Notiy ein und zwar OHNE eine if-Bedingung...

Vielleicht stimmen nur die Bedingungen nicht...
...glaube nicht, dass das Notify an sich nicht triggert...

Und ein Auszug aus dem Eventmonitor zum Gerät wäre noch hilfreich damit man sieht was da so "gefeuert" wird...

Gruß, Joachim

Ich habe log Einträge in das Notify ohne die IF Anweisungen eingebaut. Im Eventmonitor kann ich sehen, dass der Bewegungsmelder immer ein Event feuert bei Bewegung unddas Notify auch immer reagiert.
Es scheint wohl so das die Information über den Zustand der Lampe nicht rechtzeitig bei FHEM ankommt (IKEA Lampe über MQTT). Habe jetzt ein sleep 0.5 vorgeschaltet. Damit funktioniert es wohl.
Ich beobachte das mal.

dogas


amenomade

Naja... Du hast geschrieben:
ZitatPS: Gibt es eine Möglichkeit ein Reading nur max alle 30 Sek. ein Event zu erzeugen. Mit event-on-change reading oder event-on-update bei einem OBIS Stromzähler kommt leider sonst immernoch recht häufig ein Eintrag.

Ich habe gedacht, Du möchtest die Anzahl Events reduzieren, auf max. ein Event je 30 Sek.
event-min-interval macht genau das:
Zitat von: CommandRefEin Event wird nur dann generiert, falls seit dem letzten Auftreten des gleichen Events mindestens minInterval Sekunden vergangen sind.
min / max ist nur eine Frage von Satzaufbau...
Pi 3B, Alexa, CUL868+Selbstbau 1/2λ-Dipol-Antenne, USB Optolink / Vitotronic, Debmatic und HM / HmIP Komponenten, Rademacher Duofern Jalousien, Fritz!Dect Thermostaten, Proteus

CoolTux

Ein sleep innerhalb von Perlcode blockiert FHEM für die angegebene Zeit komplett.
Du musst nicht wissen wie es geht! Du musst nur wissen wo es steht, wie es geht.
Support me to buy new test hardware for development: https://www.paypal.com/paypalme/MOldenburg
My FHEM Git: https://git.cooltux.net/FHEM/
Das TuxNet Wiki:
https://www.cooltux.net

dogas

Zitat von: amenomade am 05 November 2019, 20:37:54
Naja... Du hast geschrieben:
Ich habe gedacht, Du möchtest die Anzahl Events reduzieren, auf max. ein Event je 30 Sek.
event-min-interval macht genau das:min / max ist nur eine Frage von Satzaufbau...

habe ja noch ein event-on-change auf den OBIS Zählern und die feuern halt auch unterhalb dieser Zeitspanne, weil sich halt was ändert, wie ist das lösbar?

dogas

Zitat von: CoolTux am 05 November 2019, 20:38:43
Ein sleep innerhalb von Perlcode blockiert FHEM für die angegebene Zeit komplett.

Da steht aber nur, das FHEM nur blockiert wird, wenn es von keinem Befehl gefolgt wird.

MadMax-FHEM

Dann poste doch was du jetzt hast...
...dann kann man kucken...

Und halt auch mal Ausgaben vom Eventmonitor...

Sonst können wir nur raten...

Gruß, Joachim
FHEM PI3B+ Bullseye: HM-CFG-USB, 40x HM, ZWave-USB, 13x ZWave, EnOcean-PI, 15x EnOcean, HUE/deCONZ, CO2, ESP-Multisensor, Shelly, alexa-fhem, ...
FHEM PI2 Buster: HM-CFG-USB, 25x HM, ZWave-USB, 4x ZWave, EnOcean-PI, 3x EnOcean, Shelly, ha-bridge, ...
FHEM PI3 Buster (Test)

CoolTux

Zitat von: dogas am 05 November 2019, 20:43:06
Da steht aber nur, das FHEM nur blockiert wird, wenn es von keinem Befehl gefolgt wird.

Diese Aussage bezieht sich auf das FHEM sleep. Ich gehe davon aus das Du ein Perl sleep verwendest.
Du musst nicht wissen wie es geht! Du musst nur wissen wo es steht, wie es geht.
Support me to buy new test hardware for development: https://www.paypal.com/paypalme/MOldenburg
My FHEM Git: https://git.cooltux.net/FHEM/
Das TuxNet Wiki:
https://www.cooltux.net

dogas

Zitat von: MadMax-FHEM am 05 November 2019, 20:53:38
Dann poste doch was du jetzt hast...
...dann kann man kucken...

Und halt auch mal Ausgaben vom Eventmonitor...

Sonst können wir nur raten...

Gruß, Joachim

Das Notify sieht jetzt so aus. Wie gesag, der Notify triggert wirklich jedes mal wie ich durch die Logs sehen konnte, nur die IF Anweisungen scheinen ab und an einfach zu fix zu sein. Mit dem sleep ging es jetzt immer. Der Eventmonitor zeigt nichts weiter, ist also nicht weiter relevant.

Internals:
   DEF        sensor_motion_Flur_EG:occupancy:.* { sleep 0.2;
if ("$EVTPART1" eq "true") {
if(ReadingsVal("bulb_licht_flur_eg", "uState", "") eq "OFF" and ReadingsVal("sensor_motion_Flur_EG", "lux", "") < 43)
{fhem('set bulb_licht_flur_eg on');
Log 3, "Flur EG Licht an";
}
}
if ("$EVTPART1" eq "false") {
if(ReadingsVal("bulb_licht_flur_eg", "uState", "") eq "ON")
{fhem('set bulb_licht_flur_eg off');
Log 3, "Flur EG Licht aus";
}

}
Log 3, "Bewegungsmelder Flur EG Änderung Anwesenheit";

}
   FUUID      5dab4cad-f33f-de9d-da61-4cd0cd1a29150d8d
   NAME       notify_sensor_motion_Flur_EG
   NOTIFYDEV  sensor_motion_Flur_EG
   NR         184
   NTFY_ORDER 50-notify_sensor_motion_Flur_EG
   REGEXP     sensor_motion_Flur_EG:occupancy:.*
   STATE      2019-11-05 20:36:00
   TRIGGERTIME 1572982560.56198
   TYPE       notify
   READINGS:
     2019-11-05 20:31:01   state           active
Attributes:
   DbLogExclude .*
   alias      Licht bei Bewegung Flur EG (Notify)
   group      Licht
   room       X_Logik

MadMax-FHEM

#12
Wenn loggen, dann würde ich halt auch EVTPRT1 mit loggen, dann siehst du den "Input" in deine Abfragen/Bedingungen...

Vielleicht sind die anders als "gedacht"...

Gut, wenn du keine Eventmonitorausgaben posten willst, dann kann/will ich nicht mehr weiterhelfen...

Relevanz liegt immer im Auge des Betrachters...
...und selbst wenn auch ich/wir nichts "Relevantes" finden/sehen sollten hilft es auch das selbst festzustellen...

EDIT: das sleep blockiert... Daher denke ich liegt der Grund warum es mit sleep funktioniert woanders, da in der Zeit in fhem nichts weiter passiert... Max Dinge "von außen" laufen weiter... Allerdings ohne fhem als "Abnehmer"... ;)

Gruß, Joachim
FHEM PI3B+ Bullseye: HM-CFG-USB, 40x HM, ZWave-USB, 13x ZWave, EnOcean-PI, 15x EnOcean, HUE/deCONZ, CO2, ESP-Multisensor, Shelly, alexa-fhem, ...
FHEM PI2 Buster: HM-CFG-USB, 25x HM, ZWave-USB, 4x ZWave, EnOcean-PI, 3x EnOcean, Shelly, ha-bridge, ...
FHEM PI3 Buster (Test)

amenomade

Relevant ist aber was CoolTux gesagt hat. Somit wird fhem bei jeder Triggerung 0.2 Sek komplett blockiert...
Pi 3B, Alexa, CUL868+Selbstbau 1/2λ-Dipol-Antenne, USB Optolink / Vitotronic, Debmatic und HM / HmIP Komponenten, Rademacher Duofern Jalousien, Fritz!Dect Thermostaten, Proteus

dogas

Zitat von: amenomade am 05 November 2019, 21:15:09
Relevant ist aber was CoolTux gesagt hat. Somit wird fhem bei jeder Triggerung 0.2 Sek komplett blockiert...

Was für eine Alternative habe ich?