Mail Versand bei Batterie low testen

Begonnen von funeddy, 30 Juni 2019, 11:05:28

Vorheriges Thema - Nächstes Thema

MadMax-FHEM

Hallo Joerg,

ich würde ganz schnell davon Abstand nehmen mit irgendeinem Editor in der fhem.cfg zu editieren... ;)

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)

funeddy

jetzt sieht der Code so aus. Aber es funktioniert trotzdem nicht.

define n_batt_chk notify .*:[Bb]attery.* { if ($EVENT !~ m/ok/) }{ \
  { FB_mail('joergdoege@t-online.de', 'FHEM Batteriewarnung', $NAME.': '.$EVENT)};; \
   Log 3, "$NAME : Batteriewarnung $EVENT";; \
  }\


VG Joerg
Fhem auf RASPI 3 / CCU2 und CCU3 / Homematicgeräte / WS980 WIFI / Intel NUC / ECHODOT 3

funeddy

Habe den Code noch auf meine Subroutine für email angepasst. Jetzt sollte es eigentlich laufen. Aber es funtzt immer noch nicht.

define n_batt_chk notify .*:[Bb]attery.* { if ($EVENT !~ m/ok/) }{ \
  { Debianmail('joergdoege@t-online.de', 'FHEM Batteriewarnung', $NAME.': '.$EVENT)};; \
   Log 3, "$NAME : Batteriewarnung $EVENT";; \
  }\



siehst du in dem Code noch einen fehler, wenn ich die mail aus der commandozeile sende, funktioniert es.

VG Joerg
Fhem auf RASPI 3 / CCU2 und CCU3 / Homematicgeräte / WS980 WIFI / Intel NUC / ECHODOT 3

MadMax-FHEM

Hallo Joerg,

steht denn die Logausgabe im fhem Log beim Wechsel von ok auf low?

Funktioniert denn:

{FB_mail('joergdoege@t-online.de', 'FHEM Batteriewarnung', $NAME.': '.$EVENT)}

In der fhem-Web-Eingabe!?

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)

MadMax-FHEM

#19
Hallo Joerg,

wenn du schreibst "wenn ich das in die Commandozeile..."

Bitte posten was genau du in fhem-Web eingibst sonst wissen wir nicht was du tust und was geht...

Öffne in einem weiteren Tab mal den Eventmonitor und poste mal was beim Wechsel von ok auf low dort kommt...

Lass evtl. (erst mal) das if usw. weg...

EDIT: also so define n_batt_chk notify .*:[Bb]attery.* {Debianmail('joergdoege@t-online.de', 'FHEM Batteriewarnung', $NAME.': '.$EVENT)}


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)

amenomade

#20
Zitat von: funeddy am 30 Juni 2019, 13:56:09
define n_batt_chk notify .*:[Bb]attery.* { if ($EVENT !~ m/ok/) }{ \
  { Debianmail('joergdoege@t-online.de', 'FHEM Batteriewarnung', $NAME.': '.$EVENT)};; \
   Log 3, "$NAME : Batteriewarnung $EVENT";; \
  }\


siehst du in dem Code noch einen fehler, wenn ich die mail aus der commandozeile sende, funktioniert es.

VG Joerg

Ja, ich sehe noch einen Fehler. Syntax für if in  Perl ist:
if (Bedingung) { Befehle }
und nicht
if (Bedingung) } { Befehle }

Pi 3B, Alexa, CUL868+Selbstbau 1/2λ-Dipol-Antenne, USB Optolink / Vitotronic, Debmatic und HM / HmIP Komponenten, Rademacher Duofern Jalousien, Fritz!Dect Thermostaten, Proteus

funeddy

ich versende die Mail mit folgendem Befehl über Fhem web.

{DebianMail('joergdoege@t-online.de','Betreff','Test')}


