FHEM Forum

FHEM => Anfängerfragen => Thema gestartet von: dogas am 05 November 2019, 18:10:55

Titel: Notify funktioniert nicht immer
Beitrag von: dogas am 05 November 2019, 18:10:55
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
Titel: Antw:Notify funktioniert nicht immer
Beitrag von: amenomade am 05 November 2019, 18:57:03
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
Titel: Antw:Notify funktioniert nicht immer
Beitrag 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
Titel: Antw:Notify funktioniert nicht immer
Beitrag von: dogas am 05 November 2019, 20:29:28
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.
Titel: Antw:Notify funktioniert nicht immer
Beitrag von: dogas am 05 November 2019, 20:34:19
Zitat von: amenomade am 05 November 2019, 18:57:03
event-min-interval

Leider funzt das nicht. Ist ein min, kein max.
Titel: Antw:Notify funktioniert nicht immer
Beitrag von: amenomade am 05 November 2019, 20:37:54
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...
Titel: Antw:Notify funktioniert nicht immer
Beitrag von: CoolTux am 05 November 2019, 20:38:43
Ein sleep innerhalb von Perlcode blockiert FHEM für die angegebene Zeit komplett.
Titel: Antw:Notify funktioniert nicht immer
Beitrag von: dogas am 05 November 2019, 20:41:34
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?
Titel: Antw:Notify funktioniert nicht immer
Beitrag von: dogas am 05 November 2019, 20:43:06
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.
Titel: Antw:Notify funktioniert nicht immer
Beitrag 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
Titel: Antw:Notify funktioniert nicht immer
Beitrag von: CoolTux am 05 November 2019, 20:58:33
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.
Titel: Antw:Notify funktioniert nicht immer
Beitrag von: dogas am 05 November 2019, 21:09:14
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
Titel: Antw:Notify funktioniert nicht immer
Beitrag von: MadMax-FHEM am 05 November 2019, 21:13:40
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
Titel: Antw:Notify funktioniert nicht immer
Beitrag 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...
Titel: Antw:Notify funktioniert nicht immer
Beitrag von: dogas am 05 November 2019, 21:58:12
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?
Titel: Antw:Notify funktioniert nicht immer
Beitrag von: amenomade am 05 November 2019, 22:10:10
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
Titel: Antw:Notify funktioniert nicht immer
Beitrag von: MadMax-FHEM am 05 November 2019, 22:19:04
Infos liefern...
...damit wir mitkucken können... ;)

Und Logausgaben, die auch zeigen "womit" die "Entscheidungen" getroffen werden...
...damit du/wir sehen können warum wie entschieden wurde und dann hoffentlich warum das so ist/kam...

Gruß, Joachim
Titel: Antw:Notify funktioniert nicht immer
Beitrag von: Damian am 05 November 2019, 22:26:19
Zitat von: dogas am 05 November 2019, 21:58:12
Was für eine Alternative habe ich?

Einen Timer zu setzen, der nach 0.2 Sekunden die Ausführung durchführt, das kann at, FHEM-sleep, InternalTimer oder beim DOIF set_Exec sein ;)
Titel: Antw:Notify funktioniert nicht immer
Beitrag von: CoolTux am 06 November 2019, 06:11:22
Bevor man ein Problem lösen kann sollte man erstmal das Problem kennen.

Bedeutet Du musst erstmal schauen was er denn da genau ausliest zum Zeitpunkt Deiner Bedingung.
Bau ganz oben eine Logausgabe ein welche Dir die Ergebnisse Deiner Bedingungsabfragen aus gibt.
Titel: Antw:Notify funktioniert nicht immer
Beitrag von: dogas am 06 November 2019, 07:52:17
So, heute Morgen war es wieder soweit, das Licht ging nicht an.
Den EVTPART1 habe ich nun in der Log Ausgabe drin. Ist aber immer nur "true" oder "false". Also passt das schon mal. Wie ich ja schon sagte triggert der Notify ja immer ordentlich.
Ich werde wohl die Ergebnisse der Bedingungen noch ausgeben müssen, da passt wohl was nicht.

Und nun für Euch hier die Ausgabe des EM und der Log von heute früh.  ::)



Titel: Antw:Notify funktioniert nicht immer
Beitrag von: dogas am 06 November 2019, 08:09:31
Zitat von: dogas am 06 November 2019, 07:52:17
So, heute Morgen war es wieder soweit, das Licht ging nicht an.
Den EVTPART1 habe ich nun in der Log Ausgabe drin. Ist aber immer nur "true" oder "false". Also passt das schon mal. Wie ich ja schon sagte triggert der Notify ja immer ordentlich.
Ich werde wohl die Ergebnisse der Bedingungen noch ausgeben müssen, da passt wohl was nicht.

Und nun für Euch hier die Ausgabe des EM und der Log von heute früh.  ::)

So wir haben wohl den Übeltäter. Wie man in der EM1.jpg sehen kann benutze ich eine Umsetzung des State auf Upper-Case. uState. Diese Umsetzung ist Zeitweise so verzögert, das der uSTATE der Lampe nicht zur Abfrage passt. Da aber STATE mal Groß und mal Klein vom Device im EM ausgegeben wird, muss ich die Abfrage auf STATE machen und in der Abfrage direkt auf Groß sowie Kleinschreibung prüfen.

