FHEM Forum

FHEM => Anfängerfragen => Thema gestartet von: Sebastian84 am 04 Juni 2023, 05:41:47

Titel: [Gelöst]Notify mit Zeit
Beitrag von: Sebastian84 am 04 Juni 2023, 05:41:47
Guten Morgen
Ich möchte gerne das ich eine Naricht  bekomme wenn das Ereignis nochmal geprüft wurde nach einer Stunde ob es immer noch ist.

ZitatEingangstuer:present:.no set pushmsg msg ' Eingangstürkontakt' 'Nicht mehr ereichbar''sebastian,galaxya50,galaxytaba8' 0 'bike'

Das ist im Moment mein Notify
Das Problem ist das ich jetzt immer ne Nachricht bekomme auch wenn der Sensor nur kurz weg ist. Deshalb wollte ich da nach einer Stunde nochmal prüfen und dann erst benachrichtigt werden

Titel: Aw: Notify mit Zeit
Beitrag von: Nobbynews am 04 Juni 2023, 06:12:11
Würde ich über watchdog lösen.
https://fhem.de/commandref_DE.html#watchdog (https://fhem.de/commandref_DE.html#watchdog)

define wd_F_Bad_close watchdog Fenster_Bad:off 00:01:00 Fenster_Bad:on {\
 fhem ('set cm fakeSC HK_Bad 0');;\
 fhem ('setreading HK_Bad Fenster 0');;\
}
attr wd_F_Bad_close autoRestart 1
Wenn das Fenster nach 1 Minute immer noch geschlossen (off) ist, also nicht wieder auf 'on' gewechselt hat, dann tue etwas.
Titel: Aw: Notify mit Zeit
Beitrag von: Jamo am 04 Juni 2023, 09:17:01
mit notify - dabei wird ein sleep gestartet, das nach 1 Stunde nochmal den status von Eingangstür present prüft, ob die Eingangstür immer noch auf ist, und erst dann die message schickt.
Benutze ich immer dann wenn ich nicht zusätzlich ein weiteres device definieren mag.

define n_F_Bad_close notify Eingangstuer:present:.no fhem("sleep 3600 sleep3600_Eingangstuer;{if (ReadingsVal('Eingangstuer','present','nA') eq 'on') {fhem(\"set pushmsg msg ' Eingangstürkontakt' 'Nicht mehr ereichbar''sebastian,galaxya50,galaxytaba8' 0 'bike'\")}}")
Titel: Aw: Notify mit Zeit
Beitrag von: Sebastian84 am 04 Juni 2023, 09:42:52
Danke
Ich hab noch eine Frage.
Das ist ja eine Prüfung ob der Sensor der Tür nicht mehr da ist, dann soll die Naricht kommen. Wenn aber in der Stunde der Sensor wieder present ist soll keine Nachricht kommen

Dann müßte ich in der if Funktion no reinschauen stadt on?
Titel: Aw: Notify mit Zeit
Beitrag von: MadMax-FHEM am 04 Juni 2023, 09:51:08
Zitat von: Sebastian84 am 04 Juni 2023, 09:42:52Danke
Ich hab noch eine Frage.
Das ist ja eine Prüfung ob der Sensor der Tür nicht mehr da ist, dann soll die Naricht kommen. Wenn aber in der Stunde der Sensor wieder present ist soll keine Nachricht kommen

Dann müßte ich in der if Funktion no reinschauen stadt on?

Vermutlich...
Du musst halt den Status/Wert prüfen, der zu einer Nachricht führen soll (logisch)... ;)

Irgendwie hast du "sowas" doch schon (mehrfach) gefragt?
Immer noch keine (brauchbare) Lösung dafür gefunden?

EDIT: ;)
https://forum.fhem.de/index.php?topic=131751.msg1259245#msg1259245
https://forum.fhem.de/index.php?topic=131601.msg1257708#msg1257708
Dort wurden ähnliche/dieselben Vorschläge ebenfalls genannt... ;)

Gruß, Joachim
Titel: Aw: Notify mit Zeit
Beitrag von: Sebastian84 am 04 Juni 2023, 10:08:20
Zitatdefine Eingangstuer_Baterie_Zustand notify Eingangstuer:present:.no fhem("sleep 3600 sleep3600_Eingangstuer;{if (ReadingsVal('Eingangstuer','present','nA') eq 'no') {fhem(\"set pushmsg msg ' Eingangstürkontakt' 'Nicht mehr ereichbar''sebastian,galaxya50,galaxytaba8' 0 'bike'\")}}").


