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
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?
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.
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
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
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 )