DoIf Unix Mail versenden bei Event

Begonnen von uxtuner, 02 Oktober 2021, 17:20:10

Vorheriges Thema - Nächstes Thema

uxtuner

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?
Viele Grüße
  Uwe

Intel NUC (VDR & FHEM & HA & AgentDVR), QNAP TS-453, Esera OneWire (8-fach Schalter, Hub, Controller II), EDS 1-Wire Server, Mosquitto Server, Wolf CGW-2 m. ISM7MQTT, Shelly (Plug S, H&T, 2.5, 1 PM, Floodsensor/Rauchmelder), Tado (Thermostat V3+) etc.

Otto123

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
Viele Grüße aus Leipzig  ⇉  nächster Stammtisch an der Lindennaundorfer Mühle
RaspberryPi B B+ B2 B3 B3+ ZeroW,HMLAN,HMUART,Homematic,Fritz!Box 7590,WRT3200ACS-OpenWrt,Sonos,VU+,Arduino nano,ESP8266,MQTT,Zigbee,deconz

uxtuner

habs gefunden - das funktioniert:

(["ZWave_SENSOR_NOTIFICATION_3 alarm: HomeSecurity: Tampering"]) ({echo "Wassermeldung im Keller" | mail -s"Wasser!!!" xxx@xxxxxx})
Viele Grüße
  Uwe

Intel NUC (VDR & FHEM & HA & AgentDVR), QNAP TS-453, Esera OneWire (8-fach Schalter, Hub, Controller II), EDS 1-Wire Server, Mosquitto Server, Wolf CGW-2 m. ISM7MQTT, Shelly (Plug S, H&T, 2.5, 1 PM, Floodsensor/Rauchmelder), Tado (Thermostat V3+) etc.

uxtuner

Viele Grüße
  Uwe

Intel NUC (VDR & FHEM & HA & AgentDVR), QNAP TS-453, Esera OneWire (8-fach Schalter, Hub, Controller II), EDS 1-Wire Server, Mosquitto Server, Wolf CGW-2 m. ISM7MQTT, Shelly (Plug S, H&T, 2.5, 1 PM, Floodsensor/Rauchmelder), Tado (Thermostat V3+) etc.

Otto123

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" :)
Viele Grüße aus Leipzig  ⇉  nächster Stammtisch an der Lindennaundorfer Mühle
RaspberryPi B B+ B2 B3 B3+ ZeroW,HMLAN,HMUART,Homematic,Fritz!Box 7590,WRT3200ACS-OpenWrt,Sonos,VU+,Arduino nano,ESP8266,MQTT,Zigbee,deconz

uxtuner

([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"
Viele Grüße
  Uwe

Intel NUC (VDR & FHEM & HA & AgentDVR), QNAP TS-453, Esera OneWire (8-fach Schalter, Hub, Controller II), EDS 1-Wire Server, Mosquitto Server, Wolf CGW-2 m. ISM7MQTT, Shelly (Plug S, H&T, 2.5, 1 PM, Floodsensor/Rauchmelder), Tado (Thermostat V3+) etc.

MadMax-FHEM

#6
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
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)

Otto123

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)})
Viele Grüße aus Leipzig  ⇉  nächster Stammtisch an der Lindennaundorfer Mühle
RaspberryPi B B+ B2 B3 B3+ ZeroW,HMLAN,HMUART,Homematic,Fritz!Box 7590,WRT3200ACS-OpenWrt,Sonos,VU+,Arduino nano,ESP8266,MQTT,Zigbee,deconz

uxtuner

leider auch nicht - ich werde mal Doku wälzen ...
Viele Grüße
  Uwe

Intel NUC (VDR & FHEM & HA & AgentDVR), QNAP TS-453, Esera OneWire (8-fach Schalter, Hub, Controller II), EDS 1-Wire Server, Mosquitto Server, Wolf CGW-2 m. ISM7MQTT, Shelly (Plug S, H&T, 2.5, 1 PM, Floodsensor/Rauchmelder), Tado (Thermostat V3+) etc.

Otto123

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 ' .....
Viele Grüße aus Leipzig  ⇉  nächster Stammtisch an der Lindennaundorfer Mühle
RaspberryPi B B+ B2 B3 B3+ ZeroW,HMLAN,HMUART,Homematic,Fritz!Box 7590,WRT3200ACS-OpenWrt,Sonos,VU+,Arduino nano,ESP8266,MQTT,Zigbee,deconz

uxtuner

hab das direkt als fhem user im cli ausgeführt  ;)
Viele Grüße
  Uwe

Intel NUC (VDR & FHEM & HA & AgentDVR), QNAP TS-453, Esera OneWire (8-fach Schalter, Hub, Controller II), EDS 1-Wire Server, Mosquitto Server, Wolf CGW-2 m. ISM7MQTT, Shelly (Plug S, H&T, 2.5, 1 PM, Floodsensor/Rauchmelder), Tado (Thermostat V3+) etc.

uxtuner

#11
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!
Viele Grüße
  Uwe

Intel NUC (VDR & FHEM & HA & AgentDVR), QNAP TS-453, Esera OneWire (8-fach Schalter, Hub, Controller II), EDS 1-Wire Server, Mosquitto Server, Wolf CGW-2 m. ISM7MQTT, Shelly (Plug S, H&T, 2.5, 1 PM, Floodsensor/Rauchmelder), Tado (Thermostat V3+) etc.