Hauptmenü

[Gelöst]Notify mit Zeit

Begonnen von Sebastian84, 04 Juni 2023, 05:41:47

Vorheriges Thema - Nächstes Thema

Sebastian84

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


Nobbynews

#1
Würde ich über watchdog lösen.
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.

Jamo

#2
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'\")}}")
Bullseye auf iNUC, Homematic + HMIP(UART/HMUSB), Debmatic, HUEBridge, Zigbee/ConbeeII, FB, Alexa (fhem-lazy), Livetracking, LaCrosse JeeLink, LoRaWan / TTN / Chirpstack

Sebastian84

#3
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?

MadMax-FHEM

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
FHEM PI3B+ Bullseye: HM-CFG-USB, 40x HM, ZWave-USB, 13x ZWave, EnOcean-PI, 15x EnOcean, HUE/deCONZ, CO2, ESP-Multisensor, Shelly, alexa-fhem, ...
FHEM PI2 Buster: HM-CFG-USB, 25x HM, ZWave-USB, 4x ZWave, EnOcean-PI, 3x EnOcean, Shelly, ha-bridge, ...
FHEM PI3 Buster (Test)

Sebastian84

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.

MadMax-FHEM

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
FHEM PI3B+ Bullseye: HM-CFG-USB, 40x HM, ZWave-USB, 13x ZWave, EnOcean-PI, 15x EnOcean, HUE/deCONZ, CO2, ESP-Multisensor, Shelly, alexa-fhem, ...
FHEM PI2 Buster: HM-CFG-USB, 25x HM, ZWave-USB, 4x ZWave, EnOcean-PI, 3x EnOcean, Shelly, ha-bridge, ...
FHEM PI3 Buster (Test)

Sebastian84


Jamo

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'\")}}")
Bullseye auf iNUC, Homematic + HMIP(UART/HMUSB), Debmatic, HUEBridge, Zigbee/ConbeeII, FB, Alexa (fhem-lazy), Livetracking, LaCrosse JeeLink, LoRaWan / TTN / Chirpstack

Sebastian84

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

MadMax-FHEM

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
FHEM PI3B+ Bullseye: HM-CFG-USB, 40x HM, ZWave-USB, 13x ZWave, EnOcean-PI, 15x EnOcean, HUE/deCONZ, CO2, ESP-Multisensor, Shelly, alexa-fhem, ...
FHEM PI2 Buster: HM-CFG-USB, 25x HM, ZWave-USB, 4x ZWave, EnOcean-PI, 3x EnOcean, Shelly, ha-bridge, ...
FHEM PI3 Buster (Test)

Sebastian84

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'\")}}") 

JensS

#12
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.
Debian auf APU2C4, HM-CFG-USB2, SIGNALduino, HM-ES-PMSw1-Pl, TFA 30.3121, TFA 30.3125, ITS-150, PIR-5000, configurable Firmata USB & LAN, 1-wire: DS-18B20, DS-18S20, DS-2408, DS-2413, diverse I2C-Komponenten, zigbee2mqtt, ESPEasy etc.

Sebastian84

#13
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.

MadMax-FHEM

#14
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
FHEM PI3B+ Bullseye: HM-CFG-USB, 40x HM, ZWave-USB, 13x ZWave, EnOcean-PI, 15x EnOcean, HUE/deCONZ, CO2, ESP-Multisensor, Shelly, alexa-fhem, ...
FHEM PI2 Buster: HM-CFG-USB, 25x HM, ZWave-USB, 4x ZWave, EnOcean-PI, 3x EnOcean, Shelly, ha-bridge, ...
FHEM PI3 Buster (Test)

Sebastian84

#15
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?

MadMax-FHEM

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
FHEM PI3B+ Bullseye: HM-CFG-USB, 40x HM, ZWave-USB, 13x ZWave, EnOcean-PI, 15x EnOcean, HUE/deCONZ, CO2, ESP-Multisensor, Shelly, alexa-fhem, ...
FHEM PI2 Buster: HM-CFG-USB, 25x HM, ZWave-USB, 4x ZWave, EnOcean-PI, 3x EnOcean, Shelly, ha-bridge, ...
FHEM PI3 Buster (Test)

Sebastian84

Wie würde den der watchdog aussehen wenn der besser währe?

MadMax-FHEM

#18
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
FHEM PI3B+ Bullseye: HM-CFG-USB, 40x HM, ZWave-USB, 13x ZWave, EnOcean-PI, 15x EnOcean, HUE/deCONZ, CO2, ESP-Multisensor, Shelly, alexa-fhem, ...
FHEM PI2 Buster: HM-CFG-USB, 25x HM, ZWave-USB, 4x ZWave, EnOcean-PI, 3x EnOcean, Shelly, ha-bridge, ...
FHEM PI3 Buster (Test)

Sebastian84

#19
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?

MadMax-FHEM

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
FHEM PI3B+ Bullseye: HM-CFG-USB, 40x HM, ZWave-USB, 13x ZWave, EnOcean-PI, 15x EnOcean, HUE/deCONZ, CO2, ESP-Multisensor, Shelly, alexa-fhem, ...
FHEM PI2 Buster: HM-CFG-USB, 25x HM, ZWave-USB, 4x ZWave, EnOcean-PI, 3x EnOcean, Shelly, ha-bridge, ...
FHEM PI3 Buster (Test)

Sebastian84

#21
        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
 


MadMax-FHEM

#22
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
FHEM PI3B+ Bullseye: HM-CFG-USB, 40x HM, ZWave-USB, 13x ZWave, EnOcean-PI, 15x EnOcean, HUE/deCONZ, CO2, ESP-Multisensor, Shelly, alexa-fhem, ...
FHEM PI2 Buster: HM-CFG-USB, 25x HM, ZWave-USB, 4x ZWave, EnOcean-PI, 3x EnOcean, Shelly, ha-bridge, ...
FHEM PI3 Buster (Test)

Sebastian84

Hat super geklappt mit den watchdog
Danke