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!