Unterdrückte Meldungen nachträglich ausgeben

Begonnen von is2late, 13 November 2023, 17:59:44

Vorheriges Thema - Nächstes Thema

is2late

Hallo,

ich habe die nachts anfallenden Meldungen der ungestörten Nachtruhe wegen mit einem DOIF unterdrückt, indem die Notifys der unterschiedlichen Meldungen nachts deaktiviert werden.
Wäre aber schön, die Meldungen bei Tage zu einem bestimmten Zeitpunkt nachgereicht zu bekommen.
Gibt es eine einfache Lösung ohne Datenbank (mit der ich mich nicht auskenne)?

Vielen Dank,
Ingo
Pi4, Tahoma Jalousien, Hue, Echo, Sonos, Lupusec XT3, FritzBox

Aurel_B

Hmmm, ich glaube, da bräuchten wir ein wenig mehr Infos? Wie bekommst du denn deine Meldungen normalerweise, wie unterdrückst du sie in deinem DOIF? Einfache Idee: statt unterdrücken umleiten in eine Logdatei und diese dann anschauen?

is2late

Danke, ansgru!

Die Meldungsunterdrückung sieht so aus:

defmod Nachtruhe DOIF ([23:00-06:00]) (set Nachtruhe_Schalter on) DOELSE ((set Nachtruhe_Schalter off),set n_Briefkasten active, set n_FunksteckdoseWasch_on active, set n_Funksteckdose_Trockner_on active, set n_Froster_Temperatur_on active, set n_Heizung_aus active, set n_Abfallmorgen active, set n_Robi_warning active, set n_RobiZurStation active))
Nachtruhe_Schalter ist ein Dummy. damit verbunden ein Notify:

defmod n_Notify_Nachtruhe notify Nachtruhe_Schalter {("$EVENT" eq "off") ? return : fhem "set n_Briefkasten,n_FunksteckdoseWasch_on,n_Funksteckdose_Trockner_on,n_Froster_Temperatur_on,n_Heizung_aus,n_R3_Abfrage,n_Abfallmorgen,n_Robi_warning,n_RobiZurStation inactive"}
Todsicher geht das viel eleganter, ist aber das ausreichende Ergebnis meiner bescheidenen Bemühungen.

Mit einer Logdatei kann ich nicht  umgehen. Wäre mir aber auch lieber, wenn die unterdrückten Meldungen "automatisch" am nächsten Morgen zB gegen 8 Uhr ausgegeben würden. Andernfalls müsste man  ja erst immer noch daran denken, die Logdatei aufzurufen.
Pi4, Tahoma Jalousien, Hue, Echo, Sonos, Lupusec XT3, FritzBox

Der_Tom

man müsste wohl noch wissen , was das denn für meldungen sind, die da "unterdrückt" werden, bzw. wie werden sie ausgegeben , wenn sie aktiv sind .

Im Grunde wirst du die Meldungen wohl irgendwo/irgendwie "speichern" müssen um sie dann später abzurufen ... und da gibt es X möglichkeiten .

Zeig doch bitte mal ein List von einem "augebenden" Gerät ( z.B. n_Briefkasten ).

gruss Thomas


is2late

Hallo Tom,

die Ausgabe der Meldungen erfolgt via Notify über Sonos, Echo und teleBot:

Hier das List vom  Briefkasten:

[code]define n_Briefkasten notify Briefkasten:offen sleep 30 ;; set Sonos_Unnamed_Room Speak 50 de |TempleBell| Hallo, es ist Post im Briefkasten! ;; sleep 10 ;; set Sonos_Wohnzimmer Speak 50 de |TempleBell| Hallo, es ist Post im Briefkasten! ;; set ECHO_G090LF1072270A6S speak Post ist da! ;; set ECHO_G090LF0971540HF6 speak Post ist da ;; set teleBot message Post ist da ;; set Meldung ein ;; set a_Briefkasten active
attr n_Briefkasten room Geräte
#   DEF        Briefkasten:offen sleep 30 ; set Sonos_Unnamed_Room Speak 50 de |TempleBell| Hallo, es ist Post im Briefkasten! ; sleep 10 ; set Sonos_Wohnzimmer Speak 50 de |TempleBell| Hallo, es ist Post im Briefkasten! ; set ECHO_G090LF1072270A6S speak Post ist da! ; set ECHO_G090LF0971540HF6 speak Post ist da ; set teleBot message Post ist da ; set Meldung ein ; set a_Briefkasten active
#   FUUID      5ee6019d-f33f-a080-6948-d9c91e63e19cf7ec
#   NAME       n_Briefkasten
#   NOTIFYDEV  Briefkasten
#   NR         256
#   NTFY_ORDER 50-n_Briefkasten
#   REGEXP     Briefkasten:offen
#   STATE      2023-11-14 16:34:37
#   TRIGGERTIME 1699976077.97113
#   TYPE       notify
#   eventCount 16
#   READINGS:
#     2023-11-14 06:00:00   state           active
#     2023-11-14 16:34:37   triggeredByDev  Briefkasten
#     2023-11-14 16:34:37   triggeredByEvent offen
#


[/code]

LG Ingo
Pi4, Tahoma Jalousien, Hue, Echo, Sonos, Lupusec XT3, FritzBox

Der_Tom

#5
erfolgt die Ausgabe bei allen Devices auf die selben ausgabegeräte , oder unterscheidet sich das ?


Also, Ich würde es wie folgt lösen :

ich würde die Ausgaben von den Geräten gar nicht direkt an die ausgebenden geräte senden , sondern an ein Zwischendevice und von diesem dann an die ausgebenden Geräte.
Damit müsstest du nicht alle geräte immer aktiv/inaktiv setzen, sondern könntest in diesem zwischendevice erstmal entscheiden ob die Meldungen denn nun ausgegeben werden oder gespeichert werden müssen - zu späteren ausgabe.
Diese Entscheidung kann Zeitgesteuert erfolgen, oder wie auch immer.

Bei Zwischenspeicherung würde ich die Meldungen in diesem Zwischendevice als Reading(s) zur spätern Ausgabe ablegen, deren ausgabe kann dann - ebenfalls zeitgesteuert oder wie auch immer - erfolgen .

Im Grunde keine grosse  Sache, aber wie du weisst bin ich ja eher nicht aus der Doif/Notify-Fraktion und möchte mich auch in diese Devicetypen nicht einarbeiten um das zu lösen.

in "meiner Welt" geht es mit einem zusätzlichen Device - aber ist halt "mswitch" ;-) - ist aber sicher auch mit Doif kein Problem .

gruss Thomas


PS: Wenn die Geräte zur Ausgabe auf "inactive" stehen werden die Meldungen ja nicht nur unterdrückt , sonder sie werden ja gar nicht erst generiert - somit gibt es auch nirgends einen Hinweis auf die Meldung und deren Inhalt. d.H du musst diese Geräte ( egal wie du es nun löst ) sowieso ändern sofern du nicht alle Events nachträglich abarbeiten möchtest , die zur Auslösung der zu diesem Zeitpunkt inactiven Ausgabedevices geführt hätten ( und das würde es m.E. erheblich aufwendiger machen )