Hallo,
ich bin etwas außer Übung ..
Bei diesem Event möchte ich ein Mail versenden:
2021-10-02 17:13:36 ZWave ZWave_SENSOR_NOTIFICATION_3 alarm: HomeSecurity: Tampering - product covering removed
Mein Doif sieht so aus 
Internals:
   CFGFN      
   DEF        ([ZWave_SENSOR_NOTIFICATION_3:alarm] eq "Tampering") ({echo "Wassermeldung" | mail -s"im Keller steht Wasser" xx@xxxxxxx.org})
   FUUID      615874b3-f33f-55bb-ce9c-96cc9da8faa0554a
   MODEL      FHEM
   NAME       di_water
   NOTIFYDEV  global,ZWave_SENSOR_NOTIFICATION_3
   NR         883
   NTFY_ORDER 50-Wasserdetection
   STATE      cmd_2
   TYPE       DOIF
   VERSION    24905 2021-09-01 18:35:54
   READINGS:
     2021-10-02 17:14:01   Device          ZWave_SENSOR_NOTIFICATION_3
     2021-10-02 17:13:36   cmd             2
     2021-10-02 17:13:36   cmd_event       ZWave_SENSOR_NOTIFICATION_3
     2021-10-02 17:13:36   cmd_nr          2
     2021-10-02 17:14:01   e_ZWave_SENSOR_NOTIFICATION_3_alarm HomeSecurity: Event cleared: Previous Events cleared
     2021-10-02 17:13:15   mode            enabled
     2021-10-02 17:13:36   state           cmd_2
   Regex:
     accu:
     collect:
     cond:
       ZWave_SENSOR_NOTIFICATION_3:
         0:
           alarm      ^ZWave_SENSOR_NOTIFICATION_3$:^alarm: 
   attr:
     cmdState:
     wait:
     waitdel:
   condition:
     0          ::ReadingValDoIf($hash,'ZWave_SENSOR_NOTIFICATION_3','alarm') eq "Tampering"
   do:
     0:
       0          {echo "Wassermeldung" | mail -s"im Keller steht Wasser" xx@xxxxxxxx}
     1:
   helper:
     DEVFILTER  ^global$|^ZWave_SENSOR_NOTIFICATION_3$
     NOTIFYDEV  global|ZWave_SENSOR_NOTIFICATION_3
     event      alarm: HomeSecurity: Event cleared: Previous Events cleared
     globalinit 1
     last_timer 0
     sleeptimer -1
     timerdev   ZWave_SENSOR_NOTIFICATION_3
     timerevent alarm: HomeSecurity: Event cleared: Previous Events cleared
     triggerDev ZWave_SENSOR_NOTIFICATION_3
     timerevents:
       alarm: HomeSecurity: Event cleared: Previous Events cleared
     timereventsState:
       alarm: HomeSecurity: Event cleared: Previous Events cleared
     triggerEvents:
       alarm: HomeSecurity: Event cleared: Previous Events cleared
     triggerEventsState:
       alarm: HomeSecurity: Event cleared: Previous Events cleared
   internals:
   readings:
     all         ZWave_SENSOR_NOTIFICATION_3:alarm 
   trigger:
   uiState:
   uiTable:
Attributes:
   room       System->DoIF
Mailversand von der Kommandozeile funktioniert. Was mach ich falsch?
			
			
			
				Hi,
Du hast den Shell code einfach in die Perl Klammer geschrieben. Das wird nix.
Wenn du den Shell Code in system() einpackst wird es gehen. Falls der User fhem Mail senden darf.
Gruß Otto
			
			
			
				habs gefunden - das funktioniert:
(["ZWave_SENSOR_NOTIFICATION_3 alarm: HomeSecurity: Tampering"]) ({echo "Wassermeldung im Keller" | mail -s"Wasser!!!" xxx@xxxxxx})
			
			
			
				doch nicht ;-)
			
			
			
				Hätte mich auch gewundert. Das Problem zerfällt immer in zwei Teile:
Wird überhaupt getriggert (danach habe ich nicht geschaut) den Teil hast Du eventuell gefunden bzw. hast Dich genähert. Den Punkt kannst Du aber super einfach mit dem Eventmonitor lösen (create modify Devices)! https://wiki.fhem.de/wiki/Event_monitor
Der zweite Teil: funktioniert der Ausführungsteil? Dazu hatte ich was "gefunden" :)
			
			
			
				([ZWave_SENSOR_NOTIFICATION_3:"alarm:.Water:.Leak.detected.-.Unknown.Location"]) ({echo 'Wassermeldung im Keller' | /usr/bin/mail -s 'Wasser' xxx@xxxxx})
seh ich zumindest im Event Monitor "2021-10-02 18:24:28 DOIF di_water cmd_event: ZWave_SENSOR_NOTIFICATION_3"
			
			
			
				Wollte ich auch grad schreiben, weil das hier:
Zitat
2021-10-02 17:13:36 ZWave ZWave_SENSOR_NOTIFICATION_3 alarm: HomeSecurity: Tampering - product covering removed
sicher nicht der "Wasseralarm" ist ;)
Ich habe z.B. bei den ZWave-Rauchmeldern und auch Bewegungsmeldern erst mal ein userReadings angelegt, um aus den vielen Alarmen den passenden "rauszusuchen".
EDIT: z.B.:
motion_state:alarm_HomeSecurity.* {if(ReadingsVal($name,"alarm_HomeSecurity","n.a.") eq "Motion Detection - Unknown Location, notificationIsOn"){return "motion"}elsif(ReadingsVal($name,"alarm_HomeSecurity","n.a.") eq "Event cleared: Motion Detection - Unknown Location, arg 108, notificationIsOn"){return "noMotion"}else{return "unknown"}}
d.h. ich triggere dann auf "motion" bzw. "noMotion"... :)
Es gibt auch das Attribut extendedAlarmReadings...
Gruß, Joachim
			
 
			
			
				Zitat von: uxtuner am 02 Oktober 2021, 18:27:51
seh ich zumindest im Event Monitor "2021-10-02 18:24:28 DOIF di_water cmd_event: ZWave_SENSOR_NOTIFICATION_3"
Scheinbar hast Du korrigiert und jetzt stimmt der Ausführungsteil immer noch nicht, eventuell so?:
([ZWave_SENSOR_NOTIFICATION_3:"alarm:.Water:.Leak.detected.-.Unknown.Location"]) ({system(echo 'Wassermeldung im Keller' | /usr/bin/mail -s 'Wasser' xxx@xxxxx)})
			 
			
			
				leider auch nicht - ich werde mal Doku wälzen ...
			
			
			
				Funktioniert das in der FHEM Kommandozeile?
{system(echo 'Wassermeldung im Keller' | /usr/bin/mail -s 'Wasser' xxx@xxxxx)}
Was steht danach im FHEM Log?
Wie schon gesagt: Dein Versuch im System läuft mit user x, der Code in FHEM läuft (meist) mit user fhem. Du kannst Deinen Versuch auf Systemebene damit für user fhem testen 
sudo -su fhem echo ' .....
			
			
			
				hab das direkt als fhem user im cli ausgeführt  ;)
			
			
			
				so funktionierts (siehe Quotes und Maskierung \@):
([ZWave_SENSOR_NOTIFICATION_3:"alarm:.Water:.Leak.detected.-.Unknown.Location"]) ({system("echo 'Wassermeldung im Keller' | /usr/bin/mail -s'Wasser' xxx\@xxxxxx")})
Danke für Eure Unterstützung!