Dann kommt diese Fehlermeldung:

Unknown command {if, try help.
Titel: Aw: Notify mit Zeit
Beitrag von: MadMax-FHEM am 04 Juni 2023, 10:36:07
Wo hast du es wie eingegeben?

Direkt in fhemWeb-cmd?

-> Strichpunkte doppeln?

Besser ein "leeres" notify etc. anlegen und dann dort anpassen (DEF)...

Gruß, Joachim
Titel: Aw: Notify mit Zeit
Beitrag von: Sebastian84 am 04 Juni 2023, 10:38:04
Direkt im fhem web.
Titel: Aw: Notify mit Zeit
Beitrag von: Jamo am 04 Juni 2023, 10:56:50
ZitatDirekt im fhem web.

Dann muessen es zwei Semicolon sein, also define n_F_Bad_close notify Eingangstuer:present:.no fhem("sleep 3600 sleep3600_Eingangstuer;;{if (ReadingsVal('Eingangstuer','present','nA') eq 'on') {fhem(\"set pushmsg msg ' Eingangstürkontakt' 'Nicht mehr ereichbar''sebastian,galaxya50,galaxytaba8' 0 'bike'\")}}")
Titel: Aw: Notify mit Zeit
Beitrag von: Sebastian84 am 04 Juni 2023, 11:00:42
Jetzt kommt die Fehlermeldung
Zitat
ZitatMissing right curly or square bracket at (eval 1226566) line 1, at end of line
syntax error at (eval 1226566) line 1, at EOF
Titel: Aw: Notify mit Zeit
Beitrag von: MadMax-FHEM am 04 Juni 2023, 11:28:05
Verdopple halt einfach die Strichpunkte beim 1ten Vorschlag...

Oder lese bzgl. Klammern (mitdenken ist nicht verboten ;) )

Also geschweifte Klammer auf -> Perl

Da dann den fhem-Aufruf usw.

