dbLog: Kein Eintrag in DB obwohl gesetzt

Begonnen von Guybrush, 02 September 2025, 12:08:09

Vorheriges Thema - Nächstes Thema

Guybrush

Von meiner Doorbird werden keine Events in der DB gelogt - sonst geht das überall. Ich habe sowohl DbLogExclude als auch DbLogInclude gesetzt. Das sollte eigentlich dazu führen, dass nur noch events von motion_sensor und doorbell_button_001 gelogt werden. Events laufen auch auf, da ich beide readings per notify bestimmte Aktionen triggern lasse, was auch funktioniert. Es laufen also Events auf, die nur nicht in der DB gespeichert werden.

define Doorbird.Eingang DoorBird xxx.xxx.xxx.xxx crypt:xxx crypt:xxx
attr Doorbird.Eingang userattr notifyMessage
attr Doorbird.Eingang AudioFileDir /opt/fhem/www/images/doorbird/
attr Doorbird.Eingang DbLogExclude .*
attr Doorbird.Eingang DbLogInclude motion_sensor,doorbell_button_001
attr Doorbird.Eingang HistoryFilePath 1
attr Doorbird.Eingang ImageFileDir /opt/fhem/www/images/doorbird/
attr Doorbird.Eingang MaxHistory 10
attr Doorbird.Eingang SessionIdSec 0
attr Doorbird.Eingang UdpPort 6524
attr Doorbird.Eingang VideoFileDir /opt/fhem/www/images/doorbird/
attr Doorbird.Eingang do_not_notify 0
attr Doorbird.Eingang event-on-change-reading motion_sensor,doorbell_button_001,ContactLostSince
attr Doorbird.Eingang event-on-update-reading state
attr Doorbird.Eingang icon doorbird
attr Doorbird.Eingang room Interfaces->Doorbird,Erdgeschoss->Eingang


Default scheint das Attribut do_not_notify auf 1 zu stehen. Ich hab das daher einmal händisch auf 0 gesetzt, was aber keine Veränderung brachte. Hat von euch einer eine Idee woran das liegen kann?

betateilchen

Wenn Du mit event-on-dingenskirchen doch schon dafür sorgst, dass nur für bestimmte readings events erzeugt werden, brauchst Du doch DbLogExclude und DbLogInclude gar nicht mehr angeben?

Und do_not_notify ist m.E. auch entbehrlich. Manchmal gibt es auch Attribute, bei denen die bloße Existenz schon "1" bedeutet, egal welcher Wert gesetzt ist. Ob das hier auch der Fall ist, weiß ich nicht genau.
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

Guybrush

ich hab die DbLogInclude/Exclude deswegen gesetzt, weil auch event-on-update-reading gesetzt ist und ich 'state' nicht mit protokollieren möchte. state ist insoweit nur für die Überwachung der Konnektivität gut. Interseessant sind jedoch die Events wann geklingelt und Bewegung war.

do_not_notify macht keinen Unterschied, obs gesetzt ist oder nicht. Hatte das wie gesagt mal probiert, obs ggf. daran liegen könnte, was aber keine Auswirkung hat. Du siehst aber auch nichts, was offenkundig falsch gesetzt ist?

rabehd

#3
Macht es Sinn "sowohl DbLogExclude als auch DbLogInclude" zusammen zu verwenden?

https://wiki.fhem.de/wiki/DbLog

OK, die Möglichkeit gibt es. Aber was technisch möglich ist... bei mir reicht Include.

ZitatExclude/Include: Funktioniert im Wesentlichen wie "Exclude", nur dass sowohl das Attribut DbLogExclude als auch das Attribut DbLogInclude geprüft wird. Readings die durch DbLogExclude zwar ausgeschlossen wurden, mit DbLogInclude aber wiederum eingeschlossen werden, werden somit dennoch beim Logging berücksichtigt.
Auch funktionierende Lösungen kann man hinterfragen.

betateilchen

#4
Zitat von: Guybrush am 02 September 2025, 12:56:39Du siehst aber auch nichts, was offenkundig falsch gesetzt ist?

Ich sag mal so: ich sehe in Deinem device vieles, was ich gruslig finde.

An Deiner Stelle würde ich alles an Attributen, die möglicherweise dafür sorgen, events zu verhindern, rausnehmen und testen, ob die Werte dann gelogged werden.
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

RalfRog

Zitat von: betateilchen am 02 September 2025, 14:04:58An Deiner Stelle würde ich alles an Attributen, die möglicherweise dafür sorgen, events zu verhindern, rausnehmen und testen, ob die Werte dann gelogged werden.
... und checken ob in der Definition des DBLog das Device "Doorbird" enthalten ist. Je nachdem ob du die Devices dort einzeln aufführst oder per .* alles einschließt.
FHEM auf Proxmox VM Bookworm (Futro S740) - nanoCUL, HM-MOD-RPI-PCB und MAX!Cube über LAN
HM- Fensterkontakte, UP-Schalter, Bewegungsmelder und ein Rauchmelder sowie Shelly 3EM, 1PM, PlugS und IT Schaltsteckdosen

rabehd

Zitat von: RalfRog am 02 September 2025, 14:41:36.. und checken ob in der Definition des DBLog das Device "Doorbird" enthalten ist. Je nachdem ob du die Devices dort einzeln aufführst oder per .* alles einschließt.
Wer  DbLogInclude verwendet, der sollte nicht noch im DBlog Einschränkungen machen. Das ist doch sonst Chaos im Kopf. Bei mir reicht .*:.*

Zitat von: betateilchen am 02 September 2025, 14:04:58Du siehst aber auch nichts, was offenkundig falsch gesetzt ist?
Du zitierst mich mit einem Text der nicht von mir ist, da spinnt wohl die Software. :o 
Auch funktionierende Lösungen kann man hinterfragen.

betateilchen

Zitat von: rabehd am 02 September 2025, 15:15:23Du zitierst mich mit einem Text der nicht von mir ist, da spinnt wohl die Software.

Nein, in dem Beitrag fehlen ungefähr 2/3 des Textes, den ich eigentlich geschrieben hatte. Warum? Keine Ahnung. Vermutlich ist im Rahmen des "Verschwindens" einfach das korrekte quote-Tag verschwunden und das von Dir (ich hatte auch Text von Dir zitiert) stehengeblieben. Hab ich oben gerade korrigiert.
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

Guybrush

Zitat von: betateilchen am 02 September 2025, 14:04:58Ich sag mal so: ich sehe in Deinem device vieles, was ich gruslig finde.

offtopic: was ist da gruselig?

Guybrush

Zitat von: RalfRog am 02 September 2025, 14:41:36... und checken ob in der Definition des DBLog das Device "Doorbird" enthalten ist. Je nachdem ob du die Devices dort einzeln aufführst oder per .* alles einschließt.

DbLogExclude .* schließt ja alles aus. allerdings werden sodann die per DbLogInclude angegebenen Readings wieder gelogt. Das ist ausdrücklich vom Modul so beabsichtigt und funktioniert bei allen anderen devices. nur eben bei diesem einen konkreten nicht. einträge für das device gibts gar keine in der db. alles schon geprüft...  :( Events kommen an. wird nur nix gelogt