Hallo zusammen.
Seltsam: Notify ruft neuerdings eine sub nicht auf.
Das ist insofern merkwürdig, weil ich etliche notifys definiert habe, die alle laufen.
Kurze Beschreibung:
Es gibt einen Dummy (testdummy), ein Notify (n_testdummyChanged), welches bei Änderungen von testdummy reagiert ( testdummy:.*) und dann sub tdc() aufruft.
Problem: Bei manuellen Wertänderungen (set testdummy ...) wird das Event korrekt ausgelöst (s. Listing!), aber die sub wird nicht aufgerufen. Dabei liefert {tdc();;}
auf der fhem-Kommandozeile das korrekte Ergebnis; an der sub kann es also nicht liegen.
Hier das Listing vom Notify:
DEF testdummy:.* {tdc()}
FUUID 6304c7a6-f33f-8be1-7ba7-d99ed2e5f4e9a5b1
NAME n_testdummyChanged
NOTIFYDEV testdummy
NR 990
NTFY_ORDER 50-n_testdummyChanged
REGEXP testdummy:.*
STATE 2022-08-23 16:10:38
TRIGGERTIME 1661263838.63973
TYPE notify
eventCount 7
READINGS:
2022-08-23 15:50:50 state active
2022-08-23 16:10:38 triggeredByDev testdummy
2022-08-23 16:10:38 triggeredByEvent 47
Zugleich sind im Logfile seit Neuem solche Meldungen, die immer dann auftauchen, wenn die sub aufgerufen werden soll.
...
...
2022.08.23 16:13:02 1: PERL WARNING: Argument "0;" isn't numeric in division (/) at (eval 4261) line 1, <GEN858> line 6900.
2022.08.23 16:13:02 1: PERL WARNING: Argument "0;" isn't numeric in division (/) at (eval 4263) line 1, <GEN858> line 6904.
2022.08.23 16:13:02 1: PERL WARNING: Argument "0;" isn't numeric in division (/) at (eval 4265) line 1, <GEN858> line 6908.
2022.08.23 16:13:02 1: PERL WARNING: Argument "0;" isn't numeric in division (/) at (eval 4266) line 1, <GEN858> line 6909.
2022.08.23 16:20:26 1: PERL WARNING: Argument "0;" isn't numeric in division (/) at (eval 4419) line 1, <GEN932> line 6899.
2022.08.23 16:20:26 1: PERL WARNING: Argument "0;" isn't numeric in division (/) at (eval 4420) line 1, <GEN932> line 6900.
2022.08.23 16:20:26 1: PERL WARNING: Argument "0;" isn't numeric in division (/) at (eval 4422) line 1, <GEN932> line 6904.
2022.08.23 16:20:26 1: PERL WARNING: Argument "0;" isn't numeric in division (/) at (eval 4424) line 1, <GEN932> line 6908.
2022.08.23 16:20:26 1: PERL WARNING: Argument "0;" isn't numeric in division (/) at (eval 4425) line 1, <GEN932> line 6909.
Vielleicht bin ich betriebsblind, aber ich komme seit Stunden nicht weiter - weiß jemand Rat?
Nachdem ich den Dummy und das Notify gelöscht und unter neuen Namen wieder angelegt habe, funktioniert jetzt wieder alles wie gewohnt.
Es scheint ein Fehler in fhem zu sein!
Möglicher Hinweis:
Zuvor hatte ich das Dummy und das Notify durch entsprechende Kopien bestehender devices erzeugt und dann nur angepasst.
Jetzt habe ich wieder den Standardweg über define ... gewählt und es geht.
Allerdings habe ich auch schon früher Devices durch Kopien erzeugt und nie Probleme gehabt.
An wen soll/muss/kann ich mich wenden, um das Problem zu untersuchen? Mit Sicherheit ist hier etwas faul.
Da ist nix faul.
Zitat von: DocCyber am 23 August 2022, 18:15:10
Möglicher Hinweis:
Zuvor hatte ich das Dummy und das Notify durch entsprechende Kopien bestehender devices erzeugt und dann nur angepasst.
Wenn man das tut (devices durch kopieren erzeugen), sollte man danach einen FHEM Neustart durchführen.
Das hätte Dein Problem mit ziemlicher Sicherheit schon gelöst.
Das habe ich sogar mehrfach gemacht und später sogar den RasPi neu gebootet.
Hat aber alles nichts genutzt - das Problem blieb bestehen.
Wie gesagt: auch schon vorher habe ich Kopien erzeugt, und es gab nie Probleme.
ZitatMit Sicherheit ist hier etwas faul.
Nö.
LG
pah
Zitat
Mit Sicherheit ist hier etwas faul.
Nö.
LG
pah
Hilfreich?
Zitat von: Prof. Dr. Peter Henning am 24 August 2022, 22:12:54
Nö.
LG
pah
Meiner Meinung nach ist es wie beim TÜV: Es müssen nicht alle Extras eingebaut worden sein, aber wenn, dann müssen sie reibungslos funktionieren.
Auf fhem im hier geschilderten Kontext übertragen:
Es mag ja sein, dass man bei Problemen fhem neustarten sollte (hat hier aber auch nicht geklappt). Aber das ist dann eben nicht reibungslos.
Ich bin der Auffassung, dass das, was eingebaut worden ist, auch funktionieren muss.
Ich will hier auch nicht meckern, dafür ist fhem viel zu gut.
Aber ich will darauf hinweisen, dass hier sehr wohl etwas faul ist. Andernfalls würde es eben reibungslos funktionieren.
Wenn ich in Perl gut genug wäre, würde ich selbst versuchen, den Fehler zu finden.
Nix für ungut...
@DocCyber
Etwas mehr Info ist schon hilfreich.
Wenn es kein Geheimnis ist, stell doch mal tdc() hier rein.
In der Zwischenzeit kannst du ja mal das Notify erweitern.
{
Log 1, "Klappt ".$EVENT;
tdc();
}
Nur um zu sehen, ob es wirklich nicht funktioniert.
Zitat von: DetlefR am 25 August 2022, 12:41:34
Etwas mehr Info ist schon hilfreich.
Etwas gründlicher lesen hilft noch viel mehr: Es steht alles ausführlich oben beschrieben.
Ich habe auch erwähnt, unter welchen Umständen es schließlich wieder funktioniert.
Solange mir niemand belegen kann, was ich eventuell falsch gemacht haben soll, bleibe ich dabei, dass es irgendwo klemmen muss.
Das Thema ist für mich abgeschlossen.