[Gelöst] DBLog default DbLogExclude für neue Devices?

Begonnen von reibuehl, 24 März 2024, 19:57:23

Vorheriges Thema - Nächstes Thema

reibuehl

Gibt es eine Möglichkeit, für neue Devices automatisch erst mal ein DbLogExclude = .* zu setzen? Über das DBlog define kann ich ja includes definieren, dann müsste ich aber meine gesamte bereits vorhandene DbLogExclude und DbLogInclude Logik invertieren.

Ich würde gerne für neu angelegte Devices immer erst mal alles abwählen, damit ich dann einzelne Readings über DbLogInclude freischalten kann.

Reiner

Update: Hab die Lösung hier gefunden!
Reiner.

xerion

Ich habe das so gelöst für event-on-change-reading musst nur durch dein Attribute ersetzen

define global_notify_1 notify global:DEFINED.* attr $EVTPART1 event-on-change-reading .*
attr global_notify_1 event-on-change-reading .*
attr global_notify_1 room System->FHEM
#  DEF        global:DEFINED.* attr $EVTPART1 event-on-change-reading .*
#  FUUID      657376e1-f33f-b647-14e3-a227c55307c7988d
#  NAME      global_notify_1
#  NOTIFYDEV  global
#  NR        419
#  NTFY_ORDER 50-global_notify_1
#  REGEXP    global:DEFINED.*
#  STATE      2024-03-02 19:20:30
#  TYPE      notify
#  READINGS:
#    2024-03-24 17:11:09  state          active
#    2024-03-02 19:20:30  triggeredByDev  global

Ich würde mich  freuen, wenn du meinen Einladungscode für Tibber, der Stromanbieter, der dir hilft, deinen Stromverbrauch zu verstehen und zu reduzieren, nutzt: https://invite.tibber.com/5fc08jbs. So bekommen wir beide 50 Euro und 100 % Ökostrom / https://geld-fuer-eauto.de/ref/334561880

WW

#2
Hier meine Lösung über ein Notify:

defmod notifyNeuesDeviceAngelegt notify global:DEFINED.* {\
my $newName = $EVTPART1;;\
my $newType = InternalVal($newName, 'TYPE', '');;\
fhem('attr ' . $newName . ' DbLogExclude .*');;\
\
fhem("msg push |Systemmeldung| Es wurde ein neues Gerät mit dem Namen *$newName* angelegt und dies hat den Typ: *$newType*");;\
}\

attr notifyNeuesDeviceAngelegt icon logic
attr notifyNeuesDeviceAngelegt room System->Config
attr notifyNeuesDeviceAngelegt verbose 2

setstate notifyNeuesDeviceAngelegt 2024-03-01 15:30:41
setstate notifyNeuesDeviceAngelegt 2024-03-12 20:48:48 state active
setstate notifyNeuesDeviceAngelegt 2024-03-01 15:30:41 triggeredByDev global
setstate notifyNeuesDeviceAngelegt 2024-03-01 15:30:41 triggeredByEvent DEFINED MQTT2_zigbee_0x2c1165fffec96092

MfG Willi
FHEM 6.0 im Docker-Container (OMV4 auf ASRock J3455-ITX), FHEM 6.0 auf Raspi, Fritzbox 7490, CUL433, CUL868, Jeelink868, SIGNALduino, LaCrosseGateway, SonoffZbBridge, Shelly, Sonoff, ESP8266, ESP32, ESP32-Cam, LaCrosse, Revolt, OneWire, Zigbee (Sonoff, Blitzwolf, IKEA, Lidl)

betateilchen

Die Attribute DbLogExclude und DbLogInclude sind für mich ein totaler Holzweg.
Aber sie sind einfach nicht auszurotten  ::)
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

reibuehl

Zitat von: betateilchen am 25 März 2024, 14:52:15Die Attribute DbLogExclude und DbLogInclude sind für mich ein totaler Holzweg.
Aber sie sind einfach nicht auszurotten  ::)

Warum? Als ich DBLog vor vielen Jahren aufgesetzt habe, war das m.W.n. der empfohlene Weg, die Datenmenge auf ein beherrschbares Maß einzuschränken und im Wiki ist es auch immer noch so beschrieben. Hat sich daran was geändert?
Reiner.

betateilchen

Zitat von: reibuehl am 25 März 2024, 16:20:51vor vielen Jahren aufgesetzt habe, war das m.W.n. der empfohlene Weg, die Datenmenge auf ein beherrschbares Maß einzuschränken
...
Hat sich daran was geändert?

Es war für mich halt auch vor vielen Jahren schon ein Holzweg, da es kompliziert zu pflegen ist. Wenn man Änderungen durchführen möchte, muss man ggf. an unzähligen Stellen Attributänderungen in vielen devices vornehmen.

Man kann die Datenmenge auch schon durch die geeignete Wahl einer regex im define des DbLog-devices einschränken und auf das benötigte Maß reduzieren. Somit reduzieren sich Änderungen darauf, an einer einzigen Stelle Anpassungen vornehmen zu müssen.
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!