das funktioniert, die Sub routine in der 99_myUtils.pm funktioniert also.
Im log des gerätes kann ich sehen das battery auf low steht wenn ich setreading abgestzt habe. Das funktioniert auch.
habe auch den code ohne if in der Fhem.cfg ausprobiert. Da passiert ebenfalls nix.

define n_batt_chk notify .*:[Bb]attery.* {Debianmail('joergdoege@t-online.de', 'FHEM Batteriewarnung', $NAME.': '.$EVENT)}

gruß joerg
Fhem auf RASPI 3 / CCU2 und CCU3 / Homematicgeräte / WS980 WIFI / Intel NUC / ECHODOT 3

amenomade

#22
Poste bitte das Ergebnis von
list n_batt_chk
und auch ein "list" von einem Device mit Battery, das überwacht werden muss (aktuell, nachdem Du die Definition des notify geändert hast)

EDIT: und ich würde am Ende eher so schreiben:
, "$NAME : $EVENT")}
Pi 3B, Alexa, CUL868+Selbstbau 1/2λ-Dipol-Antenne, USB Optolink / Vitotronic, Debmatic und HM / HmIP Komponenten, Rademacher Duofern Jalousien, Fritz!Dect Thermostaten, Proteus

funeddy

hier das list vom Notify
   DEF        .*:[Bb]attery.*  if ($EVENT !~ m/ok/) {
{ DebianMail('joergdoege@t-online.de', 'FHEM Batteriewarnung', $NAME.': '.$EVENT)};
   Log 1, "$NAME : Batteriewarnung $EVENT";
  }

   NAME       n_batt_chk
   NR         158
   NTFY_ORDER 50-n_batt_chk
   REGEXP     .*:[Bb]attery.*
   STATE      2019-06-30 14:30:48
   TRIGGERTIME 1561897848.47783
   TYPE       notify
   READINGS:
     2019-06-30 14:27:58   state           active
Attributes:


und hier das List vom gerät

Internals:
   DEF        40469E
   IODev      HMLAN1
   NAME       Balkon
   NOTIFYDEV  global
   NR         51
   STATE      IOerr
   TYPE       CUL_HM
   READINGS:
     2019-06-30 14:28:03   Activity        alive
     2016-06-19 09:50:01   CommandAccepted yes
     2016-06-19 09:50:14   D-firmware      2.4
     2016-06-19 09:50:14   D-serialNr      MEQ1591841
     2019-06-29 15:17:05   PairedTo        0x32251E
     2016-06-19 09:50:07   R-cyclicInfoMsg off
     2016-06-19 09:50:07   R-eventDlyTime  0 s
     2016-06-19 09:50:07   R-pairCentral   0x32251E
     2016-06-19 09:50:07   R-sabotageMsg   on
     2016-06-19 09:50:07   R-sign          off
     2019-06-29 15:17:05   RegL_00.        02:01 09:00 0A:32 0B:25 0C:1E 10:01 14:06 00:00
     2019-06-29 15:17:06   RegL_01.        08:00 20:60 21:00 22:64 30:06 00:00
     2019-06-29 15:17:11   alive           yes
     2019-06-30 14:28:18   battery         low
     2019-06-30 14:21:25   contact         closed (to HMLAN1)
     2019-06-29 15:16:36   powerOn         2019-06-29 15:16:36
     2019-06-29 15:17:11   recentStateType info
     2019-06-29 15:17:11   sabotageError   off
     2019-06-30 14:22:25   state           IOerr
     2019-06-30 14:21:25   trigDst_32251E  noConfig
     2019-06-30 14:21:25   trigger_cnt     90
   helper:
     HM_CMDNR   161
     mId        00B1
     regLst     ,0,1,4p
     rxType     28
     expert:
       def        1
       det        0
       raw        1
       tpl        0
     io:
       newChn     +40469E,00,00,00
       prefIO     
       rxt        2
       vccu       
       p:
         40469E
         00
         00
         00
     mRssi:
       mNo       
     prt:
       bErr       0
       sProc      0
     q:
       qReqConf   
       qReqStat   
     role:
       chn        1
       dev        1
