FHEM Forum

FHEM => Anfängerfragen => Thema gestartet von: josburg am 15 Februar 2016, 07:58:03

Titel: Frage zu DOIF
Beitrag von: josburg am 15 Februar 2016, 07:58:03
Hallo,

ich möchte gerne eine Mail versenden, wenn ein Fenster- oder Türkontakt "on" (=offen) meldet und das ganze in einem bestimmten Zeitraum passiert.

Anbei das DOIF:
define MAILALARM.SENSOR_TERRASSENTUERE DOIF (([00:01-23:59]) and (["^TFK.:on"])) ({DebianMail('jxxxxxxx@gmx.de','$DEVICE geöffnet','$DEVICE geöffnet ');;;; })

Wenn ich
{DebianMail('jxxxxxxx@gmx.de','$DEVICE geöffnet','$DEVICE geöffnet ');;;; }
in die FHEM Befehlseingabe kopiere, funktioniert das versenden, also gehe ich davon aus, dass es an der Bedingung liegt.

Meine Fenster- und Türkontakte sind z.B. so definiert:

Internals:
   DEF        00000F000F FF F0
   IODev      CUL1
   NAME       SENSOR_TFK_TERRASSENTUERE
   NR         292
   STATE      off
   TYPE       IT
   XMIT       00000f000f
   XMITdimdown 00
   XMITdimup  00
   XMIToff    f0
   XMITon     ff
   Code:
     1          00000f000f
   Readings:
     2016-02-14 12:50:33   protocol        V1
     2016-02-14 22:00:44   state           off
Attributes:
   IODev      CUL1
   alias      Terrassentüre

Kann mir jemand helfen?

Viele Grüße Jens


Gesendet von iPhone mit Tapatalk
Titel: Antw:Frage zu DOIF
Beitrag von: CoolTux am 15 Februar 2016, 08:51:22
Hallo,

Da Du nue eine einzige Bedingung hast, musst Du auf jeden Fall ein doalways mit einbauen.

Sollte das nicht gehen. list auf das DOIF und bitte code Tags verwenden.



Grüße
Titel: Antw:Frage zu DOIF
Beitrag von: josburg am 15 Februar 2016, 12:00:07
Hallo CoolTux,

das "doalways" hatte ich bereits definiert.

Anbei die Ausgabe des list:

Internals:
   DEF        (([00:01-23:59]) and (["^TFK.:on"])) ({DebianMail('jXXXXXXXX@gmx.de','$DEVICE geöffnet','$DEVICE geöffnet ');; })
   NAME       MAILALARM.SENSOR_TERRASSENTUERE
   NR         289
   NTFY_ORDER 50-MAILALARM.SENSOR_TERRASSENTUERE
   STATE      initialized
   TYPE       DOIF
   Readings:
     2016-02-14 21:37:48   state           initialized
     2016-02-14 23:59:00   timer_1_c1      15.02.2016 00:01:00
     2016-02-14 23:59:00   timer_2_c1      15.02.2016 23:59:00
   Condition:
     0          (DOIF_time($hash,$hash->{realtime}{0},$hash->{realtime}{1},$wday,$hms,"")) and (EventDoIf('^TFK.',$hash,'on',0))
   Days:
   Devices:
   Do:
     0:
       0          {DebianMail('josburg@gmx.de','$DEVICE geöffnet','$DEVICE geöffnet ');; }
     1:
   Helper:
     event      timer_1
     globalinit 1
     last_timer 2
     sleeptimer -1
     triggerDev
     triggerEvents:
       timer_1
   Internals:
   Interval:
     0          -1
     1          0
   Itimer:
   Localtime:
     0          1455490860
     1          1455577140
   Readings:
   Realtime:
     0          00:01:00
     1          23:59:00
   Regexp:
     0:
       0          ^TFK.:on
     All:
       0          ^TFK.:on
   State:
   Time:
     0          00:01:00
     1          23:59:00
   Timecond:
     0          0
     1          0
   Timer:
     0          0
     1          0
   Timers:
     0           0  1
   Triggertime:
     1455577140:
       localtime  1455577140
       Hash:
Attributes:
   do         always
   room       Mailversand


Vielen Dank für die Hilfe...

Viele Grüße
Jens
Titel: Antw:Frage zu DOIF
Beitrag von: CoolTux am 15 Februar 2016, 12:31:38
Zitat von: josburg am 15 Februar 2016, 12:00:07
Hallo CoolTux,

das "doalways" hatte ich bereits definiert.

Anbei die Ausgabe des list:

Internals:
   DEF        (([00:01-23:59]) and (["^TFK.:on"])) ({DebianMail('jXXXXXXXX@gmx.de','$DEVICE geöffnet','$DEVICE geöffnet ');; })
   NAME       MAILALARM.SENSOR_TERRASSENTUERE
   NR         289
   NTFY_ORDER 50-MAILALARM.SENSOR_TERRASSENTUERE
   STATE      initialized
   TYPE       DOIF
   Readings:
     2016-02-14 21:37:48   state           initialized
     2016-02-14 23:59:00   timer_1_c1      15.02.2016 00:01:00
     2016-02-14 23:59:00   timer_2_c1      15.02.2016 23:59:00
   Condition:
     0          (DOIF_time($hash,$hash->{realtime}{0},$hash->{realtime}{1},$wday,$hms,"")) and (EventDoIf('^TFK.',$hash,'on',0))
   Days:
   Devices:
   Do:
     0:
       0          {DebianMail('josburg@gmx.de','$DEVICE geöffnet','$DEVICE geöffnet ');; }
     1:
   Helper:
     event      timer_1
     globalinit 1
     last_timer 2
     sleeptimer -1
     triggerDev
     triggerEvents:
       timer_1
   Internals:
   Interval:
     0          -1
     1          0
   Itimer:
   Localtime:
     0          1455490860
     1          1455577140
   Readings:
   Realtime:
     0          00:01:00
     1          23:59:00
   Regexp:
     0:
       0          ^TFK.:on
     All:
       0          ^TFK.:on
   State:
   Time:
     0          00:01:00
     1          23:59:00
   Timecond:
     0          0
     1          0
   Timer:
     0          0
     1          0
   Timers:
     0           0  1
   Triggertime:
     1455577140:
       localtime  1455577140
       Hash:
Attributes:
   do         always
   room       Mailversand


Vielen Dank für die Hilfe...

Viele Grüße
Jens

Da hat sich wohl ein kleiner Fehler bei Dir eingeschlischen.

So sollte es wohl gehen denke ich



(([00:01-23:59]) and (["^TFK:on"])) .....


Man achte auf den Punkt hinter ^TFK, laut Commandref soll da keiner sein. Ich gehe davon aus das Deine Fensterkontakte alle am Anfang ein TFK im Namen haben.



Grüße
Titel: Antw:Frage zu DOIF
Beitrag von: josburg am 15 Februar 2016, 16:44:49
Super, vielen Dank. Ohne "." hat es funktioniert.


Gesendet von iPhone mit Tapatalk
Titel: Antw:Frage zu DOIF
Beitrag von: CoolTux am 15 Februar 2016, 18:29:37
Na dann viel freude weiterhin mit FHEM



Grüße