Da fehlt mir aber etwas Know-How, wie diese Bedingung formuliert werden kann.  ???

Kann das Funktionieren???

if(uc[bulb_licht_flur_eg:state] eq "OFF" and ReadingsVal("bulb_licht_flur_eg", "lux", "") < 43)
Titel: Antw:Notify funktioniert nicht immer
Beitrag von: CoolTux am 06 November 2019, 08:38:22
if(uc[bulb_licht_flur_eg:state] eq "OFF" and ReadingsVal("bulb_licht_flur_eg", "lux", "") < 43)

Dieser Code ist absoluter Unsinn. Und so lange Du nicht anfängst auf die Helfenden zu hören und weiter hier mit Bildern kommst statt einem vernünftigen list des Notify nach jeder Änderung von Dir und einem Auszug aus dem Log hier in Code Tags wird das wohl auch nichts werden.
Titel: Antw:Notify funktioniert nicht immer
Beitrag von: dogas am 06 November 2019, 10:55:41
Ich weiß schon warum ich das Forum meide, weil der Ton einfach überheblich ist. Nichts für Anfänger. Ich hoffe die Adaptieren die LUXTRONIK2 bald zu ioBroker, dann muss ich mich nicht mehr damit rumärgen.
Am Ende finde ich die meisten Sachen dann immer selbst heraus, das muss ich mir nicht antun.
Danke für nichts.
Titel: Antw:Notify funktioniert nicht immer
Beitrag von: Byte09 am 06 November 2019, 11:11:04
Zitat von: dogas am 06 November 2019, 10:55:41
Ich weiß schon warum ich das Forum meide, weil der Ton einfach überheblich ist. Nichts für Anfänger. Ich hoffe die Adaptieren die LUXTRONIK2 bald zu ioBroker, dann muss ich mich nicht mehr damit rumärgen.
Am Ende finde ich die meisten Sachen dann immer selbst heraus, das muss ich mir nicht antun.
Danke für nichts.
hmm, habe den thread jetzt kurz überflogen. Der einzige der im Ton daneben liegt bist gerade du.

du vergisst irgendwie, das andere ihre Zeit opfern um zu helfen.... solltest du überdenken!

und wieder ein Name mehr auf meiner Pers. ignoreliste [emoji4]

gruss Byte09

Gesendet von meinem ELE-L29 mit Tapatalk

Titel: Antw:Notify funktioniert nicht immer
Beitrag von: MadMax-FHEM am 06 November 2019, 11:13:48
Was heißt hier überheblich!?

Du suchst Hilfe...
...wir wollen helfen (in Freizeit)...
...können aber halt nicht hellsehen und nicht zaubern...

Wenn du keine bzw. nicht die "gewünschten" /notwendigen Infos liefern willst...
...bzw. nicht im "gewünschten" /benötigten Format...
...oder "vorgefiltert"...

Was erwartest du...

Immer eine Freude (unter solchen "Bedingungen") zu helfen...

Gruß, Joachim
Titel: Antw:Notify funktioniert nicht immer
Beitrag von: amenomade am 06 November 2019, 12:40:55
Zitat von: dogas am 06 November 2019, 08:09:31
So wir haben wohl den Übeltäter. Wie man in der EM1.jpg sehen kann benutze ich eine Umsetzung des State auf Upper-Case. uState. Diese Umsetzung ist Zeitweise so verzögert, das der uSTATE der Lampe nicht zur Abfrage passt. Da aber STATE mal Groß und mal Klein vom Device im EM ausgegeben wird, muss ich die Abfrage auf STATE machen und in der Abfrage direkt auf Groß sowie Kleinschreibung prüfen.

Da fehlt mir aber etwas Know-How, wie diese Bedingung formuliert werden kann.  ???

Kann das Funktionieren???

if(uc[bulb_licht_flur_eg:state] eq "OFF" and ReadingsVal("bulb_licht_flur_eg", "lux", "") < 43)
Angenommen, dass Du es syntaxisch korrekt schreiben würdest, was wird es bringen?
Laut deinem Bild wurden state sowohl auch uState um 06:44:34 gesetzt (das nenne ich nicht "verzörgert"), und dein Bewegungsmelder hat um 06:44:45 occupancy true gemeldet und damit nw. dein notify getriggert.

Es sei denn, es passiert inzwischen etwas anderes... aber das können wir nicht sehen, da Du die gewünschte Information gar nicht oder nicht vollständig liefern willst.

Wenn Du aber meinst, Du kriegst bessere Hilfe im ioBroker Forum, ohne die gewünschte Informationen zu liefern, dann... viel Spaß im ioBroker Forum. Ich hoffe für dich, die ioBroker Leute haben effizientere Kristallkugeln.

Wenn Du hier doch weitere Hilfe brauchst, dann:
1 - keep cool
2 - lies hier: https://forum.fhem.de/index.php/topic,71806.0.html
3 - Gib uns die schon mehrmals angeforderte Informationen (Form, Siehe 2.)