Attributes:
   IODev      HMLAN1
   actCycle   028:00
   actStatus  alive
   autoReadReg 4_reqStatus
   expert     2_raw
   firmware   2.4
   fp_Grundriss 425,391,1,Balkon
   model      HM-SEC-SC-2
   peerIDs    00000000,
   room       Wohnzimmer
   serialNr   MEQ1591841
   subType    threeStateSensor


ersteinmal vielen Dank für die Hilfe.
VG Joerg
Fhem auf RASPI 3 / CCU2 und CCU3 / Homematicgeräte / WS980 WIFI / Intel NUC / ECHODOT 3

amenomade

#24
DU hast bestimmt in Log "n_batt_chk return value: IF: no left bracket:  {}"

Dein notify ist auf Perl Ebene. Dann musst Du mit { anfangen (vor dem if) und da Du dann ein zusätzliches { haben wirst, musst Du es am Ende auch zusätzlich schliessen
Pi 3B, Alexa, CUL868+Selbstbau 1/2λ-Dipol-Antenne, USB Optolink / Vitotronic, Debmatic und HM / HmIP Komponenten, Rademacher Duofern Jalousien, Fritz!Dect Thermostaten, Proteus

funeddy

jetzt sieht der Code so aus.
define n_batt_chk notify .*:[Bb]attery.* { if ($EVENT !~ m/ok/)}

habe mal probiert im Notify diesen code zu speichern, da kommt ein systax error zurück.

VG Joerg
Fhem auf RASPI 3 / CCU2 und CCU3 / Homematicgeräte / WS980 WIFI / Intel NUC / ECHODOT 3

amenomade

#26
Ja klar, Du hast eine if (Bedingung), aber kein {Befehl}
Pi 3B, Alexa, CUL868+Selbstbau 1/2λ-Dipol-Antenne, USB Optolink / Vitotronic, Debmatic und HM / HmIP Komponenten, Rademacher Duofern Jalousien, Fritz!Dect Thermostaten, Proteus

funeddy

der komplette im DEF vom Notify code sieht so aus.

.*:[Bb]attery.*  {if ($EVENT !~ m/ok/)}{
{ DebianMail('joergdoege@t-online.de', 'FHEM Batteriewarnung', $NAME.': '.$EVENT)};
   Log 1, "$NAME : Batteriewarnung $EVENT";
  }


ist das richtig. wenn ich abspeichern will, gibt es trotzdem einen Syntaxfehler
Fhem auf RASPI 3 / CCU2 und CCU3 / Homematicgeräte / WS980 WIFI / Intel NUC / ECHODOT 3

amenomade

Pi 3B, Alexa, CUL868+Selbstbau 1/2λ-Dipol-Antenne, USB Optolink / Vitotronic, Debmatic und HM / HmIP Komponenten, Rademacher Duofern Jalousien, Fritz!Dect Thermostaten, Proteus

amenomade

#29
Gehen wir mal im Detail durch:

define n_batt_chk notify .*:[Bb]attery.* Bisher alles gut. Es wird ein notify definiert, und der Trigger davon ist .*:[Bb]attery.*

{Hier fängt an, was der notify auf Perl Ebene machen muss, wenn getriggert

if ($EVENT !~ m/ok/)Anfang eines Perl-if...

}Hier endet, was der notify machen muss, obwohl der if noch nicht vollständig ist

{
{ DebianMail('joergdoege@t-online.de', 'FHEM Batteriewarnung', $NAME.': '.$EVENT)};
   Log 1, "$NAME : Batteriewarnung $EVENT";
  }
Dieses Block gehört nichts und hängt in der Luft
Pi 3B, Alexa, CUL868+Selbstbau 1/2λ-Dipol-Antenne, USB Optolink / Vitotronic, Debmatic und HM / HmIP Komponenten, Rademacher Duofern Jalousien, Fritz!Dect Thermostaten, Proteus