Gruß, Joachim
Titel: Aw: Notify mit Zeit
Beitrag von: Sebastian84 am 04 Juni 2023, 11:45:23
Das habe ich probiert vor {fhem aber kommt eine Fehlermeldung

Zitatdefine n_F_Bad_close notify Eingangstuer:present:.no {fhem("sleep 3600 sleep3600_Eingangstuer;;{if (ReadingsVal('Eingangstuer','present','nA') eq 'on') {fhem(\"set pushmsg msg ' Eingangstürkontakt' 'Nicht mehr ereichbar''sebastian,galaxya50,galaxytaba8' 0 'bike'\")}}") 
Titel: Aw: Notify mit Zeit
Beitrag von: JensS am 04 Juni 2023, 11:58:32
Sollte das nicht mit einem simplen DOIF zu lösen sein?
define EingangstuerPresent_DOIF DOIF ([Eingangstuer:present] eq "no")(set pushmsg msg ' Eingangstürkontakt' 'Nicht mehr ereichbar''sebastian,galaxya50,galaxytaba8' 0 'bike')DOELSE()
attr EingangstuerPresent_DOIF wait 3600:0

Gruß Jens

p.s. Dann lässt du den zweiten Ausführungsteil halt leer.
Titel: Aw: Notify mit Zeit
Beitrag von: Sebastian84 am 04 Juni 2023, 12:15:27
Ich möchte ja nur benarichtet werden wenn der Sensor nach einer Stunde immer noch nicht ereichbar ist. Der andere Zustand ist egal. Da es mir nur darum geht das ich nicht direkt informiert werde will wenn der Sensor kurz kein Empfang hat und dann wieder da ist. Es geht mir nur ums Richtige Baterie Wechsel.
Titel: Aw: Notify mit Zeit
Beitrag von: MadMax-FHEM am 04 Juni 2023, 12:36:23
Zitat von: Sebastian84 am 04 Juni 2023, 12:15:27Ich möchte ja nur benarichtet werden wenn der Sensor nach einer Stunde immer noch nicht ereichbar ist. Der andere Zustand ist egal. Da es mir nur darum geht das ich nicht direkt informiert werde will wenn der Sensor kurz kein Empfang hat und dann wieder da

Wenn "immer noch nicht ereichbar ist", dann Watchdog.
Die aktuellen Vorschläge mit sleep/at usw. prüfen ja nur, ob nach x-Zeit (zufällig) auch (nicht zwingend noch) nicht erreichbar...

EDIT: kenne DOIF zu wenig aber dort wird zurückgesetzt, wenn der Zustand mal wieder "korrekt" war? Könnte also auch tun was du willst...

Zitat von: Sebastian84 am 04 Juni 2023, 12:15:27Es geht mir nur ums Richtige Baterie Wechsel.
Geht es jetzt um Batterie wie hier https://forum.fhem.de/index.php?topic=133410.msg1274460#msg1274460 gefragt?
Oder worum?

define n_F_Bad_close notify Eingangstuer:present:.no {fhem("sleep 3600 sleep3600_Eingangstuer;;{if (ReadingsVal('Eingangstuer','present','nA') eq 'on') {fhem(\"set pushmsg msg ' Eingangstürkontakt' 'Nicht mehr ereichbar''sebastian,galaxya50,galaxytaba8' 0 'bike'\")}}")}

Wird zumindest ohne Fehler bei Eingabe in fhem-Web-cmd geschluckt...

Gruß, Joachim
Titel: Aw: Notify mit Zeit
Beitrag von: Sebastian84 am 04 Juni 2023, 13:29:11
Jetzt geht es.
Das Problem bei den Senoren gibt es keine Batterie Anzeige. Deshalb wollte ich es so realisieren, dass wenn der Sensor ne gewisse Zeit ohne present ist dass die Batterie leer ist.
Kann mann das auch noch so einstellen das mann 1 Tag später erinnert wird?
Titel: Aw: Notify mit Zeit
Beitrag von: MadMax-FHEM am 04 Juni 2023, 14:19:12
Mach halt das sleep so lange du willst...
Allerdings denke ich Readingswatcher (heißt das [noch] so?) oder Watchdog ist eher geeignet?

Alternativ, wenn du eine Nachricht zu einer bestimmten Uhrzeit willst: tägl. at mit Prüfung des Readingsalters (ReadingsAge)...

Gruß, Joachim
Titel: Aw: Notify mit Zeit
Beitrag von: Sebastian84 am 04 Juni 2023, 15:00:24
Wie würde den der watchdog aussehen wenn der besser währe?
Titel: Aw: Notify mit Zeit
Beitrag von: MadMax-FHEM am 04 Juni 2023, 15:08:13
Zitat von: Sebastian84 am 04 Juni 2023, 15:00:24Wie würde den der watchdog aussehen wenn der besser währe?

Liest du die Antworten?

Gleich der erste Vorschlag war watchdog...
Ebenso in einem deiner anderen Threads mit ähnlicher Fragestellung...

EDIT: https://wiki.fhem.de/wiki/Watchdog

Gruß, Joachim
Titel: Aw: Notify mit Zeit
Beitrag von: Sebastian84 am 04 Juni 2023, 18:35:00
define Eingangstuer_Pruefung_Zustand1 watchdog present:no 00:01:00 present:yes {\{fhem(\"set pushmsg msg ' Eingangstürkontakt' 'Nicht mehr ereichbar''sebastian,galaxya50,galaxytaba8' 0 'bike'\")} 
Müsste das dann so aussehen?
Dass nur wenn der Eingangstuer Sensor  auf no steht eine Naricht nach einer Minute schickt?Und wenn in der Minue der Sensor auf yes geht keine Nachricht kommt?
Titel: Aw: Notify mit Zeit
Beitrag von: MadMax-FHEM am 04 Juni 2023, 18:42:44
Zitat von: Sebastian84 am 04 Juni 2023, 18:35:00 define Eingangstuer_Pruefung_Zustand1 watchdog present:no 00:01:00 present:yes {\{fhem(\"set pushmsg msg ' Eingangstürkontakt' 'Nicht mehr ereichbar''sebastian,galaxya50,galaxytaba8' 0 'bike'\")} 
Müsste das dann so aussehen?
Dass nur wenn der Eingangstuer Sensor  auf no steht eine Naricht nach einer Minute schickt?Und wenn in der Minue der Sensor auf yes geht keine Nachricht kommt?

Ich schätze: NEIN!

Weil dein Regex des notify ja folgendermassen: Eingangstuer:present:.no lautet.
Ob das stimmt: weißt nur du

Ob statt "no" ein "yes" muss: weißt nur du

Es gibt ja keine lists o.ä.

Man kann sich auch mittels Eventmonitor einen watchdog anlegen lassen...
https://wiki.fhem.de/wiki/Event_monitor

Gruß, Joachim
Titel: Aw: Notify mit Zeit
Beitrag von: Sebastian84 am 04 Juni 2023, 18:46:53
        2023-06-04 18:45:23   AIN             11324 0105988-1
     2023-06-04 18:45:23   FBNAME          Eingangstür
     2023-06-04 18:45:23   FBPROP          HANFUNUnit,alarmSensor
     2023-06-04 18:45:23   FBTYPE          HAN-FUN
     2023-06-04 18:45:23   ID              2000
     2023-05-17 10:50:45   IODev           FritzBox
     2023-06-04 18:45:23   etsideviceid    409
     2023-06-04 18:45:23   fwversion       0.0
     2023-06-04 18:45:23   lastalertchgtimestamp 2023-06-04 14:58:52
     2023-06-04 18:45:23   present         yes
     2023-06-04 18:45:23   state           off
     2023-06-04 18:45:23   unittype        DOOR_OPEN_CLOSE_DETECTOR
Attributes:
   IODev      FritzBox
   devStateIcon on:fts_door_right_open@#e56524 off:fts_door_right
   event-min-interval power:120
   event-on-change-reading .*
   group      Tür_Fensterkontakte
   room       1_UG->Flur
   userattr   room_map structexclude
 


  define Eingangstuer_Pruefung_Zustand1 watchdog Eingangstuer:present:.no 00:01:00 Eingangstuer:present:.yes {\{fhem(\"set pushmsg msg ' Eingangstürkontakt' 'Nicht mehr ereichbar''sebastian,galaxya50,galaxytaba8' 0 'bike'\")}

Müsste nach der Liste doch dann so aussehen?


  Internals:
   CFGFN     
   CMD        {\{fhem(\"set pushmsg msg ' Eingangstürkontakt' 'Nicht mehr ereichbar''sebastian,galaxya50,galaxytaba8' 0 'bike'\")}
   DEF        Eingangstuer:present:.no 00:01:00 Eingangstuer:present:.yes {\{fhem(\"set pushmsg msg ' Eingangstürkontakt' 'Nicht mehr ereichbar''sebastian,galaxya50,galaxytaba8' 0 'bike'\")}
   FUUID      647cc1e1-f33f-cdd4-1f74-43b491e344fd2468
   NAME       Eingangstuer_Pruefung_Zustand1
   NOTIFYDEV  Eingangstuer_Pruefung_Zustand1,Eingangstuer
   NR         21806
   NTFY_ORDER 50-Eingangstuer_Pruefung_Zustand1
   RE1        Eingangstuer:present:.no
   RE2        Eingangstuer:present:.yes
   STATE      defined
   TO         60
   TYPE       watchdog
Attributes:
   autoRestart 1
 

Titel: Aw: Notify mit Zeit
Beitrag von: MadMax-FHEM am 04 Juni 2023, 19:10:34
Wie bist du nun zu dem Watchdog gekommen?
Eventmonitor?
EDIT: wenn ja, dann wird die Regex schon passen...

Wozu die ganzen Back-Slashes?
Du musst doch nicht mal nach Perl?

Ein "einfaches":
set pushmsg msg ' Eingangstürkontakt' 'Nicht mehr ereichbar''sebastian,galaxya50,galaxytaba8' 0 'bike'
müsste doch reichen?

Prüfen kannst du das ja einfach, indem du das in fehm-Web-cmd eingibst...

EDIT: unabhängig von den Slashes stimmen ja die Klammern auch nicht!

Gruß, Joachim
Titel: Aw: [Gelöst]Notify mit Zeit
Beitrag von: Sebastian84 am 05 Juni 2023, 20:56:54
Hat super geklappt mit den watchdog
Danke